阿里面试成功已经过去一个月了,入职也已经过去十多天了,趁着周末写点东西和大家进行一下分享,本文会写到以下的内容:
个人一路走来的经历
未来的一些思考
我自己理解五年这个时间节点一名优秀程序员应当具备的技术素质
小广告时间
那这次加入的BU是菜鸟,一个非常有发展前景的公司。
从校园出发,走向阿里
工作五年,标题却是"四年努力",实际上确实是这样,2013年从母校杭州师范大学毕业之后,我和很多刚毕业的同学一样,会没有目标、找不到方向、不知道未来到底要做什么,所以大约有一年的时间是很迷茫的,工作也就那样吧,得过且过。
大约一年过后,也就14年样子,那个时候公司还在西湖科技园,也许是自己的上进心作祟、也许是母校学长马云情怀作祟,有一段时间每天沿着石祥路回家,就想着这辈子我一定要凭借着自己的努力进入阿里,而且这种想法每天每天越来越强烈。
就像我公众号里面写的,4年前其实并没有现在这么多面试经或者程序员成长经,虽然有心,但是并不知道朝哪个方向去努力。于是想了一个办法:花了一个礼拜时间,把51job、猎聘这些那时候比较有名的招聘网站里面的Java岗位通通看了一遍,把每个岗位描述都写下来,并进行整理和总结,列了一份比较大的提纲,作为自己的学习目标。
在这之后,开启了算是比较疯狂的2015年吧,那一整年只有一个关键字----学习。一整年除了几个极重要的人,几乎没有和同事、朋友出去玩过,八九点下了班回去就开始学习到十一二点、工作中比较空余的时间学习、双休日学习、各种大小长假学习,反正各种能利用到的时间都用来学习了,各种JDK源码、多线程、Java虚拟机这些都看了个遍,前前后后看过的书不下10本,像虚拟机这本书我好像有说过几次,PDF+实体书看了不下五遍,这个博客也是从15年开始写的。
学习是寂寞、枯燥的,这段时间里其实有太多次想要放弃,但每次也都熬了过来,可以分享给大家一个感悟:花一年自己逼自己一下,让一切优异的品质成为你的习惯。像我现在,就感觉努力、上进、钻研、好奇心这些已经是骨子里的东西了,研究一个技术点,不整理成一篇博文,我都不认为自己掌握了这个技术点。
至于工作,经过15年这一年的学习,由于个人水平的长进,16年到18年间,在工作中领导也愿意给我机会,会写一些底层的东西、会做一些系统性的设计、也有机会带几个人的小团队,在这一过程中,慢慢发现基本功并不能说明所有问题,因为必然会遇到没碰到过的东西、会遇到一些更复杂的问题,然后通过查资料、研究、寻找解决方案、解决问题进一步提升自己的能力。
个人技术成长,工作中成长(实际解决问题能力)一定是缺一不可的,就像前几天我们大部门老大分享的:什么是好的技术,能解决实际问题的技术就是好的技术。
18年年中,对的时间遇到一个对的部门、对的领导、对的团队,梦想照进现实。
希望我分享的个人成长经历,能对看到的人有一些鼓励、有一些感触,如果让我总结一下,那么希望告诉大家两点:
相信你自己,我这样学校一般又不聪明的人都能走到今天这一步,那么大多数人一定都能走到我这一步,而且能走得比我更远、更好
世界上没有什么是努力办不到的,如果有,那么就更努力一些吧
五年之后,何去何从
在之前写过的一篇文章《面试感悟----一名3年工作经验的程序员应该具备的技能》一文中,有一段专门写了对程序员的几个阶段的理解,当时是工作三年写的,一转眼两年过去了,我自己也差不多工作五年了,在这个节点上,结合自己的认识,说一下第五年开始,一个程序员应该朝哪个方向努力。
首先,前五年,如果一个程序员大致能做到一下几点(后面还会详谈):
具有扎实的基本功
能快速完成领导交给你的代码开发任务
能在遇到问题的时候有正确的解决思路
能对公司的新人进行一定辅导,包括但不限于技术点分享、代码评审、需求分析、表结构设计等
那么,从第五年开始,我认为可以、也应当朝更高的层次进行迈进,前一个层次如果更多是偏重个人,那么这个层次我认为更多应该偏重团队,简单罗列一下大致上应该有: