近几年,不少开发者会抱怨“面试造火箭,天天拧螺丝”,每天进行重复业务开发,似乎能力被日常工作限制,无法突破提高。
极客时间《Java 核心技术 36 讲》专栏作者杨晓峰认为,如果处于新手阶段,全面、扎实地掌握语言的基本要素是当务之急,应该找到更基础、系统的 Java 书籍或者课程,并培养良好的编码习惯。然后去了解Java 技术领域的典型、长期热点话题,了解业界通常从哪些角度判断开发者的能力和水平。
【资料图】
工作几年,整天忙于业务代码,很容易困惑下一步的方向在哪里,相当多程序员长期停留在高级新手阶段。常见表现就是发展成为“面向搜索引擎”的编程工程师,擅长快速利用开源项目或者以往成果,完成一些“OK”的工程任务。这本无可厚非,职业路线很多,未必每个人都想成为底层专家。
但是,如果想在技术领域更进一步,一定要避免下面两个问题。
面对没见过、一定规模的或者较高标准的问题时无所适从,具体表现为“领导,你看这样行吗?”。
无法独立提供有说服力的深度分析、设计和实现,比如业务系统运行一段时间就会变慢,目前团队处理的方式就是重启服务器,有没有想过去发掘真正的原因,真正去解决它?
杨晓峰建议,不要满足于表面特征,而要学会用白盒视角看待技术内部,系统性的思路掌握普遍规律。即使未来不在一线编码,或者不再使用 Java,同样的思维习惯和积累也很有帮助。
那么,如何才能摆脱高级新手阶段,成长为团队核心成员呢?这取决于能背多大的锅、填多大的坑,比如,你可以:
独立负责 GC 调优,即使没有历史经验,也能给出有说服力的方案。
在 JVM 领域有充足的技术经验和知识储备。
全面评估后台变慢等问题的复杂度、风险点、解决的可能性。
对于所谓本质的思考和理解,能听懂深入的抽象观点。
除了Java和JVM,还要掌握更完整的技能树,例如分布式系统设计、数据库隔离级别选型等。
关键词: