Java程序员前景及优劣势分析

前景

Java程序员有着广阔的前景,从数据来看,有超过一半的公司在使用Java
Java程序员前景及优劣势分析
以上还只是互联网公司的情况,在金融,银行,保险领域,基本全部是使用的Java,比如工行,浦发,交通,上海金融期货交易所等等,广泛的使用量决定了其排名第一的岗位需求量。

岗位也是是排行第一
Java程序员前景及优劣势分析

根据TIOBE的编程语言排行榜,排名第一
Java程序员前景及优劣势分析

工资收入也比较高
Java程序员前景及优劣势分析

职责

Java主要用于后端服务器开发以及Android开发,需要非常全面的技术栈,单论Java语言本身来说可能3个月就够了,但是加上各种框架,比如spring boot, spring web, mybatis等等,以及包括安全控制,认证鉴权,参数校验,数据库特性,数据库优化,网络请求,服务器部署,依赖管理,版本管理。 乃至到目前流行的分布式架构,注册中心,配置中心,服务间访问,链路容错,MQ,全链路监控,JVM调优,线上问题排查等等,可以说是要求最全面,难度最大的一个职业,以上还仅仅是技术方面要求,这些只是职位的基本要求,只占50%。

还有一半是你对业务的了解,这一部分甚至更为重要。比如做电商的要去了解电商,做外卖的要了解外卖,做教育的要了解教育。技术是为业务服务的,业务都没了,技术就没有存在的必要了。因此你还得不断去研究目前业务是怎么样的,未来如何规划,怎么样才是最好,一个好的开发是半个产品经理,而且会比产品经理考虑的更细。

发展方向

1 项目经理
当你度过了小白阶段,会有几个分支选择,其中一个就是项目经理,你需要作为项目的总负责人带领团队,专注于交付。比如产品经理做了一个需求,你就是负责实现这个需求的人,你需要和产品经理澄清这个需求,哪些该做哪些是做不了,制定工作计划,每天跟踪开发进度,跨部门协调处理上下游系统问题,生产问题要能排查,开发结束后还要协调测试进行测试,协调运维人员上线,最终完成上线任务。相当于一个系统owner,出了问题都是你责任,可以比喻成带兵打仗的一线指战员,带队伍,打硬仗。

2 架构师
如果专注于技术路线,那下一个阶段就是架构师了,要求技术上十分精通,能解决几乎所有的技术问题,不管是后端,或者是前端,数据库。你需要完成技术选型(是用cloud还是dubbo,Rabbit还是Rocket),数据库选型(MySQL还是TiDB),系统规划(未来要做啥),业务边界划分:功能做到在哪个系统,通常这是最困难的一部分,部门之间归属撕逼现象严重,功能有些想做(抢地盘),有些不想做(甩锅),大家都是聪明人,理由也五花八门,有时候你都搞不清楚是真不知道还是假不知道,需要特别考验智商和情商了。需要搞清楚对方的真实想法,尽量达成一致,能坚持的必须坚持,要妥协的就认怂,所以不仅需要高智商,也需要高情商。

3 产品经理
产品经理就不属于技术线了,程序员出身的产品经理不占少数,比如最著名的产品经理张小龙。产品经理需要前端对业务/用户非常熟悉,也需要知道系统边界在哪里,哪些能做,哪些不能做,而程序员出身的技术背景无疑会有很大的帮助。

优势

潜力巨大。CTO一般会从架构师中出,后端业务逻辑多,是与业务部门,与需求连接最为紧密的一个部门,能够接触到核心业务,而业务才是公司真正的利益所在,因此对于个人成长比较有帮助。

劣势

入行难,门槛高。后端应该是门槛最高的一个岗位,所谓的Java程序员不单单是Java一门语言而已,还涉及到数据库,网络,操作系统,分布式等一系列知识。不仅入门困难,还需要不断挑战自我,去自我驱动学习,对于人才的基本要求会比较高。