前言
為何要寫這篇文章呢?IT行業(yè)一直是一個多金的行業(yè),2019年依然保持著足夠的吸引力,吸引著無數(shù)的年輕人想踏入該行業(yè)。
作為一名IT職場老人,經(jīng)常有同學問題,想進入該行業(yè),該如何去做?如果你有幸是一名計科系的學生,并且在一開始就知道出來以后要做什么,并且有重點的去學習,畢業(yè)后說不定可以應聘一份某軟件公司的實習生的工作,從此踏入該行業(yè)。但是,這條路過于辛苦,我見過的進入該行業(yè)的人,將近有80%的人,都是通過IT培訓,經(jīng)過系統(tǒng)和高強度的學習,才進入軟件公司,進入該行業(yè)。
但是培訓機構(gòu)中不同方向的學科,對于一個對這個行業(yè)一知半解的人來講,選擇真是困難,老有人問我:我選擇哪個方向比較好?Java,UI,Python,H5,大數(shù)據(jù),云計算,Android,IOS,AR&VR?
我的答案只有那么一個--Java!
正文內(nèi)容
本人從事軟件行業(yè)已經(jīng)有十余年了,從小兵開始,做過一線開發(fā)人員,組長,項目經(jīng)理,技術(shù)經(jīng)理,技術(shù)總監(jiān),自主創(chuàng)業(yè)過,也當過培訓講師,經(jīng)歷還算豐富。這期間我是先做的Java,也搞過PHP,安卓,H5,數(shù)據(jù)庫以及大數(shù)據(jù)【自始至終,java一直都沒有丟】,對于各個學科也有一定的發(fā)言權(quán)。
為什么建議學習Java呢?原因有這么幾個,如說的不對,請見諒。
一、Java語言優(yōu)勢明顯
如果你只是一個小白,想學一門編程語言,那么推薦學習Python,因為全球都公認,Python是最適合入門的語言,很多國家的中小學少兒編程使用的都是Python,我也用Python做過項目,確實該語言簡單易懂,很是好用,但你如果不是為了學習玩玩,而是為了通過編程找一份工作,那還是Java吧。很多人都說Java火,是因為簡單,跨平臺,各種軟件都能開發(fā),我不能說不對,只能說幾年前這么說,這話沒毛病,現(xiàn)在再這么說,只能說有點扯。
看一下2019年7月份的編程語言TOP20排行榜:
這個榜單我看了十幾年,幾乎每次看,Java一直在NO.1的位置,無人撼動!看著其他語言起起伏伏,Java和C/C++猶如兩位智者看著后面的年輕人打打殺殺,甚是熱鬧!
Java從語法設(shè)計來講,不是很優(yōu)秀,PHP號稱史上最優(yōu)秀的語言,Python號稱人工智能第一語言,C#一直是桌面之王,Scala語言是Java語言的升級版,谷歌的GO語言如日中天,一騎絕塵...... ,從Java的學習難度來講,框架之多,配置繁瑣,臃腫,猶如一個肥頭大耳的大胖子。
那Java到底好在哪兒?概括一句話:功力深厚,無人撼動!
Java誕生于互聯(lián)網(wǎng)蓬勃發(fā)展的時期,那時C語言一家獨大,稱霸武林,Java憑借語法優(yōu)勢以及自帶虛擬機【一處編譯,處處運行】占據(jù)一席之地,后來就一直穩(wěn)坐老大的位置,各個公司只要是做大型的應用都紛紛選擇Java。
阿里巴巴,現(xiàn)在在國內(nèi)幾乎是Java開發(fā)人員的光明頂,幾乎所有技術(shù)都是Java,但淘寶網(wǎng)前期可是用的php,請國際頂尖Java團隊SUN公司的人修改成了Java。
國內(nèi)第二電商巨頭:京東,早起用的是.net框架,但后來也是用的Java,舉個小例子:在2011年11月1日京東商城的圖書促銷活動中,由于促銷活動僅限時 1個小時,消費者瘋狂搶購導致服務器不堪重負,最終癱瘓。為平息消費者的抱怨,劉強東在微博上表示:“重搞活動,增加3倍服務器,活動時間不能低于3小時。”盡管劉強東的危機公關(guān)做得很到位,即使京東商城增加了三倍服務器,技術(shù)問題依舊沒有解決。 后來,強哥痛下決心,對整個京東進行一次徹底的技術(shù)轉(zhuǎn)型,選擇了Java。
在國內(nèi)最具代表性的兩大電商巨頭都使用的是Java,后來的互聯(lián)網(wǎng)項目,基本都不怎么考慮其他語言了,紛紛投入Java的懷抱。在傳統(tǒng)應用軟件領(lǐng)域,比如稅務系統(tǒng),公安系統(tǒng),銀行系統(tǒng),毫無例外,都是使用Java開發(fā)的。
為什么是Java,Java不那么優(yōu)秀,為什么要選擇它呢?還是一句話--語言優(yōu)不優(yōu)秀,不看什么語法設(shè)計,而要看生態(tài),它帶來的整個生態(tài)體系!
舉個例子:你們公司用的是PHP開發(fā)的一個應用平臺,突然你們公司的這個平臺頻頻出問題,可能是用戶越來越多,導致并發(fā)量越來越大,或者數(shù)據(jù)量越來越大,老板就說:咱公司才多少數(shù)據(jù)量啊,你看人家阿里是怎么解決的,京東是怎么解決的,不會學習一下嗎?!這個時候你欲哭無淚,對老板說:我當然知道他們是怎么解決的,他們使用的那些技術(shù)是Java語言開發(fā)的,咱用不了啊!老板心里想:是啊,這也用不了,那也用不了,難道讓公司的開發(fā)人員使用PHP開發(fā)一個,算了吧,這比登天還難!項目達到一定的峰值,其他語言開發(fā)出來的項目都變成了玩具!
因為Java是開源的,而且歷史悠久,使用java語言開發(fā)出來的各種高性能的開源軟件數(shù)不勝數(shù),使用Java語言提供的各種高難度問題的解決方案不勝枚舉,使用Java,就意味著你們公司可以在最短的時間里開發(fā)出來高性能的應用平臺,即使將來技術(shù)遇到瓶頸,大量的java高手等你高薪聘請,其他學科可能你拿著錢都找不到可以解決問題的人!
二、Java需求大,不怕找工作
Python很火,大數(shù)據(jù)很熱,到處宣傳H5,崗位需求說話!以下數(shù)據(jù)來自于51Job,北上廣深杭五大熱門城市崗位數(shù)量!
Python數(shù)據(jù)24091個:
大數(shù)據(jù)崗位30804個:
Web前端工程師崗位12680個:
Java軟件工程師崗位高達43141:
你會發(fā)現(xiàn)不管任何時候查詢,Java的需求量一直都是最多的。
三、職業(yè)發(fā)展前景廣闊
Java工程師的需求量自誕生之日起一直保持高速的增長,真的需要這么多軟件工程師嗎?還有同學問,閆哥,你們十幾年前都學習Java,現(xiàn)在我們還學習,怎么競爭的過你們呢?
1、Java軟件工程師是需求量最大的工種
以一個初創(chuàng)團隊為例,需要一個UI設(shè)計師,一個Web前端工程師,一個安卓開發(fā)工程師,一個IOS開發(fā)工程師,但是卻需要至少5個java工程師。為什么呢?因為前面的工作都是做一個外表,一個皮兒而已,真正讓程序運行起來是要后端開發(fā)工程師的,Java是當前后端語言的王!而且開發(fā)工作繁多,所以需求量最大,基本W(wǎng)eb工程師和Java工程師的配比是1:5
2、現(xiàn)在的Java已經(jīng)不在是當初的Java
之前我們那個時代,幾個JSP頁面就可以寫個項目,會SSH走路都目中無人,Spring還正慢慢革著EJB的命,整個行業(yè)都處于一個懵懵懂懂的混沌狀態(tài)。
技術(shù)不斷突飛猛進,老人要么都轉(zhuǎn)入管理崗位,要么早就失去了昨日的奮發(fā)圖強,守著老舊技術(shù)安穩(wěn)度日?,F(xiàn)在你們應該作為一個新派的Java工程師出現(xiàn),為各個軟件公司注入新鮮血液。經(jīng)常看到一個新人,什么都想學,看見一個Java技術(shù)的名詞都趕緊看看,怕到時候公司用,而自己不會,其實大可不必這樣。你們是新人,是公司中新的血液,應該為公司帶來更新更高效的技術(shù),不應該陷入陳舊的Java技術(shù)的泥潭中。比如,老人喜歡用Eclipse,新人用IDEA,老人喜歡用SVN,新人用Git,老人喜歡JSP,新人用VUE,老人用SSH或者SSM,新人用SpringBoot,老人用Dubbo搭建分布式,新人用Spring Cloud或者 Spring Cloud Alibaba......
Java是開源項目,每個年輕人或者年輕的團隊都可以為此貢獻高效便捷的技術(shù),技術(shù)就這樣滾滾向前,永無止境,但人的精力是有限的,需要不斷有新人接了前輩手中的交接棒,繼續(xù)追趕新技術(shù)!
3、當技術(shù)總監(jiān)的,永遠是搞后臺開發(fā)的!
工作這么多年,也當過幾家公司的技術(shù)總監(jiān),發(fā)現(xiàn)一個規(guī)律,做項目經(jīng)理或者技術(shù)總監(jiān)的,永遠是搞后端開發(fā)的或者是寫SQL的。這個也不難理解,比如作為一個項目的負責人,是不是應該知道每個人都在干什么,評估一下他們的工作量,從而才能更好的管理項目,只有后臺開發(fā)人員知道UI,H5,安卓,IOS工程師每天都在干嘛,難度系數(shù)怎么樣,更能把握團隊中占比最高的Java工程師,他們每個人的水平,進度,從而更好的把控全局!
4、Java學科,水很深,一個學科就夠我們玩很久
Java軟件工程師的薪水浮動比較大,新人最低的每個月給個三千五千都有,高的每個月給5萬6萬的也不是什么難事兒。為何中間浮動如此之大,因為會的東西不一樣,經(jīng)驗不一樣,給的薪水自然不同!
java學科歷史悠久,長期占據(jù)霸主地位十余載,市面光流行的技術(shù)都很多,即使工作多年,依然覺得自己是個小白,功力深厚的大拿級人物比比皆是,讓我們望塵莫及,唯有虛心請教,默默追趕。
而其他學科,發(fā)展時間短,也許你虛心學習幾年,也就達到了該學科的一個頂,你也許覺得這是好事兒,技術(shù)到了頂,也就意味著薪資到了頂,你花費3年功夫到了頂,后面的時光如何在這個行業(yè)繼續(xù)提升薪資呢?
四、學習路線自由切換,隨心所欲
java語言底蘊深厚,雖有很多問題,但流行這么多年,積聚了大量的開發(fā)人員,新的技術(shù)出現(xiàn),該技術(shù)團隊為了讓自己的框架或者技術(shù)學習起來更簡單容易,一般都會選擇使用Java語言進行開發(fā),如果你Java Web玩的有些煩,隨時切換其他學科,毫無壓力!
1、切換Andriod學科
以前,移動互聯(lián)網(wǎng)火爆的時候,移動端開發(fā)人員急缺,我在那個時候就開始自行學習Android,畢竟安卓也是用java進行開發(fā)的,我基本用了一個星期的時間,看了整個Android的所有技術(shù)點,第二周開始使用它做公司的項目,毫無壓力!
2、切換大數(shù)據(jù)學科
大數(shù)據(jù)這個名詞很熱,其實當前技術(shù)也比較成熟,我認為大數(shù)據(jù)學科就是Java學科的一個延伸,當你做Java Web項目的時候,遇到了大數(shù)據(jù)量的存儲問題,自然會去找什么技術(shù)能夠解決,最后就找到了所謂大數(shù)據(jù)學科的一些工具或者框架,大數(shù)據(jù)中很多技術(shù)都是使用Java語言開發(fā)的,學習大數(shù)據(jù)開始也是先學習Java基礎(chǔ)語言,我也是工作多年后接觸大數(shù)據(jù),并開始學習,使用,有Java基礎(chǔ),上手還是比較快的。在招聘網(wǎng)站經(jīng)常看到一個招聘java工程師的崗位后面要求會Hadoop,Spark,Flink,Flume等大數(shù)據(jù)技術(shù),說白了,招聘人員還是認為這都是java工程師的活。錢給到位,咱就學,咱就干!
3、前端的事兒,順帶手就做了
在我們那個時候,根本就沒有前端開發(fā)工程師,誰的功能,誰寫前端和后臺,所以每個java web工程師,基本都會前端的開發(fā),偶爾有幾個java Web工程師,非常癡迷頁面的展示,在團隊中就讓他們寫頁面多一些。后來界面講究的越來越好看,越來越炫酷,兼容性也考慮多了,前端的工作量就起來了,就開始單獨把這個工種給獨立出來,但是到目前為止,一些公司還是從不招前端,還是Java工程師去寫頁面,而且現(xiàn)在的第三方頁面框架那么多,基本做起來也好做。
4、DBA的事兒,也順帶做了吧
SQL由于其本身技術(shù)發(fā)展緩慢,幾年前的SQL怎么寫,現(xiàn)在依然怎么寫,這個特點也吸引了不少想轉(zhuǎn)型的java工程師,本身公司中能請的起DBA的還是比較少的,而且平常DBA工作量也不大,發(fā)著錢挺虧的,Java工程師平常也需要寫一些SQL,只需要稍加培養(yǎng),基本就把數(shù)據(jù)庫這個事兒給做了,如果你哪天干累了,做個專職的DBA也不錯,工資還是挺高的!
5、切換運維工程師
由于java工程師經(jīng)常與服務器打交道,編寫代碼,上線項目,所以Linux還是玩的比較好的,加之當今的Java工程師都會學一些Docker,K8S等,久而久之,在企業(yè)做個專職運維人員也可以,高級運維,工資也不低啊!
6、切換技術(shù)售前工作
如果干了幾年,不想寫代碼了,喜歡與人交流,可以考慮技術(shù)售前的工作,該工作肯定不是一個小兵說干就能干的,由于需要一出場就給對方一個沉穩(wěn),專業(yè),老練的感覺,一般不會找一個年輕人做售前,所以也為我們老人留下了機會,去網(wǎng)上查查,技術(shù)售前的工作,工資不低呦!
總結(jié)
目前互聯(lián)網(wǎng)概念層出不窮,開發(fā)技術(shù)和語言也是鋪天蓋地,但就目前來講,Java永遠像一棵松柏一樣,四季常青,默默成長,即使哪天它轟然倒下,由他開發(fā)出來的軟件也夠后輩的Java工程師吃上好多年【軟件需要運維,添加新需求,修改新Bug】。如果你有一個編程夢想,也想通過自己的努力,提升一下生活品質(zhì),也想長久的在編程行業(yè)中做個弄潮兒,別猶豫,選Java!