工作一到五年的Java程序员真的会短命吗遇到瓶颈应该如何提升

个人java程序员,怎么独自创业开发,实现自己_百度知道
个人java程序员,怎么独自创业开发,实现自己
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
做企业开发,个人,那困难可想而知了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2条折叠回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。修身、齐家、治国、平天下
如何提高自己的java开发功底
1.拥有扎实的基础和深刻理解OO原则
对于Java程序员,深刻理解Object Oriented Programming(面向对象编程)这一概念是必须的。没有OOPS的坚实基础,就领会不了像Java这些面向对象编程语言的美。光学习OO原则的定义用处不大,关键是要学会如何应用这些原则用一种OO的方式去设计解决方案。因此,我们应该对对象建模、继承、多态、设计模式有一个很好的认识。
2.掌握核心API
如果你不知道语言结构和核心API,那么即使你在理论知识上再怎么彪悍也是独木难成林。在Java中,我们最好能对核心API,如java.lang.*、I/O、异常、集合、泛型、线程、JDBC等有很强的实战经验。要是涉及到Web应用的开发,无论你使用的是对Servlet有多大关系的框架,JSP都是必须的。
3. Keep coding
陆游曾说过,“纸上得来终觉浅,绝知此事要躬行”。从理论上想出一个解决方案很简单,但是真到了实施的时候,才会意识到问题有多难。此时,你才会明白编码过程中存在的语言限制,从而设计出最好的实践方案。因此,Keep coding。
4.订阅社区论坛
我们并非踽踽独行者。很多人都和我们一样在研究着相同的技术。只是对某个框架概念做验证是不难的,但是当你将这些概念应用到实际的项目中时,那么各种各样的问题,各种在官方文档上找不到解决方法的难题就会接踵而来。学习新技术首先要做的是订阅相关的技术社区论坛。无论你遇到的是什么问题,总会有人比你先碰到过,而且搞不好已经找到了解决方法。Ps,还可以解答别人提出来的问题,而且这感觉不要太爽哦。你也可以通过邮件订阅《快乐码农》程序员期刊获取更多的编程知识,。
5.追博客并附上自己的评论
正如我前一点所说的,我们并不孤单。成千上万来自世界各地的技术爱好者将他们的技术见解发表在博客上。在博客上我们可以找到很多相同技术的不同观点。有人会觉得这是一个强大的技术功能,而有的人可能会觉得这是一个愚蠢的框架,仁者见仁智者见智。所以对于同一种技术你会在博客中听到两种不同的声音。看到好的博客可以写点自己的看法回复在评论上。
6.阅读开源框架的源代码
好的开发人员总是知道如何使用框架。但是如果你想成为一个优秀的开发人员,那么你需要研究各种成功和流行的框架源代码,去了解它的内部工作机制和最佳实践形式。这是一种高效的使用框架的方法。
7.了解相关技术的发展趋势
在开源环境中,软件开发技术总是在不断发展变化。现在所谓的新框架,可能到时候会过时。当前框架上解决不了的问题,可能在新框架上就不再是问题。所以要时刻注意着新事物的诞生和旧事物的消亡。
8.手头准备好常用的代码片段/实用程序
有时候我们可能需要一遍又一遍地复制粘贴/编写相同的代码片段/配置。所以,保存一些配置片段如log4.properties、jdbc 配置,以及实用程序如StringUtils、ReflectionUtils、DBUtils大有好处。这些东西本身可能并不能让你与众不同,但是你想想看,要是你的合作开发人员希望你帮他从对象集合中获取属性值的列表,而你只需要用ReflectionUtil就可以在几分钟内解决,是不是一下子脱颖而出了呢。
9.了解不同的开发方法
熟悉不同的开发方法,例如Agile、SCRUM、XP、Waterfall等等。现在,选择哪种开发方法是由客户说了算的。有的客户偏好Agile,而有的则更喜欢Waterfall模型。所以对各种方法都能有所涉猎绝对让人刮目相看。
10.将自己对技术的看法记录到文档/博客上
在我们每天的工作中,我们或许会学到新的东西,新的做事方法、实践形式和架构理念。可以将这些想法记录到文档或者博客中,分享给大家。因为你现在解决问题的方法可能正是世界上另一个角落另一个开发人员“寻寻觅觅上下求索”的难题,你的分享将完全不亚于一场久旱的甘霖。
作为刚入职的java程序员,一年时间内如何提升自己的实力,让自己更有竞争力?
java提高篇(一)-----理解java的三大特性之封装
关于提高自己JAVA水平的十大技术
工作一到五年的Java程序员遇到瓶颈应该如何提升自己突破
JAVA基础提高
如何提高自己的Java编程水平…
没有更多推荐了,工作一到五年的Java程序员遇到瓶颈应该如何提升自己突破
具有一到五年开发经验 需要学习内容很多
JVM/分布式/高并发/性能优化/Spring MVC/Spring Boot/Spring Cloud/MyBatis/Netty源码分析等等等
01、透彻理解Tomcat原理手写动静态资源的实现
02、分享能源领域的分布式监测系统架构
03、分布式系统关键技术Rpc框架详解与实现
04、自己写一个SpringMVC框架
05、使用Jsoup实现网页爬虫功能
06、JAVA高级进阶之NIO通信架构原理详解
07、高手必过之路透彻理解Spring容器IOC的原理分析
08、并发编程之深入业务隔离场景原理详解
09、深入浅出Java虚拟机
10、源码分析之手写MyBatis
11、大型分布式服务治理技术-Dubbo企业级实战
12、大流量高并发之限流特技
13、深入分析热部署机制的原理实现
14、高性能反向代理服务器Nginx-动静分离实战
15、架构师必备技能之Spring MVC框架原理解析
16、大家可以点击加入群:【Java架构/分布式/高并发】
下面为系统的学习方向
01、maven的使用
maven的使用入门
maven私服的搭建及部署
maven坐标分析/父控设置
02、git版本管理及jenkins自动化构建
git使用入门培训
git常用命令分析和使用
jenkins环境搭建及插件配置
git+jenkins实现自动化构建
03、NoSql专题-redis高性能缓存
redis使用入门
redis常用命令及客户端的使用
redis高可用集群搭建
04、NoSql专题-mongodb
mongodb使用入门
mongodb高可用集群搭建
mongodb常用命令及客户端的使用
05、分布式专题-zookeeper+dubbo服务协调
zookeeper安装部署及命令分析
zookeeper客户端的使用
zookeeper实现原理分析
dubbo的使用入门及配置分析
zookeeper+dubbo实现服务注册和发现
06、分布式专题-消息中间件
activeMq-jms规范及使用
activeMq消息分发机制分析
kafka实现原理剖析
kafka的数据传输事务性及实践练习
07、分布式缓存分析对比
memcache的原理分析及使用
memcache和redis的横向对比分析
分布式接口技术
webservice/RMI/restful的使用
09、高并发专题-数据库层面优化
分库分表的原理及规则讲解
数据库主备及高可用
10、性能调优专题-jvm调优
JVM原理剖析
jvm内存模型及垃圾回收器的分析
11、性能调优专题-容器性能优化
nginx性能优化
tomcat性能优化
12、性能调优专题-数据库优化
mysql常见优化手段分析及实践
13、高性能容器的使用
nginx使用入门
nginx负载均衡/反向代理实现
14、双十一专题-九阳真经
太极聚气之分布式压测平台
氤氲紫气之分布式缓存体系
盘龙真诀之分布式消息系统
金刚之躯之分布式跟踪系统
外功辅助之分布式配置系统
15、微服务架构技术栈分析
springboot的使用
16、分布式协调服务zookeeper
zookeeper集群及相关概念分析
zookeeper java api的使用及实践
17、从集中式到分布式架构
分布式架构的演进过程
分布式架构的基石-TCP/UDP
18、分布式通信协议
分布式通信协议-HTTP及RESTful
分布式通信协议-webservice详解
分布式通信协议-RMI
分布式通信协议-序列化技术
19、分布式服务治理
dubbo控制台及监控中心的安装部署
dubbo常用配置分析
dubbo实战演练
20、NIO技术之-Netty
NIO基本概念及BIO、AIO的对比分析
NIO核心设计思想剖析(Buffer/Channel..)
Netty产生的背景及优缺点分析
Netty实现IM聊天系统
21、分布式缓存技术-Redis
redis的安装及数据类型分析
Redis客户端的使用
Redis高可用方案实战
Redis+Lua脚本实现原子操作
22、高性能之道-MongoDB
MongoDB高可用部署
MongoDB动态查询及索引剖析
MongoDB集成spring应用
23、数据库高性能之道-Mysql
分库分表深入分析
Mysql主从模型配置/Mycat的使用
24、分布式通信技术
JMS基本概念和模型
ActiveMQ结合Spring开发
ActiveMQ静态网络和**络链接
Kafka的高可用方案及原理分析
25、SOA架构及微服务架构
什么是SOA架构/为什么需要SOA
领域驱动设计方法/典型SOA架构设计
spring boot深入剖析
spring boot+dubbo企业实战
26、Docker虚拟化技术
Docker虚拟化技术(镜像/仓库/容器)
Docker整合spring boot
Docker 服务编排
27、导流技术
Nginx反向代理、负载均衡
Nginx进程模型分析
Nginx+keepalived高可用方案
28、微服务技术
spring boot(mvc)
spring boot(REST)
spring boot(验证)
29、spring cloud
spring cloud config client
spring cloud config server
spring cloud netflix eureka
spring cloud netflix ribbon
spring cloud hystrix
spring cloud feign
spring cloud stream
spring cloud bus
spring cloud sleuth
30、分布式消息技术-kafka
kafka高可用集群及介绍
kafka底层实现原理分析
31、分布式缓存-redis
redis的数据类型分析
redis高可用集群方案
lua脚本在redis中的应用
32、高性能之道-MongoDB
MongoDB的基本原理
MongoDB常用命令及客户端使用
手写基于MongoDB的ORM框架
MongoDB高可用解决方案
33、数据库高性能-Mysql
分库分表深入分析及主从模型
数据库中间件Mycat介绍
34、性能优化专题
从测试的角度解读如何衡量性能
了解Linux系统
35、虚拟机-JVM
内存模型、运行时数据
垃圾回收、GC日志
36、容器优化-Tomcat
tomcat架构分析
线程模型分析
tomcat调优实战
37、mysql数据库调优
Mysql底层存储分析
面试技巧之SQL执行计划及优化手段
如果你想学习 Java 工程化、高性能及分布式、高性能、深入浅出。性能调优、Spring,MyBatis,Netty 源码分析和大数据等知识点可以来找我。
而现在我就有一个平台可以提供给你们学习,让你在实践中积累经验掌握原理。主要方向是 JAVA 架构师。如果你想拿高薪,想突破瓶颈,想跟别人竞争能取得优势的,想进 BAT 但是有担心面试不过的,可以加我的 Java 架构进阶群:
1、具有 1-5 工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。
2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。
3、如果没有工作经验,但基础非常扎实,对 java 工作机制,常用设计思想,常用 java 开发框架掌握熟练的,可以加。
4、觉得自己很牛 B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。
5.阿里 Java 高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!
一位资深程序员大牛给予Java初学者的学习建议
Java 5年应该掌握的东西
是不是程序员总会遇到一个瓶颈期,觉得自己没有进步了,该怎么解决?
Java程序员需要突破的技术要点
0~5年一个Java程序员从入行到大牛的晋升之路
工作了3年的JAVA程序员应该具备什么技能?
Java程序员该如何突破瓶颈,十年架构师经验之谈(文末送书)
Java程序员该如何突破瓶颈,成长为优秀的架构师
没有更多推荐了,Java程序员如何安排时间提升自己
我觉得有几点可以跟大家分享的:
第一是「兴趣」。这也是我认为最重要的一点,一件事情做 10 年甚至做一辈子,如果没有兴趣的话,我觉得是很痛苦的。兴趣是本能的驱动力,有了兴趣,遇到问题会一直想着怎样去解决,而不是觉得「很难做」;有了兴趣,碰到一个新的东东会觉得很兴奋,而不会觉得是一种负担;有了兴趣,接触到一个东西后就像更加深入的去了解,而不是用过了就不管了。所以我认为如果想在一个行业(不限于软件行业)长期发展并有所提升的话,一定要问问自己是否有足够的兴趣。
第二是「坚持」。《异类》一书中提到一个 10000 小时理论,我觉得非常有道理,意思就是说如果你想成为顶尖人才的话,一定要积累 10000 小时以上的训练和经验。特别是在软件开发这个领域,技术又多,技术更新又快,如果没有坚持去积累和提升的话,是很难达到一定高度的。操作系统、数据库、网络、编程语言、设计方法等都要掌握,每个技术点又有很多更细的分类。以编程语言来说,C、C++、Java、PHP、Python 等主流的都有 10 来种,每个语言继续深入的话又有很多内容,例如 Java 可以列出来的有 JVM、IO、NIO、网络编程、反射。。。。。。等等。所以这么多的东东,短时间内快速入门还可以,但如果说 21 天就精通 XXX,那是不可能的,必须经过长时间的积累。其实我现在都不敢说我精通什么,只能说相对周围其他人会精通一些。
第三就是「方法」。掌握正确的方法,能够让我们事半功倍,更快的提升,一些常见的方法我就不啰嗦了,这里特别分享独家秘方:
一个秘方是“写博客”,注意这里不是“看博客”,也不是“转载博客”而是“亲自写博客”。哪样东西你觉得你比较懂了,那么你就写成博客。当你真正去写的时候,你会发现,其实还有很多不懂或者不清楚的地方,这样就会促使你又去学习研究;当你的博客发表后,其他人除了能够从你的博客中学到东西外,也能够帮你发现一些问题或者错误,这样你就更进一步的掌握了;
另外一个秘方就是“链式学习”。形象点说,就是你抓住了一个链条的一个链,然后慢慢慢慢把所有的链都拉出来。举一个很简单的例子:socket sever编程。很多人在编程的时候,都是去搜索引擎搜索一下“socket server样例”,然后对照样例很快就写完功能了。然后呢。。。。。。很多人没有然后了,完成任务就不管了。其实这样做就错过了一次提升自己的好机会。
“链式学习”则不一样,它是这样做的:我通过搜索引擎搜索到样例完成工作后,我会问自己很多问题:样例中的api每个参数都是什么含义,有哪些注意事项,还有其它API么?为了解决这些问题,我就可能去找本书看,某个编程语言的socket编程;看完以后我知道socket编程的全貌和一些注意事项,而这些是通过搜索引擎搜索的样例中没有的;知道socket编程的全貌后,我又会问自己:操作系统是怎么做的呢? 那我又会去看《UNIX网络编程》,看完后我就对操作系统层面的又掌握更多了;看完《UNIX网络编程》后,我又知道socket是和tcp/ip相关的,那我又会去看《TCP/IP协议详解》。。。。。。
这样去做就是一条学习链: socket server编程 -& socket 编程 -& UNIX网络编程 -& TCP/IP协议,后面还可以继续不断拓展下去。如此不断的拓展和深入,一个很小的契机就能初始你学到很多东西,而这些东西在以后的工作中某些时刻就派上用场了。
我之前在华为是在Windosw平台上用MFC开发,后来到了UC转为Linux平台开发,用这种方法,大约用了2年就熟练掌握了Linux平台相关的开发技术,包括Linux、MySQL、C++、Java、PHP等
第三个秘方就是“闭环学习”。“链式学习”适合于一组相关联的知识或者技能的学习,而“闭环学习”更适合业务、相互配合的知识和技能的学习。由于软件开发是需要多个团队分工合作的,所以绝大部分人都只负责整个系统或者全流程中的一环,这样导致很多人以为只需要将自己负责部分精通就可以了。其实这样不利于个人的发展,一个原因是自己负责的一般都比较窄,可学习和提升的空间可能不多,另外一个原因是很难设计整体上优秀的方案。
而“闭环学习”则不一样,它是这样做的:了解整个功能或者业务的全流程实现,涉及了哪些模块和系统,每个模块和系统主要负责什么功能,涉及到什么技术,性能怎样,有什么注意点。举一个我做个的HTTP的业务样例:从用户点击一个url开始,经过了 浏览器 -& 网络 -& CDN -& Nginx -& PHP -& MySQL -& PHP -& Nginx -& 网络 -& 浏览器,最后呈现在用户面前。我开发的时候只是用PHP开发,但并不只局限于PHP本身,闭环学习就要求全流程中的每个环节都要去了解和熟悉,这样你就可以学到了“浏览器、Nginx、CDN、MySQL”等很多知识。
有的朋友可能会问:这样做有什么用呢?其实用处非常大,一个是当出现问题的时候,有了闭环学习掌握的知识和技能,你就知道哪些地方可能有问题,应该如何处理;另外一个用处是,当你考虑设计方案的时候,就不局限于PHP本身了,也许某个功能Nginx或者CDN或者前端能做的更好,用PHP实现反而很蹩脚。 一个优秀的程序员应该具备哪些技能和修养?
首先是“快速学习能力”。这里不是说一定要去快速去学习各种各样的新技术,而是说当有需要时,能够快速的学习。很多人开始学新的技术和技能时,一开始就一头扎进去写样例、写Demo、看源码,我认为这不是好的方法,而且比较耗费时间,收效也不明显。
我给大家分享我的4W2H快速学习方法。我在学习新的技术的时候,都是按照这样的步骤去了解的:
1)这个技术能解决什么问题(why)
2)比较适合在哪些场景应用(where + when)
3)这个技术跟我已经掌握的哪个知识或技能类似,有什么差别、有什么特点、 有什么优点和缺点(what)
4)了解前面的问题后,我才会开始去尝试写写Demo,或者更进一步去应用(How to use)
5)觉得有兴趣或者其实现很牛逼的情况下,我就去研究一下原理机制,看看源码等 (How it implements)
其次是“良好的理解能力”。程序员需要将产品人员或者用户用自然语言表述的需求翻译成程序语言。自然语言有一个特点就是通俗但不严谨,而程序语言必须是非常严谨的。如果对产品人员或者用户提出的需求没有很好的理解,即使程序语言写的再漂亮,技巧再高,最后做出来也是一个不符合要求的产品。
记得有一个关于“美女”的笑话:人听到“美女”后的反应是想到“天使面孔魔鬼身材童颜巨乳”,而猪听到“美女”后的反应是“乌克兰大白猪”,猫听到“美女”后的反应是“有着金色光滑皮毛的波斯猫”。如果程序员给了猫一个“天使面孔魔鬼身材童颜巨乳”的美女,猫一定会觉得很难看。
第三是“持续不断的学习”。软件开发领域设计的知识和技能太多了。从广度上来说,有操作系统、数据库、编程语言、网络、设计等,编程语言又有几十种;从深度上来说,操作系统、数据库、编程语言等都是可以不断深入去学习的。无论你是从事对技能广度要求更高的业务开发,还是从事对技能深度要求更高开发专项系统,都需要不断的学习,这样才能不断的提升自己的能力。
第四是“乐于分享”。如果单纯从个人完成工作的能力来看,可能确实也有很多程序员不爱分享但确实很厉害。但我认为真正优秀的程序员一定是除了自己优秀外,还能让其他人也变得优秀,或者能够贡献优秀的开源项目以降低别人的重复工作。分享的途径有很多种,可以给公司人员做培训,可以写博客,可以贡献开源项目等。
程序员如何“挤”出时间来提升自己或在技术上提升自己?
关键就在于一个“挤”字,其实就是“利用时间碎片”,10分钟就可以了,以我最近为例谈谈我现在怎么挤时间的,大家可能就明白了。
7:40 ~ 8:00:送完小孩后到出门去地铁中间有20分钟,看《失控》一章
08:20 ~ 09:00:地铁上带一本书,大约可以看完一章,容易看的书可以看两章
09:30 ~09:50:看技术类的PDF,比如说最近看JQuery,大约可以看一章,不用担心,每天20分钟完全不会影响工作
20:20 ~ 21:00:和早上地铁一样
睡觉前15分钟:看15分钟书,前段时间这样花了大约2个月看完《三国演义》
这样累积下来,我一天大约可以看2个小时书,今年上半年看了大约23本书。
给年轻程序员的几条建议
打造你的工具箱。工欲善其事,必先利其器。每个开发者都应该有一把自己的瑞士军刀,在将来漫长的职业生涯中,这些工具可以为你省下宝贵的时间,并帮助你更好的组织个人知识库。举两个例子
一套高效的开发环境 一个信息采集器和一本笔记本
高效的开发环境。我们可以从编缉器谈起,这里有 IDE vs Text Editor,有 Vim vs Emacs,有 Sublime vs Atom,那该如何选择呢?在做选择之前,我们先想想自己的目标。我们希望这是一个长期的投资,这款编缉器能被长期使用,在这个过程不断的打磨,使其能完 全适合自己的习惯,最大化编缉效率。如果程序员是侠客,编缉器则是他手中的剑。
信息采集器和笔记本。前者是用来收集别人产生的信息,后者则是收集自己产生的信息。前者一个简单的例子就是浏览器的 Bookmark。你需要能随时将一组有用的信息归档,并在未来的某个时刻快速找到它。后者最直观的例子则是 Mac OS 或是 iOS 自带的笔记本,这里的目的是能随时随地记录你自己的想法。从本质上讲,就是你需要有一套好用的工具来做你的知识库管理(Knowledge management),也可以说是你知识和思想的外部备份。我个人现在是用 Evernote 同时来做信息采集与笔记的。如果有一个好的流程,你也完全可以用两个工具来分别把这两件事做好。但我建议你花足够多的时间来思考如何组织你的个人知识库。
以上只是两个典型的例子,你需要做的是发现那些你要长期从事的任务(往往不随技术而改变,也不随公司而改变),将完成这些任务所需的工具调整至 最优。再举一个例子,我会留意身边的程序员所用的键盘。只有少部分的程序员会买高端的静电容键盘,比如 HHKB。而在我看来,这明显是一笔很划得来的投资,程序员在工作的大部分时间里都需要和键盘打交道,一个舒适的打字体验是非常有收益的,更何况这类高品 质的键盘都非常的耐用。
开阔你的视野,构建你的技术体系
java开发人员可以看过来。
对于参加工作1年到2年的同学。这部分时间段的同学,已经对Java有了一个更加深入的了解。
对于参加工作2年到3年的同学有的同学在这个时候觉得自己已经很牛逼了,于是忍不住开始慢慢松懈。
参加工作3年到4年的同学这个阶段的同学,提升已经是很难了,而且这个阶段的学习往往会比较多样化。
参加工作4年到5年的同学经过前面一年的历练,相信你在自己所钻研的领域已经有了自己一定的见解,这个时候,技术上你应该已经遇到瓶颈了。
首先你要给自己设定一个目标,就如同一个公司会设定它的 Vision。
目标要够大,这样你才能看到更多的风景。
目标应该设定在解决哪一类问题,而不是精通哪一类技术。技术只是手段,不是目的。
例如,「我要成为 iOS developer 中的达人」这个目标,就远不如「我要成为前端应用开发的专家」来得有意义。前者学到深处你可能会去钻研 iOS framework 里各种奇技淫巧,而后者你会开始关注视觉与交互设计,研究各平台间的差异与共同趋势。显然,后者更有助于你的个人发展。
最后我建议每个程序员都应该经营一款自己的产品,它可以是一款 app,一个网站或是一个开源软件。除非你是一个创业公司的早期员工,不然你可能没有机会将所有学到的技术或是理念都付之实践,有很多人想成为全栈工程 师,最快的捷径就是打造一款自己的产品。任何一个设计师都会精心打造自己的 Portfolio,但大部分程序员却不会。当评估一个程序员的 Coding 能力时,我会去看他的 Github 上是否有出彩的项目,可惜国内绝大部分程序员的 Github 空空如也,或者只有一些非常简单的程序。我建议大家好好经营自己 Github 上项目,这不但可以提高你的声誉,对你将来的求职也非常有帮助。当你报怨求职面试时又被问到各种无厘头的程序题时,有没有想过面试官也很无奈,因为他没有 任何其他方法得知你的 Coding 能力究竟如何。如果每一个程序员都有自己的作品,我想程序员的面试会简单许多。
重视沟通能力的培养
当被问到「你学得 Junior Developer 和 Senior Developer 最大的差别是什么」时,我最自然的反应是沟通与文档。沟通包括程序员团队内部的沟通,与其他团队的沟通,与 Manager 的沟通等等。我不认为自己有能力把这些问题非常概括地说清楚,不过我可以给一条建议,那就是先学会和你的 Manager 沟通,让他来教你其余的部分。许多公司都会设置 Manager 与组员的 1:1,一个有效率的 1:1 应该大部分时间有组员来主导。这需要你在 1:1 之前花足够多的时间来考虑要问的问题,并且最好提前 1 天发给 Manager,让他有机会思考答案。许多人对此不太重视,或者只问非常具体的问题而不是一些开放性问题,这样你很难在你的 Manager 身上学到东西。如果你渐渐懂得如何利用 1:1 的时间,它很会成为你在工作中单位时间投资回报率最高的活动。
累积你的人脉
每个人都明白人脉的重要性,但实际做起来却不容易。参加一些线下的会议或是活动,可能是最直接的扩展人脉的方式之一。可惜大部分人似乎只是去听 了一场技术讲座就回家了。当然,这和不少活动的时间安排也有关系,讲座时间排得太满,茶歇时间短,加上有时嘉宾迟到或是没控制好时间,干脆就把茶歇取消 了。而实际上,结识一两个同道中人远比听技术讲座有价值。下次去参加这类会议,不妨给你自己设个目标,比如至少加两个同行的微信。之后维系你的人脉可能需 要花更多的时间,下了班或是周末找你的朋友们喝个咖啡吧!
另外我觉得每个人都需要一个职场导师,他可以是你第一份工作的导师或是 Manager,也可以是你认识的其他前辈。你们需要维系一个非常长期的关系,不止于一家公司,最好贯穿你的整个职业生涯。每当你遇到疑惑时,都可以询求 他的建议,我觉得这将是你最宝贵的一笔人脉财富。
寻找发挥你才华的平台
最后也是最重要的一步,找到适合你的公司。做为求职者评估一家公司可以看三个方面
公司的发展前景(大公司的话,看所在部门的发展前景)
你将要加入的团队
所以在面试一家公司的时候,你要意识到面试是双向的,公司在面试你的同时,你也在面试这家公司。面试前你应该对这家公司做足功课,准备好一些有质量的问题,比如指出产品中的问题,询问开发流程或是如何做绩效评估。到时你也可以检验一下你的面试官是否合格。
每次选择公司对以上三个方面都应兼顾,但在职业生涯的不同阶段,侧重点不同。比如,在刚刚工作时,加入一个优秀的团队最为重要,他们可以教会你 很多东西,提升你的能力。工作 5 年之后,你需要一个平台施展你的才华,体现个人价值,公司发展前景的重要性迅速提升。当你做出一番成绩,证明了自己的价值之后,逐渐进入收获期,就有了与 公司要价的资格。另一方面,团队实力对公司的前景也有很大的影响。
对一个刚毕业,初入职场的同学,一个近几年被问了无数次的问题「我的第一份工作是去创业公司还是大公司?」我的回答仍旧是「加入一个优秀的团队 最为重要」。
一些知名的大公司,团队的素质是有一定保证,但创业公司则不然,团队素质参差不齐,所以如我前面所说你需要面试这个团队,做出自己的判断。不 过除了团队因素之外,我想提一下毕业生去创业公司的几个好处。首先,在刚毕业的一段时间内,经济压力小,是最自由最能承受风险的时期,而这段时间往往不 长,所以应把握好这个去创业公司的黄金时段。其次,所有的学生进入大公司后,都会担任初级职位,某种程度上来讲是学校学习的延续,规范有条理,但缺乏独立 性和创新性,而这正是中国大部分学生所欠缺的。这方面的能力在一家创业公司可以得到快速锻炼,而在大公司可能要等升到中级职位后才有这方面的机会。个人观 点,仅供参考。
步入职场的前 3 年对今后的发展尤其重要,希望此文能对年轻的程序员们有所帮助
原创不易,如果感觉不错,希望给个推荐!您的支持是我写作的最大动力!
Java企鹅交流群:
Java战狼连接:https://ke.qq.com/course/144677?flowToken=1003848
如果你对生活感觉到了绝望,请不要气馁。因为这样只会让你更加绝望! 所谓的希望往往都是在绝望中萌发的,所以,请不要放弃希望!
没有更多推荐了,}

我要回帖

更多关于 刚转行做程序员后悔了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信