前言
为何要写这篇文章呢?IT行业一直是一个多金的行业,2019年依然保持着足够的吸引力,吸引着无数的年轻人想踏入该行业。
作为一名IT职场老人,经常有同学问题,想进入该行业,该如何去做?如果你有幸是一名计科系的学生,并且在一开始就知道出来以后要做什么,并且有重点的去学习,毕业后说不定可以应聘一份某软件公司的实习生的工作,从此踏入该行业。但是,这条路过于辛苦,我见过的进入该行业的人,将近有80%的人,都是通过IT培训,经过系统和高强度的学习,才进入软件公司,进入该行业【为了避嫌,不聊培训机构的事儿】。
但是培训机构中不同方向的学科,对于一个对这个行业一知半解的人来讲,选择真是困难,老有人问我:闫哥,我选择哪个方向比较好?Java,UI,Python,H5,大数据,云计算,Android,IOS,AR&VR?
我的答案只有那么一个--Java!
正文内容
本人从事软件行业已经有十余年了,从小兵开始,做过一线开发人员,组长,项目经理,技术经理,技术总监,自主创业过,也当过培训讲师,经历还算丰富。这期间我是先做的Java,也搞过PHP,安卓,H5,数据库以及大数据【自始至终,java一直都没有丢】,对于各个学科也有一定的发言权。
为什么建议学习Java呢?原因有这么几个,如说的不对,请见谅。
一、Java语言优势明显
如果你只是一个小白,想学一门编程语言,那么推荐学习Python,因为全球都公认,Python是最适合入门的语言,很多国家的中小学少儿编程使用的都是Python,我也用Python做过项目,确实该语言简单易懂,很是好用,但你如果不是为了学习玩玩,而是为了通过编程找一份工作,那还是Java吧。很多人都说Java火,是因为简单,跨平台,各种软件都能开发,我不能说不对,只能说几年前这么说,这话没毛病,现在再这么说,只能说有点扯。
看一下2019年7月份的编程语言TOP20排行榜:
这个榜单我看了十几年,几乎每次看,Java一直在NO.1的位置,无人撼动!看着其他语言起起伏伏,Java和C/C++犹如两位智者看着后面的年轻人打打杀杀,甚是热闹!
Java从语法设计来讲,不是很优秀,PHP号称史上最优秀的语言,Python号称人工智能第一语言,C#一直是桌面之王,Scala语言是Java语言的升级版,谷歌的GO语言如日中天,一骑绝尘...... ,从Java的学习难度来讲,框架之多,配置繁琐,臃肿,犹如一个肥头大耳的大胖子。
那Java到底好在哪儿?概括一句话:功力深厚,无人撼动!
Java诞生于互联网蓬勃发展的时期,那时C语言一家独大,称霸武林,Java凭借语法优势以及自带虚拟机【一处编 译,处处运行】占据一席之地,后来就一直稳坐老大的位置,各个公司只要是做大型的应用都纷纷选择Java。
阿里巴巴,现在在国内几乎是Java开发人员的光明顶,几乎所有技术都是Java,但淘宝网前期可是用的php,请国际顶尖Java团队SUN公司的人修改成了Java。
国内第二电商巨头:京东,早起用的是.net框架,但后来也是用的Java,举个小例子:在2011年11月1日京东商城的图书促销活动中,由于促销活动仅限时 1个小时,消费者疯狂抢购导致服务器不堪重负,最终瘫痪。为平息消费者的抱怨,刘强东在微博上表示:“重搞活动,增加3倍服务器,活动时间不能低于3小时。”尽管刘强东的危机公关做得很到位,即使京东商城增加了三倍服务器,技术问题依旧没有解决。 后来,强哥痛下决心,对整个京东进行一次彻底的技术转型,选择了Java。
在国内最具代表性的两大电商巨头都使用的是Java,后来的互联网项目,基本都不怎么考虑其他语言了,纷纷投入Java的怀抱。在传统应用软件领域,比如税务系统,公安系统,银行系统,毫无例外,都是使用Java开发的。
为什么是Java,Java不那么优秀,为什么要选择它呢?还是一句话--语言优不优秀,不看什么语法设计,而要看生态,它带来的整个生态体系!
举个例子:你们公司用的是PHP开发的一个应用平台,突然你们公司的这个平台频频出问题,可能是用户越来越多,导致并发量越来越大,或者数据量越来越大,老板就说:咱公司才多少数据量啊,你看人家阿里是怎么解决的,京东是怎么解决的,不会学习一下吗?!这个时候你欲哭无泪,对老板说:我当然知道他们是怎么解决的,他们使用的那些技术是Java语言开发的,咱用不了啊!老板心里想:是啊,这也用不了,那也用不了,难道让公司的开发人员使用PHP开发一个,算了吧,这比登天还难!项目达到一定的峰值,其他语言开发出来的项目都变成了玩具!
因为Java是开源的,而且历史悠久,使用java语言开发出来的各种高性能的开源软件数不胜数,使用Java语言提供的各种高难度问题的解决方案不胜枚举,使用Java,就意味着你们公司可以在最短的时间里开发出来高性能的应用平台,即使将来技术遇到瓶颈,大量的java高手等你高薪聘请,其他学科可能你拿着钱都找不到可以解决问题的人!
二、Java需求大,不怕找工作
Python很火,大数据很热,到处宣传H5,岗位需求说话!以下数据来自于51Job,北上广深杭五大热门城市岗位数量!
Python数据24091个
大数据岗位30804个:
Web前端工程师岗位12680个:
Java软件工程师岗位高达43141:
你会发现不管任何时候查询,Java的需求量一直都是最多的。
三、职业发展前景广阔
Java工程师的需求量自诞生之日起一直保持高速的增长,真的需要这么多软件工程师吗?还有同学问,闫哥,你们十几年前都学习Java,现在我们还学习,怎么竞争的过你们呢?
1、Java软件工程师是需求量最大的工种
以一个初创团队为例,需要一个UI设计师,一个Web前端工程师,一个安卓开发工程师,一个IOS开发工程师,但是却需要至少5个java工程师。为什么呢?因为前面的工作都是做一个外表,一个皮儿而已,真正让程序运行起来是要后端开发工程师的,Java是当前后端语言的王!而且开发工作繁多,所以需求量最大,基本Web工程师和Java工程师的配比是1:5
2、现在的Java已经不在是当初的Java
之前我们那个时代,几个JSP页面就可以写个项目,会SSH走路都目中无人,Spring还正慢慢革着EJB的命,整个行业都处于一个懵懵懂懂的混沌状态。
技术不断突飞猛进,老人要么都转入管理岗位,要么早就失去了昨日的奋发图强,守着老旧技术安稳度日。现在你们应该作为一个新派的Java工程师出现,为各个软件公司注入新鲜血液。经常看到一个新人,什么都想学,看见一个Java技术的名词都赶紧看看,怕到时候公司用,而自己不会,其实大可不必这样。你们是新人,是公司中新的血液,应该为公司带来更新更高效的技术,不应该陷入陈旧的Java技术的泥潭中。比如,老人喜欢用Eclipse,新人用IDEA,老人喜欢用SVN,新人用Git,老人喜欢JSP,新人用VUE,老人用SSH或者SSM,新人用SpringBoot,老人用Dubbo搭建分布式,新人用Spring Cloud或者 Spring Cloud Alibaba......
Java是开源项目,每个年轻人或者年轻的团队都可以为此贡献高效便捷的技术,技术就这样滚滚向前,永无止境,但人的精力是有限的,需要不断有新人接了前辈手中的交接棒,继续追赶新技术!
3、当技术总监的,永远是搞后台开发的!
工作这么多年,也当过几家公司的技术总监,发现一个规律,做项目经理或者技术总监的,永远是搞后端开发的或者是写SQL的。这个也不难理解,比如作为一个项目的负责人,是不是应该知道每个人都在干什么,评估一下他们的工作量,从而才能更好的管理项目,只有后台开发人员知道UI,H5,安卓,IOS工程师每天都在干嘛,难度系数怎么样,更能把握团队中占比最高的Java工程师,他们每个人的水平,进度,从而更好的把控全局!
4、Java学科,水很深,一个学科就够我们玩很久
Java软件工程师的薪水浮动比较大,新人最低的每个月给个三千五千都有,高的每个月给5万6万的也不是什么难事儿。为何中间浮动如此之大,因为会的东西不一样,经验不一样,给的薪水自然不同!
java学科历史悠久,长期占据霸主地位十余载,市面光流行的技术都很多,即使工作多年,依然觉得自己是个小白,功力深厚的大拿级人物比比皆是,让我们望尘莫及,唯有虚心请教,默默追赶。
而其他学科,发展时间短,也许你虚心学习几年,也就达到了该学科的一个顶,你也许觉得这是好事儿,技术到了顶,也就意味着薪资到了顶,你花费3年功夫到了顶,后面的时光如何在这个行业继续提升薪资呢?
四、学习路线自由切换,随心所欲
java语言底蕴深厚,虽有很多问题,但流行这么多年,积聚了大量的开发人员,新的技术出现,该技术团队为了让自己的框架或者技术学习起来更简单容易,一般都会选择使用Java语言进行开发,如果你Java Web玩的有些烦,随时切换其他学科,毫无压力!
1、切换Andriod学科
以前,移动互联网火爆的时候,移动端开发人员急缺,我在那个时候就开始自行学习Android,毕竟安卓也是用java进行开发的,我基本用了一个星期的时间,看了整个Android的所有技术点,第二周开始使用它做公司的项目,毫无压力!
2、切换大数据学科
大数据这个名词很热,其实当前技术也比较成熟,我认为大数据学科就是Java学科的一个延伸,当你做Java Web项目的时候,遇到了大数据量的存储问题,自然会去找什么技术能够解决,最后就找到了所谓大数据学科的一些工具或者框架,大数据中很多技术都是使用Java语言开发的,学习大数据开始也是先学习Java基础语言,我也是工作多年后接触大数据,并开始学习,使用,有Java基础,上手还是比较快的。在招聘网站经常看到一个招聘java工程师的岗位后面要求会Hadoop,Spark,Flink,Flume等大数据技术,说白了,招聘人员还是认为这都是java工程师的活。钱给到位,咱就学,咱就干!
3、前端的事儿,顺带手就做了
在我们那个时候,根本就没有前端开发工程师,谁的功能,谁写前端和后台,所以每个java web工程师,基本都会前端的开发,偶尔有几个java Web工程师,非常痴迷页面的展示,在团队中就让他们写页面多一些。后来界面讲究的越来越好看,越来越炫酷,兼容性也考虑多了,前端的工作量就起来了,就开始单独把这个工种给独立出来,但是到目前为止,一些公司还是从不招前端,还是Java工程师去写页面,而且现在的第三方页面框架那么多,基本做起来也好做。
4、DBA的事儿,也顺带做了吧
SQL由于其本身技术发展缓慢,几年前的SQL怎么写,现在依然怎么写,这个特点也吸引了不少想转型的java工程师,本身公司中能请的起DBA的还是比较少的,而且平常DBA工作量也不大,发着钱挺亏的,Java工程师平常也需要写一些SQL,只需要稍加培养,基本就把数据库这个事儿给做了,如果你哪天干累了,做个专职的DBA也不错,工资还是挺高的!
5、切换运维工程师
由于java工程师经常与服务器打交道,编写代码,上线项目,所以Linux还是玩的比较好的,加之当今的Java工程师都会学一些Docker,K8S等,久而久之,在企业做个专职运维人员也可以,高级运维,工资也不低啊!
6、切换技术售前工作
如果干了几年,不想写代码了,喜欢与人交流,可以考虑技术售前的工作,该工作肯定不是一个小兵说干就能干的,由于需要一出场就给对方一个沉稳,专业,老练的感觉,一般不会找一个年轻人做售前,所以也为我们老人留下了机会,去网上查查,技术售前的工作,工资不低呦!
总结
目前互联网概念层出不穷,开发技术和语言也是铺天盖地,但就目前来讲,Java永远像一棵松柏一样,四季常青,默默成长,即使哪天它轰然倒下,由他开发出来的软件也够后辈的Java工程师吃上好多年【软件需要运维,添加新需求,修改新Bug】。如果你有一个编程梦想,也想通过自己的努力,提升一下生活品质,也想长久的在编程行业中做个弄潮儿,别犹豫,选Java!