一、自我修养路线图
如图,这是笔者所走的路。且不论这路走的对不对,这个过程中行业环境会影响到你,大可不必钻牛角尖。附上这张图的目的是为了说,如果你想成为一个优秀的程序员,那么你一定要有规划。当然,别想着一毕业就能规划的很远,很难,而且也不可能。因为这个过程中行业环境会影响到你。有一点是要做到的,毕业一年左右,一定要有一个相对远一点的规划,这时候你已经对行业环境和一些常用技能有了相应的积累。规划一下接下来1-2个阶段(或者更多)要达到的水平和时间点,然后倒排期(尽量详细),一步一步走下去,水到渠成。再往下,你肯定就有自己的想法了。一般,关注几个时间点是:毕业3年、毕业5年。再往后笔者也要摸索。总之,一定要有规划,循序渐进的规划。附录中有些文章也许对你我有帮助。
二、程序员知识图谱
笔者曾经根据互联网架构的发展史把主流的技术串起来想成一篇图文文档,以便理解技能的更迭以及技能之间的联系。不管你用什么方式(图表、思维导图、文档等)一定要有自己的知识图谱。为什么?
- 知识网络:知识之间发生反应,有利于更快的利用知识解决问题;
- 良性循环:知识体系->知识漏洞->知识学习->知识体系...
三、优秀程序员的几个特质
- 自学能力强,互联网行业知识的更迭速度快,没有很强的学习能力和主动学习能力,会越来越力不从心,最终...
- 逻辑思维能力强
- 同样的业务逻辑,别人用50行代码实现,你却用100行,为什么?
- 知识面相同,为什么别人可以借助这些知识找到问题的解决方法,而你却不可以?
方法:
- 技能实践,一项技能,不单单只是学会就行了。多实践,工作中无法体现,也要构造场景来实践。印证其使用场景、优势和劣势。
- 问题复盘,别人用你知道的知识解决了问题,而你没有,想他请教。复盘,走一遍他的思维过程。另外,查询资料,思考下有没有更好的方案。
- 知识碾压,你的知识比别人高出一个层面,及时逻辑思维弱点也能够用很好的解决问题的方案。
- 逻辑训练,有事没事多做一些算法题和一些逻辑推理题,做的多了,思路就广了。
- 搜索+综合运用能力强,能快速查到的知识,只有能很好的综合运用即可,减少学习成本。
- 执行力强,想好了就去做,拖拖拉拉,终将蹉跎岁月。
- 抗压能力强,好的公司,工作强度大,而且不允许犯错,一旦出现线上事故,是你不能承受的。
- 善于总结,一个需求不是做完了就完了。总结一些收获和教训,这都是难得的经验积累。一个问题从出现到解决,复盘,整理出文档。坚决不要在一个坑里跌倒两次。
- 分工合作,或许一个人走的很快,但一群人能走的更远。
四、如何保持技术的先进性?
- 经常浏览招聘网站;
- 关注一些行业和技术公众号。
五、如何快速学习一项技能?
- 百度或谷歌科普 -> 是什么、场景、用途等;
- HelloWorld很重要,去官网,先写出一个demo;
- 结合官方文档或者优秀的中文教程针对性(你要用它来干什么)学习;
- 实现原理,甚至源码。
六、为何而编程?
使命
难道只是因为你是计算机相关专业出身吗?不然,既然从事软件行业,还是要有使命感的。国内软件行业的蓬勃发展,对你我而言赶上好时候了。在这个浪潮中,何不学有所用,为中国的软件行业做些贡献呢?为中华软件之崛起而编程,共勉。这是态度,也是使命。也许一开始可以影响一个人,渐渐的能影响更多的人,更多的人影响更多的人,我们国内的软件环境才能呈现可持续的正向发展。
愿景
但愿程序员皆因喜欢二编程。不然你得多痛苦。另外,程序员这个职业是可以做很久的,不是吃青春饭的。
七、附录
Codelife不知代码,笔者阅读调整并做了标记。
作者: 尜尜人物使命:为中华软件之崛起而编程
愿景:愿程序员皆因喜欢而编程