1.第一关:入门
怀着好奇和希望开始,去Google、知乎、QQ群或者朋友那里问了一圈,选定了一个方向,开始学习某编程语言以及相关框架。
有过犹豫和彷徨,但最终还是咬牙坚持了下来。
刚入门掌握的信息比较少,认识不足。容易被忽悠,喜欢与人进行口水战,捍卫自己付出努力的东西:XXX大法好,XXX语言是垃圾, XXX框架是垃圾,XXX IDE是垃圾。
2. 第二关:可以应对日常工作,例如简单的CRUD,调用接口。
进入公司,经过熟悉期/学习期以后,正式开始工作,发现日常工作就是实现业务,写接口,调接口。
加班不断,一个又一个的需求,身心俱疲。
接触更多的技术,迷茫,不知道该如何学起, 什么都看,很多东西都是做个尝试,写个小程序,浅尝辄止。
也许停留在这一阶段,踯躅不前好几年,接近三十就会焦虑。
被替代性比较强,第一阶段的人虎视眈眈,随时准备上来用自己的青春和热血抢班夺权。
可能会离开单纯的编程,转到项目管理,产品经理,销售,技术支持......
3. 第三关:从项目局部看到整体。
程序员突破了CRUD,就会来到这一关。
不满足于当前的工作,开始学会从全局,从端到端看待系统,思考问题。
项目代码的核心贡献者,追求高质量的代码,能够看到项目开发中重复的东西,写出高质量的库函数,让大家调用。
能够引入、开发新的工具,帮助团队提高生产率。
做开发有了成就感,正向循环开始建立,优秀程序员的声望开始传播。
简历中有亮点,有了跳槽的主动权。
有不少人会被拉去做管理,走上另外一条路。
4. 第四关:能够看到项目和项目之间通用的东西,这就是看到架构了。
积累了很多项目经验,开始看透语言、框架、甚至项目之间的共同模式,上升到了架构层面。
处于团队的核心地位,项目架构的搭建者,技术决策有极大的影响力。
需要和客户、技术人员、管理人员频繁打交道,对软技能的要求越来越高。
经常接到猎头的电话和邮件。
5. 第五关:更多的时候是从业务角度思考问题,技术变成了实现业务的手段。
把握行业发展趋势,分析竞争对手,进行产品发展的规划。
跟踪新技术,考虑如何用新技术促进业务的发展,或者开辟新的业务。
考虑研发团队的发展和转型,以适应业务发展。
6. 第六关:发现市场机会,用技术来满足,创业!
发现市场需求(也可能只是一个自我感觉良好的点子),和公司业务不符,或者公司不愿进入,自己想实现最大价值,横下一条心:还是自己干吧!
创业成功,走上人生巅峰!
创业失败,退回到4或者5。