一开始,和导师一起做过一些小项目,感觉自己知识和技能已经掌握的差不多了,当时自信满满的去投递简历,参加面试,但是不知道为什么就是没有回复。
那个时期的我,压根不知道自己不知道,还以为自己都学会了,足以应对工作了。现在想起来就觉得特别好笑,其实那个时候的我还算不上真正的“程序员”,顶多只能算是个业余编程爱好者。
这个阶段的表现:自大、假自信、过度承诺、满口我能行没问题、看不起其他程序员~
第二阶段:知道自己不知道
工作后,发现自己在项目中会遇到很多困难,不知道怎么解决,知道了自己和同组人的差距,也知道了自己知识和技能的欠缺,意识到了自己技不如人,很多地方都有不足,需要拼命学习。
这个时候,就是大家所说的初级程序员阶段,这个阶段必须依靠别人指导。
这个阶段的表现:有点心虚、虚心学习、偷偷努力、羡慕牛人~
第三阶段:知道自己知道
工作了三四年后,随着自己的不断学习,技能、经验的不断积累,终于成为了项目组的技术大拿,这时候也很自信,知道自己能够解决遇到的所有问题,这时候就到了高级程序员阶段了。
这个阶段的表现:自信、比较客观、真正承诺、有点自我~
第四阶段:不知道自己知道
工作多年后,随着自己知识的深度和广度的不断拓展,学得越多发现不懂的越多,觉得自己以前真是浪费了太多时间,走了太多弯路。
虽然觉得自己还有很多方面需要提高,但是对工作中遇到的问题基本没有解决不了的,这个时候很多知识都自成体系,解决问题也有了自己的潜意识,有时连自己都不知道自己知道,这时候属于架构师级别了。
这个阶段的表现:开放、主动、好学、谦虚~
随着互联网的不断发展,java编程开发程序员的需求量也是不断的增加的,而今天电脑培训就一起来了解一下,成为一个专业的java程序员都有哪些阶段。
一、新手
如果你是新手阶段,全面、扎实地掌握语言的基本要素是当务之急。你可以在正规的指导下飞速进步,并培养出良好的编码习惯。然后可以再结合专栏,看看Java技术领域典型的、长期的热点话题,了解业界通常从哪些角度判断你的能力和水平。
二、高级新手
工作了几年,整天忙于业务代码,很容易困惑下一步的方向在哪里,相当多的程序员长期停留在高级新手的阶段。一个常见的表现就是发展成为了“面向搜索引擎”编程工程师,擅长快速利用开源项目或者以往成果,完成一些“OK”的工程任务。这本无可厚非,职业路线很多,未必每个人都想成为底层专家。
但是,如果想在技术领域更进一步,一定要避免下面两个问题。
面对没见过的、一定规模的或者较高标准的问题时无所适从,具体表现为“领导,你看这样行吗?”。没做过互联网高并发应用,难道就不能对并发编程有相对深入的思考吗?比如,习惯了使用Executors,你有没有思考过不同的线程池到底适合什么场景?当前的实现在未来业务量增长下可能出现什么问题?
无法独立提供有说服力的、有深度的分析、设计和实现,比如业务系统运行一段时间就变慢,调整Heap大小,似乎仍然OOM。目前团队处理的方式就是重启服务器,有没有想过去发掘真正的原因,真正去解决它?
我建议不要满足于这些表面的特征,要学会用白盒的视角看待技术内部,系统性的思路掌握普遍规律。即使未来你不在一线编码,或者未来不再使用Java,同样的思维习惯和积累也是很有帮助的。
三、胜任者
那如何才能算是摆脱了高级新手的阶段呢?或者换句话说,如何成长为团队的核心成员?这取决于你能背多大的锅、填多大的坑,比如你已经可以:
独立负责做GC调优,即使没有历史经验,也能给出有说服力的方案。
在JVM领域有充足的技术经验和知识储备。
全面评估评估后台变慢等问题的复杂度、风险点、解决的可能性。
对于所谓本质的思考和理解,能听懂深入的抽象观点。
并且,除了Java/JVM,还要掌握更完整的技能树,例如分布式系统设计、数据库隔离级别选型等。
掌握将“OK”的事情做到“excellent”程度的能力,不断地进行高效实践、领域的扩展和精深,我们就可以达到并超过胜任者,逐步成为精通者和专家。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)