#技术的三个阶段   我认为程序员一般会经历三个阶段: 实现—>借鉴—>优化,每一个阶段都会遇到瓶颈。 * 第一个阶段:实现   在这阶段我们只在乎功能的实现,不会考虑性能优化,我们会觉得一些功能不会做,有些功能自己没做过,只要实现了功能,就觉得很有成就感。   就好比我们人类在原始社会时的居住环境,这时候不在乎住得舒不舒服,只要能找个遮风避雨的山洞就行。   这个阶段一般会持续2-3年,在这段时间经常遇到程序问题,为了解决这些问题经常熬夜, 但如果过了2-3年还经常熬夜就不正常了。此阶段,我们要多去接触,什么没有做过就做什么,后端,前端,服务器等都要有所了解。这个阶段也会遇到很多困难,遇到困难证明自己还有东西不会,相信学会就简单了,所以遇到困难不应该是放弃而是学习。 实现阶段要学习的东西也会很多,需要掌握科学的学习方法,本书后面会详细介绍一些学习方法。 * 第二个阶段:借鉴   当我们觉得基本所有功能自己都能实现的时候,我们会遇到自己的第一个瓶颈,这时候不要自满,要发现那只是自己的第一个瓶颈而已,自己的提升空间还很大,这时候建议大家多借鉴别人的代码,多看一些开源程序的源码,读别人的程序能学到很多东西,能学习到很多编程思想,能看见很多自己以前没有用过的类、函数等。或许有人认为别人能实现的自己也能实现,不屑于看别人的东西,美国一位大师Matt Zandstra说过这样一句话: “我们正在努力开发的功能,或许已经被其他程序员实现过无数次,我们怎么不借鉴他们的。 把重心放在自己特有的业务逻辑上。”   这个阶段也好比我们人类的居住环境, 人类不满足于只住山洞, 后面可能是借鉴了鸟搭鸟窝的方式,人类自己也可以搭建茅草屋了。   在这个阶段需要掌握分析开源程序的方法,要学会看别人的程序的,本书后面会详细介绍一些分析程序的方法。   借鉴阶段一般会持续1-2年, 这个阶段也会有瓶颈, 开源程序看多了后, 会发现再看任何开源程序已经看不出新的思想了, 很多编程思想都是相通的,好像都是已经见过的。这时候我们要把重心放到优化自己的代码上面。 * 第三个阶段:优化   当我们功能都能实现了,也借鉴了许多别人的东西,这时候我们的重心会想着怎么优化我们的代码, 我们会考虑代码的可读性、安全性、可扩展性以及服务器的优化。这时候建议大家可以看一些设计模式、编程思想、网站安全方面的书。   这个阶段就好比我们人类居住环境,我们不断的优化我们的居住环境,然后可以盖建楼房了,让人类居住得更加舒适。   这三个阶段并不是顺序出现的,有时候我们可能即在实现阶段也在借鉴阶段也在优化阶段, 但工作年限不同会偏重的阶段不一样, 如果是刚开始工作,肯定偏重实现阶段会多一些。   如果再从程序员的职业发展方向来分析,图1-1几乎表示出了一个程序员可能走的所有路线 ![](https://box.kancloud.cn/2016-01-12_5695155ca1013.png) 图1-1 程序员的发展路线   我们刚开始还是一个初级开发的时候只能把自己先变成高级开发然后才能有更多选择。可以选择管理线、专家线或者小老板线(图有四个象限,x轴代表金钱, y轴代表时间。)   我们学习知识的路线是: 技术->技术+管理->技术+管理+商业。   随着阶段不一样,我们学习的知识也有不同,刚开始我们只做开发,只需要学习技术知识就行了,后面我们做到了管理职位,不仅要懂技术还要学习管理知识,然后我们想要成为CTO\CEO或小老板,必须得学习一些商业知识才行。   作为技术人员,3年工作经验以上就可能开始带人了,肯定要也学一些管理知识,本身在后面章节也会介绍一下“技术团队的管理”