我是2015年6月研究生毕业,然后通过校招进入到阿里巴巴,当时复习时候目标很明确就是要进入BAT,然后就一堆堆资料的复习,本科+研究生7年用的都是c++,所以面试时候自然面试了c++职位,但是面试时候面试官说我们只要Java,你愿不愿意做Java方面开发,自然愿意啊,当时啥都没想,就进入了现在的部门做Java后台的业务开发。
进入职场最直观的感受是凡是要靠自己去摸索,去研究,最多业务或者技术点上同事和老板会给你指点一下,但是具体具体细节还是需要自己去花时间去研究的,毕竟别人都有自己的工作的,即使工作不很忙,人家还想干点自己的事情的。
阿里的系统大多文档不是很齐全,所以需要自己看代码+咨询业务的方式来理清脉络。自然看代码debug是不可缺少的步骤。在转正前都有三个月实习,这三个月时间完成了对第一个业务系统的代码逻辑的熟悉,熟悉后就会发现这个系统并不复杂,都是固定的执行线路。
空闲之余开始看开源框架源码,说起看源码这不得不感谢前同事了元(花名),了元是一个牛逼哄哄的技术牛人,无论是Tomcat,JVM调优,Calssloader,并发编程,OSGI,JNDI等他都很深入的了解,感觉技术上就没有他不知道的,并且喜欢研究开源框架源码。一开始了元是带我看Spring的源码,我感觉很吃力,但是花了大概1月时间对Spring框架有了一点认识,然后就磨磨蹭蹭的看完了Spring IOC和AoP的代码。
对于看源码有一点感触,就是先找一个demo,分析运行结果,然后debug进入,在debug过程中要干两件事情,第一画出模块类图结构,第二画出时序图。好处在于debug完后你会清楚的看到这个框架的这块功能是有哪些模块类组成,每个模块类对这个功能的实现提供了哪些能力等等,这对你理解这个功能的设计有一定帮助,另外时序图有助于你了解这个功能的执行逻辑,当你下一次想看这个功能的某些实现时候,你可以根据时序图直接找的你感兴趣的类,直接进入研究。
看完Spring源码的大部分源码后,就开始看Tomcat了,自然这个一方面是受了元的影响,一方面是自己的兴趣,tomcat里面内容还是比较多的,有空就翻翻,研究tomcat一个心得是首先从main函数开始看tomcat的各级容器是怎么初始化,启动的,然后在分析一个请求过来后是怎么处理的。建议先看一点网上的资料对tomcat的整个结构体系有个了解,然后再看代码会事半功倍。
当然后面有看了Velocity,mybaits和阿里的大部分中间件代码,看源码最大的好处是可以开阔你的思维,提升你的架构设计能力,有些东西书本和紧靠自己思考是很难学到的,必须通过看源码,看别人如何设计的,然后思考为何这样设计。能力的提高判断不在于你写了多少代码,做了多少项目,而在于给你一个业务场景时候,你是否能拿出几种靠谱的解决方案。而如何才能拿出来那,一来靠经验,二来靠归纳总结,而看源码,看经典框架如何实现的,则可以快速累加你的经验。
......
随着2年积累,你会慢慢发现自己之前的积累实在是太浅了,学的东西太基础了,那么如何才能在把自己提高一个层次那,那就不要甘于做纯碎堆积代码的业务了,去中间件吧,去淘宝吧,在那里高并发,高流量的挑战等着你去被虐-。
最后发表下感慨:良禽择木而栖,努力很重要,选择更重要。
在新岗位要适应一段时间,熟悉新系统,后面会在写下淘宝中间件部门的感受。
阿里巴巴长期招聘Java研发工程师p6,p7,p8等上不封顶级别,有意向的可以发简历给我,注明想去的部门和工作地点:1064454834@qq.com
欢迎关注微信公众号:‘技术原始积累’ 获取更多技术干货__