Java斗帝之路 可以解除程序员中年危机的职业规划( 四 )


因此千万不要觉得你已经学的很多了 , 我所说的这些都只是最低要求 , 不光是我 , 很多人在这个时间段所学习的内容都远超本文的范围 。 如果你不能跟上节奏的话 , 若干年后 , 如果不是程序猿市场还不错的话 , 你很可能不仅仅是工资比别人低 , 公司没别人好 , 而是根本就找不到工作 。
总而言之 , 这个阶段 , 你需要做的是深入了解Java底层和Java类库(比如并发那本书就是Java并发包java.concurrent的内容) , 也就是JVM和JDK的相关内容 。 而且还要更深入的去了解你所使用的框架 , 方式比较推荐看源码或者看官方文档 。
另外 , 还有一种学习的方式 , 在2年这个阶段 , 也应该启用了 , 那就是造轮子 。 不要听信那套“不要重复造轮子”的论调 , 那是公司为了节省时间成本编造出来的 。 重复造轮子或许对别人没有价值 , 因为你造的轮子可能早就有了 , 而且一般情况下你造出来的轮子还没有现存的好 。
但是对别人没有价值 , 不代表对你自己没有价值 。 一个造轮子的过程 , 是一个从无到有的过程 。 这个过程可以对你进行系统的锻炼 , 它不仅考察你的编码能力 , 还考察你的框架设计能力 , 你需要让你的轮子拥有足够好的扩展性、健壮性 。 而且在造轮子的过程中 , 你会遇到各种各样的难题 , 这些难题往往又是你学习的契机 。 当你把轮子造好的时候 , 你一定会发现 , 其实你自己收获了很多 。 所以 , 这个阶段 , 除了上面提到的了解JVM、JDK和框架源码以外 , 也请你根据别人优秀的源码 , 去造一个任何你能够想象出来的轮子 。
辅助学习书籍:《深入理解Java虚拟机》《Java并发编程实战》9、工作3-4年
参加工作3年到4年的同学这个阶段的同学 , 提升已经是很难了 , 而且这个阶段的学习往往会比较多样化 。 因为在前3年的过程中 , 你肯定或多或少接触过一些其它的技术 , 比如大数据、分布式缓存、分布式消息服务、分布式计算、软负载均衡等等 。 这些技术 , 你能精通任何一项 , 都将是你未来面试时巨大的优势
因此如果你对某一项技术感兴趣的话 , 这个时候可以深入去研究一下 。 这项技术不一定是你工作所用到的 , 但一定是相关的 。 而且在研究一门新技术时 , 切忌朝三暮四 。 有的同学今天去整整大数据 , 搞搞Hadoop、hbase一类的东西 。 过不了一段时间 , 就觉得没意思 , 又去研究分布式缓存 , 比如redis 。 然后又过不了一段时间 , 又去研究分布式计算 , 比如整整Mapreduce或者storm 。 结果到最后 , 搞得自己好像什么都会一样 , 在简历上大言不惭地写上大数据、分布式缓存、分布式计算都了解 , 其实任何一个都只是浮于表面 。 到时候面试官随便一问 , 就把你给识破了 。
一定要记住 , 作为一个程序猿 , 平日里所接触的技术可能会很多 , 但是想要让一门技术成为你的优势 , 那么一定是你对这门技术的了解强过绝大多数人才行 。
因此在这个阶段 , 你就不能再简单的去学习前3年的内容了 , 虽然前面的学习如果还不够深入的话依旧要继续 , 但这个时候你应该更多的考虑建立你的优势 , 也可以称为差异性 。 差异性相信不难理解 , 就是让你自己变得与众不同 。 你前面三年的学习足够你成为一名基本合格的Java开发者 , 但你离成为一名优秀的Java开发者还有很大的距离 。
所谓优秀 , 即能别人所不能 。 而你前三年所学习的内容 , 是很多做过几年的Java开发都能够掌握的 。 那么为了让自己有差异性 , 你就需要另辟蹊径 , 找一个方向深入研究下去 , 以期在将来 , 你能够成为这个领域的专家 , 比如分布式计算领域的专家 , 大数据领域的专家 , 并发领域的专家等等 。
此外 , 你除了建立你的差异性之外 , 还要去弥补你基础上的不足 , 直到现在 , 我都没有提及基础知识 。 原因是基础是很枯燥无味的 , 学的太早不仅容易懵逼 , 而且懵逼的同时还容易产生心理阴影 , 以至于以后再不想去研究这些基础 。 但基础又是你深入研究一些领域时所必须掌握的 , 比如你去研究分布式计算 , 你不懂算法你玩个毛毛?比如你去做分布式缓存 , 你对计算机系统的内存不了解 , 你如何去做缓存?