大概回顾了这场面试:上来先是问了Java基础知识,jvm、字符串、集合、线程等等,这部分我还算准备的充分。第二部分开始复杂了,主要是线程、设计模式、缓存方面的问题,像是分布式、集群环境中,缓存如何刷新,怎么保持同步?我之前工作上经历的少,加上自己技术储备浅薄,到这部分时我就感觉自己快凉了。面试到最后,问了设计方案相关的,当时已经懵了,我只记得一个问题:假设服务器经常宕机,你从哪些方面去排查问题?我。。。。
面完后他说,觉得自己在技术上欠了很多债,最惨的是,在这之前他根本不知道。
听了这位读者的经历,于是有了今天这篇文章。很多工作了1-3年的Java人,想够一够 3w月薪的岗位,但在底层技术上却有很大的问题:
毕业几年,表面上用过很多技术,但都没能深入学习,一年的工作经验,干了好几年。结果就是遇到实际问题时无从下手,最终还是走着普通工程师的道路,和高手的距离越来越远。
都说三年是程序员的一个坎,能否晋升或者提高自己的核心竞争力,这几年就十分关键。
技术发展的这么快,从哪些方面开始学习,才能达到高级工程师水平,最后进阶到Java架构师/技术专家?我总结了这 8 大能力——
-
源码剖析和框架定制能力
-
平台性能分析和调优能力