一转眼已工做八年,我跟前段时间公司刚入职的同事聊天,他问我:我三五年后能发展到哪一个地步。我当时并无回答他,本身陷入了深思。想了想决定写篇文章阐述下本身的观点。程序员
(几乎)没有人可以看准技术的下一个方向,由于这个问题实在是太难了,可以作到这一点的你就成为了技术界的巴菲特了。好比说11年加入Google,14年加入Facebook,16年加入阿里巴巴。作到这一点的人确定有资本也有眼光去作风险投资,就算不作风险投资那么财务自由也是妥妥的。数据库
如今毕业八年,从北京到上海到硅谷,从国内互联网公司外企,看到了公司好的地方和坏的地方,这里只是根据本身的经历写一些大方向选择建议,仅供参考。架构
1、行业背景很重要 行业背景很是重要;工做3年后必须肯定本身的行业背景,好比一直从事电信行业,一直从事银行项目,一直从事ERP行业等等。学习
一个程序员不多是一直写代码的,就是写代码也要知道业务逻辑,知足什么需求;俗话说隔行如隔山,每一个行业的业务都不同,甚至差异很大,好比你一直从事流媒体的研究,让你跳槽到一家银行项目,完了,一切从头学吧,之前的行业经验都用不上了;并且,一个公司公司招人,就是但愿找到那些很容易上手,不须要培训业务好久的程序员;频繁跳槽的朋友,必定要注意这点;测试
一直在一个行业呆久了,就能够成为这个行业的专家;咱们能够常常看到,一个项目组的某个leader,代码写的通常,可是却能够跟客户流畅的沟通,控制着新需求的提出,bug的修正等等;而客户也很愿意跟他打交道,由于那些老的项目只有他能维护,他甚至熟悉系统的每一张表结构——-可想在这个行业呆的时间有多久啦。职业规划
a.你工做几年了,你愿意一直和新入行的新手同样就是个简单的程序员吗?设计
b. 你愿意一直写代码,而不关心其余吗?cdn
c. 一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?blog
程序员不是敲代码的机器。第一年太多东西不懂,你能够一切遵从老大的安排,敲敲代码,看看数据库,测试本身和别人的代码;可是第二年,你仍是这样吗?不可能的,一年的经验你彻底能够入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各种文档,怎么写更好的代码?这是高级程序员的要求!开发
全部,一个项目立项后,你要积极的参与到前期设计中,跟老同志们一道思考分析问题,学习经验!OK,你这就成长啦!
千万不要认为程序员就是写代码的哦!!!
并且,经过一个项目的开发,你要能粗略的统计出一个功能的开发时间;好比一个模块有20个小功能点,你开发了80个小时,每一个小功能点平均2小时——这时在前期就能评估工做量啦。固然每一个人的效率和工做质量是不一样的,因人而异,可是大概的工做量应该是能够统计出来的,用于统计一个项目的工做周期;
据不彻底统计,截至目前为止,中国程序员的数量已经超过了100万。并且,随着IT培训业的持续发展和大量的应届毕业生进入社会,程序员面临的竞争压力愈来愈大。那么,做为一名程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不只是一个刚刚踏入职场的初级程序员,也是工做三五年以后开始迷茫的老程序员,都必需要面对和想明白的问题。