您的位置:首页 > 职场人生

2016版的java程序员发展方向建议

2016-12-07 10:09 316 查看
2016版的java程序员发展方向建议

说实话,对于开发应用层面的java程序员来说,我觉得最近几年真的没有什么新的java技术亮点出现。spring还是spring,mybatis还是mybatis,hibernate、struts2也是一样,java的新技术框架主要是集中在了分布式和大数据处理上。于是对一个刚入门的java新人来说,看三五年前的java学习路线建议也完全不会落伍。

做为目前最全面实用的后端应用开发语言,java值得每个新人用两年时间踏实地把自己的代码质量提高上去。简单来说就是,代码写给人看,比写给机器看更重要,要像写作一样组织好代码的表达,尤其是在业务逻辑复杂的情况下。之后,才是学新技术,寻找新的发展方向。

而工作数年,已经crud滚瓜烂熟,一般业务需求也没什么压力的java码农,现在有了不同的进取选择,我大致总结一下:

1、技术型架构师

这是传统的架构师,你得是一个技术狂人,愿意去钻研java的深层知识,对各类系统运行时的高大上的中间件和框架有深入研究,明白其原理,能实际操作运用。这是一条更需要忘我投入的路线,能让你直达一线大企的架构师岗位,就是那种年薪三五十万,加班加到顾不上家的工作。

这是传统意义上的技术牛人,适合去大型互联网企业,银行等一些垄断行业大型国企,或者在某个专业领域有高要求的公司。这样的人除了最顶尖的若干,在企业里很少会有高存在感,更多是做为一个工资高,露面少,默默支撑企业的神秘人物存在,他所做的东西外人看不懂。

除了那些开发中要用到的分布式技术、缓存、队列、服务治理,很大程度上技术型架构师还要掌握许多运维和系统层面的技术,你要把各种各样的软件在服务器上布署调优,确保稳定,还要考虑到大规模集群的自动化管理,持续集成,容灾,或许还要深入到虚拟化技术,docker等。技术要连贯,从开发到测试到上线后的高可用,你都要负责。

而最后做为一个架构师,你还不能不考虑业务,正所谓脱离业务谈架构都是耍流记氓。

2、业务型架构师

这个岗位向产品经理方向在靠近,要去倾听使用者的想法,去合理地给出技术解决方案,做出更具可用性,体验更好的应用。尤其要关注在需求转换成代码实现过程中的合理性,业务领域建模,代码分层和解耦是重中之重,还有数据库的表设计也是重点,你写不出好的分布式框架,但不能不懂分布式数据库下的表设计原则。

之后就是考虑技术在团队中的学习成本,推广成效,分工协作。

虽然带着架构师的名头,但是相对技术深度的要求相较于传统意义上的JAVA架构师已经大大降低,因为这几年各种公有云技术已经异军突起,例如阿里云,每个月花几千块钱所能提供的便捷、性能、安全、扩展能力,远远超过了一个企业花个几十上百万的软硬件和运维人力成本去搭建的高可用服务器,更何况多数企业根本不可能在运维上花那么多钱,很多企业只是java程序员兼着去管服务器,然后几个网管配置好网络和系统罢了。公有云还可以为你提供集群容器,分布式数据库,缓存,MQ,搜索,日志等等开发中会用到的中间件和各类服务,大大降低了技术使用门槛,几乎封死了中小企业自建服务器的念头。

所以我建议,如果在运维上没有数百万级的投入,超高的千万级用户量,或者需求甲方强制要求,业务型架构师可以将对底层技术研究的精力抽到产品方向,对于底层技术,只要掌握其使用原则和理解衡量的能力即可,这样的你能在大多数中小企业中爆发更大的价值,跟对了人就能创业有成。

3、高大上技术方向

这是一个比架构师又更钻入到专业领域的方向,比如大数据处理、人工智能等。技术型架构师大致上还是为了常规业务服务的,多数需求来源于直接响应终端用户的操作,但这个方向则是要在用户所不能觉察的地方,去做技术的主动产出。比如那些垃圾网站上无所不见的推荐类广告,背后可隐藏着大量的行为分析和数据处理算法。

朝这个方向发展的人就业方向与技术型架构师是相似的,只是会更专注专长而不是全能。如果你有名校高学历在这个领域会更有帮助,有工作经验的人往往会胜在业务、管理、运营等非技术层面技能,而这个离常规业务更远的方向,自然给了闭门研究的人缩小工作经验差距的机会。技术宅、理工男不妨考虑这个方向。

4、全栈工程师

严格来说,纯粹的java程序员是成不了全栈工程师的,不过,写java web的人,一般都会点javascript,这就成了一个java程序员迈向全践的突破口。

虽然全栈工程师有着许多不同的解读,但我们可以把它简单理解为能开发在各种客户端上运行的应用,前后端开发包办的程序员。

javascript这两年大出风头啊,nodejs,react,angularjs等,以及许多其它框架和库,就跟java领域mvc大热,框架百花齐放的年代一般,正处于百家争鸣的时代。现在js可以用于开发android,ios原生应用,html5 web应用,node.js服务端应用,还有在游戏引擎中可以用它来开发跨平台的游戏。

要不是它的语法对正统的面向对象语言程序员来说颇显另类,恐怕会更加势不可挡,而如今es6规范的正式登场,也在让js的语法更像java,再加上一些如TypeScript这样的扩展技术,类、继承、接口、注解等都已经能在js上实现,前景确是一片光明。相对来说,服务端开发中js的优势的确不多,算是它的短板之一,而前端开发则是js强势,身为java程序员,正好弥补了这个短板,如果精通了js,更算得上是全栈程序员了。

全栈程序员是什么公司都能去的,小公司里你是万金油甚至技术领袖,大公司里你依托突出的技能主职,再借助你的全能可以为你的晋升占到优势。

全栈工程师相对业务型架构师要更偏向前端,对于应用实现更接地气。

5 安卓程序员

说实话,我认为这个路线不如以js切入前端,局限性毕竟太高,又有html5的虎视眈眈,长远来看受限于安卓平台,转型安卓应该算是一种中短期的风险投资,能保你几年,也能让当前薪水更上一个台阶,但终究现在转职加入已经失去先机了,如房价翻了几翻才咬牙加入炒房大军,风险未知。

就我个人来说,我的路线是从业务型架构师正转向全栈工程师,我喜欢讲求效率和性价比,这两个方向对我来说相当贴合二八原则,用20%的深度广泛涉猎,能达成众多80%的成就。说难听点,应该叫对技术的懒惰和喜新厌旧吧。

技术大牛这类称呼我认为技术型架构师和高大上方向的程序员更配得上。我觉得现在三十五岁才是现在技术市场上真正的分水岭,不是三十。如果要迈过35的槛,以上几个方向是java程序员的基本出路(转职做纯管理、产品经理、移动开发等不算在内),当然转型要尽早,javaee基础打牢,然后尽可能在工作5年后进入其中一个方向的岗位,是当前技术人员长远可期的好选择。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  程序员