前言php
爲什麼要寫這篇文章呢?IT行業一直是一個多金的行業,2019年依然保持着足夠的吸引力,吸引着無數的年輕人想踏入該行業。前端
做爲一名IT職場老人,常常有同窗問題,想進入該行業,該如何去作?若是你有幸是一名計科系的學生,而且在一開始就知道出來之後要作什麼,而且有重點的去學習,畢業後說不定能夠應聘一份某軟件公司的實習生的工做,今後踏入該行業。可是,這條路過於辛苦,我見過的進入該行業的人,將近有80%的人,都是經過IT培訓,通過系統和高強度的學習,才進入軟件公司,進入該行業【爲了避嫌,不聊培訓機構的事兒】。java
可是培訓機構中不一樣方向的學科,對於一個對這個行業只知其一;不知其二的人來說,選擇真是困難,老有人問我:閆哥,我選擇哪一個方向比較好?Java,UI,Python,H5,大數據,雲計算,Android,IOS,AR&VR?web
個人答案只有那麼一個--Java!數據庫
正文內容編程
本人從事軟件行業已經有十餘年了,從小兵開始,作過一線開發人員,組長,項目經理,技術經理,技術總監,自主創業過,也當過培訓講師,經歷還算豐富。這期間我是先作的Java,也搞過PHP,安卓,H5,數據庫以及大數據【自始至終,java一直都沒有丟】,對於各個學科也有必定的發言權。後端
爲何建議學習Java呢?緣由有這麼幾個,如說的不對,請見諒。服務器
1、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高手等你高薪聘請,其餘學科可能你拿着錢都找不到能夠解決問題的人!
2、Java需求大,不怕找工做
Python很火,大數據很熱,處處宣傳H5,崗位需求說話!如下數據來自於51Job,北上廣深杭五大熱門城市崗位數量!
Python數據24091個
大數據崗位30804個:
Web前端工程師崗位12680個:
Java軟件工程師崗位高達43141:
你會發現無論任什麼時候候查詢,Java的需求量一直都是最多的。
3、職業發展前景廣闊
Java工程師的需求量自誕生之日起一直保持高速的增加,真的須要這麼多軟件工程師嗎?還有同窗問,閆哥,大家十幾年前都學習Java,如今咱們還學習,怎麼競爭的過大家呢?
一、Java軟件工程師是需求量最大的工種
以一個初創團隊爲例,須要一個UI設計師,一個Web前端工程師,一個安卓開發工程師,一個IOS開發工程師,可是卻須要至少5個java工程師。爲何呢?由於前面的工做都是作一個外表,一個皮兒而已,真正讓程序運行起來是要後端開發工程師的,Java是當先後端語言的王!並且開發工做繁多,因此需求量最大,基本Web工程師和Java工程師的配比是1:5
二、如今的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是開源項目,每一個年輕人或者年輕的團隊均可覺得此貢獻高效便捷的技術,技術就這樣滾滾向前,永無止境,但人的精力是有限的,須要不斷有新人接了前輩手中的交接棒,繼續追趕新技術!
三、當技術總監的,永遠是搞後臺開發的!
工做這麼多年,也當過幾家公司的技術總監,發現一個規律,作項目經理或者技術總監的,永遠是搞後端開發的或者是寫SQL的。這個也不難理解,好比做爲一個項目的負責人,是否是應該知道每一個人都在幹什麼,評估一下他們的工做量,從而才能更好的管理項目,只有後臺開發人員知道UI,H5,安卓,IOS工程師天天都在幹嗎,難度係數怎麼樣,更能把握團隊中佔比最高的Java工程師,他們每一個人的水平,進度,從而更好的把控全局!
四、Java學科,水很深,一個學科就夠咱們玩好久
Java軟件工程師的薪水浮動比較大,新人最低的每月給個三千五千都有,高的每月給5萬6萬的也不是什麼難事兒。爲什麼中間浮動如此之大,由於會的東西不同,經驗不同,給的薪水天然不一樣!
java學科歷史悠久,長期佔據霸主地位十餘載,市面光流行的技術都不少,即便工做多年,依然以爲本身是個小白,功力深厚的大拿級人物比比皆是,讓咱們可望不可即,惟有虛心請教,默默追趕。
而其餘學科,發展時間短,也許你虛心學習幾年,也就達到了該學科的一個頂,你也許以爲這是好事兒,技術到了頂,也就意味着薪資到了頂,你花費3年功夫到了頂,後面的時光如何在這個行業繼續提高薪資呢?
4、學習路線自由切換,爲所欲爲
java語言底蘊深厚,雖有不少問題,但流行這麼多年,積聚了大量的開發人員,新的技術出現,該技術團隊爲了讓本身的框架或者技術學習起來更簡單容易,通常都會選擇使用Java語言進行開發,若是你Java Web玩的有些煩,隨時切換其餘學科,毫無壓力!
一、切換Andriod學科
之前,移動互聯網火爆的時候,移動端開發人員急缺,我在那個時候就開始自行學習Android,畢竟安卓也是用java進行開發的,我基本用了一個星期的時間,看了整個Android的全部技術點,第二週開始使用它作公司的項目,毫無壓力!
二、切換大數據學科
大數據這個名詞很熱,其實當前技術也比較成熟,我認爲大數據學科就是Java學科的一個延伸,當你作Java Web項目的時候,遇到了大數據量的存儲問題,天然會去找什麼技術可以解決,最後就找到了所謂大數據學科的一些工具或者框架,大數據中不少技術都是使用Java語言開發的,學習大數據開始也是先學習Java基礎語言,我也是工做多年後接觸大數據,並開始學習,使用,有Java基礎,上手仍是比較快的。在招聘網站常常看到一個招聘java工程師的崗位後面要求會Hadoop,Spark,Flink,Flume等大數據技術,說白了,招聘人員仍是認爲這都是java工程師的活。錢給到位,咱就學,咱就幹!
三、前端的事兒,順帶手就作了
在咱們那個時候,根本就沒有前端開發工程師,誰的功能,誰寫前端和後臺,因此每一個java web工程師,基本都會前端的開發,偶爾有幾個java Web工程師,很是癡迷頁面的展現,在團隊中就讓他們寫頁面多一些。後來界面講究的愈來愈好看,愈來愈炫酷,兼容性也考慮多了,前端的工做量就起來了,就開始單獨把這個工種給獨立出來,可是到目前爲止,一些公司仍是從不招前端,仍是Java工程師去寫頁面,並且如今的第三方頁面框架那麼多,基本作起來也好作。
四、DBA的事兒,也順帶作了吧
SQL因爲其自己技術發展緩慢,幾年前的SQL怎麼寫,如今依然怎麼寫,這個特色也吸引了很多想轉型的java工程師,自己公司中能請的起DBA的仍是比較少的,並且日常DBA工做量也不大,發着錢挺虧的,Java工程師日常也須要寫一些SQL,只須要稍加培養,基本就把數據庫這個事兒給作了,若是你哪天干累了,作個專職的DBA也不錯,工資仍是挺高的!
五、切換運維工程師
因爲java工程師常常與服務器打交道,編寫代碼,上線項目,因此Linux仍是玩的比較好的,加之當今的Java工程師都會學一些Docker,K8S等,長此以往,在企業作個專職運維人員也能夠,高級運維,工資也不低啊!
六、切換技術售前工做
若是幹了幾年,不想寫代碼了,喜歡與人交流,能夠考慮技術售前的工做,該工做確定不是一個小兵說幹就能幹的,因爲須要一出場就給對方一個沉穩,專業,老練的感受,通常不會找一個年輕人作售前,因此也爲咱們老人留下了機會,去網上查查,技術售前的工做,工資不低呦!
總結
目前互聯網概念層出不窮,開發技術和語言也是鋪天蓋地,但就目前來說,Java永遠像一棵松柏同樣,四季常青,默默成長,即便哪天它轟然倒下,由他開發出來的軟件也夠後輩的Java工程師吃上好多年【軟件須要運維,添加新需求,修改新Bug】。若是你有一個編程夢想,也想經過本身的努力,提高一下生活品質,也想長久的在編程行業中作個弄潮兒,別猶豫,選Java!