程序员从开始选择到坚持下去,工做了六年对一个程序员意味什么?在职位上:高级开发工程师?架构师?技术经理?or ... ?在能力上:各类编码无压力?核心代码无压力?平台架构无压力? 看着这些问号都心累。相同六年,不一样程序员却走在了不一样的路线,有些能在六年成为架构师,有些却仍是程序员,不是工做年限加长而已,那么,六年你迷惘了吗?又走到了那个十字路口?程序员
毕业六年,从北京到上海到硅谷,从国内互联网公司外企,看到了公司好的地方和坏的地方,这里只是根据本身的经历写一些大方向选择建议,仅供参考。web
第1、合理的职业规划spring
什么是职业规划—-就是你短时间或者长期的一个职业计划!大道理不讲,咱简单点。先问你几个问题:sql
a.你工做几年了,你愿意一直和新入行的新手同样就是个简单的程序员吗?数据库
b. 你愿意一直写代码,而不关心其余吗?编程
c. 一个项目的前期需求,设计,后期部署维护,领导找到你,你说咱搞不定,行吗?后端
程序员不是敲代码的机器。第一年太多东西不懂,你能够一切遵从老大的安排,敲敲代码,看看数据库,测试本身和别人的代码;可是第二年,你仍是这样吗?不可能的,一年的经验你彻底能够入行了,是时候该学习怎么进行需求分析,怎么设计数据库,怎么写各种文档,怎么写更好的代码?这是高级程序员的要求!springboot
第2、行业背景很重要性能优化
行业背景很是重要;工做3年后必须肯定本身的行业背景,好比一直从事电信行业,一直从事银行项目,一直从事ERP行业等等。架构
一个程序员不多是一直写代码的,就是写代码也要知道业务逻辑,知足什么需求;俗话说隔行如隔山,每一个行业的业务都不同,甚至差异很大,好比你一直从事流媒体的研究,让你跳槽到一家银行项目,完了,一切从头学吧,之前的行业经验都用不上了;并且,一个公司公司招人,就是但愿找到那些很容易上手,不须要培训业务好久的程序员;频繁跳槽的朋友,必定要注意这点;
一直在一个行业呆久了,就能够成为这个行业的专家;咱们能够常常看到,一个项目组的某个leader,代码写的通常,可是却能够跟客户流畅的沟通,控制着新需求的提出,bug的修正等等;而客户也很愿意跟他打交道,由于那些老的项目只有他能维护,他甚至熟悉系统的每一张表结构——-可想在这个行业呆的时间有多久啦。
第3、别以上班太忙没时间学习为借口
不少人认为本身没有成为技术大牛并非本身不聪明,也不是本身不努力,而是中国的这个环境下,技术人员加班都太多了,致使本身没有额外的时间进行学习。
实际上的作法正好相反:首先咱们应该在工做中学习和提高,由于学以至用或者有实例参考,学习的效果是最好的;其次工做后学习不须要大段时间,而是要挤出时间,利用时间碎片来学习。
对程序员来说,开发思想、架构、代码就是财富,软件的价值在于重复利用,而不是每一个东西,都从头开发。有些模块在很大程度上有必定的类似性,例如业务逻辑上都须要某个查询字段、显示某些信息,操做上都涉及到数据的增删改查。这种重复的工做无形中增长了开发工做量。xjr快速开发框架正好解决了这方面的问题,xjr快速开发平台是开发人员以某种编程语言或者某几种编程语言(好比:目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi,WebSocket,Jquery,BootStrap, maven,Jenkins 等等 )为基础,将各类须要的功能封装在不一样的层中,具你们调用而开发出来的一个软件。基础简单的功能交给它。能够花更多时是来学习新知识,不断提高自我。
Java程序员的工做2-5年成长路线能够如下方面来。
1、阅读源码
深刻的Java学习,经典源码阅读不可少。
2、分布式架构
随着业务愈来愈复杂,数据量愈来愈大,并发量愈来愈大,单体的架构模式显然再也没法对应,做为Java后端架构师,高并发+高可用+海量数据的分布式架构体系,是必不可少的。
3、性能优化
做为后端Java技术专家,解决性能问题才真正体现一个架构师的功力。只有深刻学习JVM底层原理,Mysql底层优化以及Tomcat调优,作到知其然,知其因此然。