想轉行,是要入坑Python還是Java?這問題還用問?
我有一個讀者朋友問了我這麼一個問題,他說:鬼哥,我是一個大三的學生,學的是電腦科學與技術專業,不過學校教得很雜,什麼都只教一點,且什麼都不深,感覺學到了很多的東西,但又覺得什麼都沒有學到,我現在很苦惱,我想要深入一個方向來好好學習,精進自己的技術,但又不知道選擇Python還是Java,這幾年Python不是很火嗎,我想精進Python,不知道可不可以?
這個朋友碰到了一個很共性的問題,就是程式語言的選擇。我先說結論吧,後面再給出具體的分析。
雖然說Python這兩年確實師非常火爆,但如果你的學歷不是碩士以上,數學能力也一般的話,就不要選擇Python作為就業方向了。單單隻會Python這門程式語言的話是很難找到工作的。Python真的是一門非常優秀也非常優雅的語言,我個人也是非常的喜歡,你不要覺得說它比較慢,它再怎麼慢都是比你快的,你就不要操心它的速度的問題了。
Python有非常多優秀的庫可以做很多的事情,有一句話非常好的概括了它的厲害之處:除了生孩子之外,Python啥都能做。但是呢,我為什麼不推薦大家去學習Python然後去找工作呢,我們先來看看具體Python可以做啥?
除了不能生孩子之外Python主流的方向是爬蟲,人工智慧,資料分析,web後端開發,自動化運維,嵌入式開發等等6大方向。我們來一個個分析這幾個方向。
對於爬蟲,在Python流行之前,大家都是用Java來寫爬蟲的,但是Python流行之後大家都改用Python了,因為Python語法簡單,而且有很多高手寫的很好用的庫開發起來也非常簡單方便,但是呢現在各種網站的反爬機制做得非常好,爬蟲與反爬蟲之間的博弈也越來越激烈了。所以爬蟲工程師現在也是非常的不好過,而且對於爬取網站資料這種行為本來就是一種灰色地帶,就是在違法邊緣試探,這幾年也有非常多程式設計師因為寫爬蟲而被抓的新聞。所以如果你做爬蟲的話,一定要注意在法律的範圍之內進行。
對於人工智慧,自從Alpha Go之後變得越來越火熱了,但是大家肯定有所耳聞的是,想從事這方面工作的一般都需要碩士以上的學歷,為什麼有門檻的要求呢?因為做這塊的話需要有很多探索研究的事情在裡面,需要查檔案讀論文之類的,而這方面的能力一般都是在研究生階段培養的,另外做AI需要很強的數學功底,如果你的數學又不行的話,那做這一塊的工作將會非常的吃力,也非常的痛苦。雖然說從事人工智慧的待遇很高,動不動就是年薪三四十萬,但是人工智慧畢竟是一個新興的行業,現在做這一塊的公司遠不如傳統的網際網路行業公司多,就業的機會自然就會少很多。所以呢如果你的學歷一般的話,數學又不行,就不要指望做人工智慧了,很難,真的,幾乎不可能。
對於資料分析,其實說實在的,很多公司根本就沒有進行資料分析的必要,所以呢就業面也是非常的狹隘的。而且資料分析也一般都是配合人工智慧一起進行的,要求也是比較類似的,同樣要求是碩士學歷,數學比較好,所以這兩方面不行的話,我還是建議不要去折騰資料分析了。
對於web後端開發,其實大部分的後端還是用的Java來寫的,也有一部分是c++來寫的,只有極少部分是用Python寫的,印象當中經常吹的也就那麼幾個公司,比如說豆瓣,知乎,餓了麼,頭條之類的,除此之外很少很少。而且更加悲催的是現在除了知乎,其他幾家現在也慢慢的開始用golang重寫了後臺,我覺得知乎重寫也應該是個時間的問題吧。所以如果你想要做後端開發的話,建議還是乖乖的用Java吧,機會會很多很多。想用Python寫後端幾乎是很難找到工作的。
對於自動化運維,這塊確實可以使用Python來寫一些非常實用的工具,但是做自動化運維絕對不是說你會了Python就可以去做的,相反很多Python可以做的工作其實都是可以用Shell來取代的。而且Shell是Linux的親兒子,你在Linux上面無需安裝環境就可以直接的執行Shell。所以Python的優勢就更加的不突出了。但是話又說回來,Shell寫指令碼的能力肯定是大不如Python的,同樣功能的指令碼,Python可能幾句話就可以了,而Shell的話就要寫很多程式碼。所以如果為了方便的話,Python還是寫指令碼的首選。
對於嵌入式開發,用Python來寫一些指令碼來實現一些功能確實也是非常的方便,但是同樣的這並不代表說你學會了Python就能夠找到嵌入式相關的工作,實際上很多嵌入式的工作並不太需要用到Python,只需要Shell就可以了,而且你做嵌入式開發還需要懂Linux,要懂底層作業系統,每一樣需要掌握的知識量絕對都是Python的幾倍以上。
所以綜合以上幾個資料分析,不是說Python一無是處,而是覺得說對於普通程式設計師來說,特別是那種轉行過來的程式設計師,就不要考慮這方面的工作,真的不適合。那些鼓吹說培訓幾個月就可以拿到年薪多少萬的廣告,大家就千萬不要去交智商稅了。當然了,如果你的學歷還可以數學又不差的話,參加這方面的培訓還是可以找到不錯的工作的,這方面就另當別論了。
而且呢從就業的城市來看的話,一線城市跟Python相關的工作還是不少的,二線城市就會少很多,三線以後的城市幾乎就沒有了。所以如果你沒有在一二線城市的話,即使你很優秀,可能也沒有Python相關的崗位提供給你。
說到底,Python只是一門工具而已,純Python的工作幾乎沒有,上面提到的那幾個領域,每一個領域要掌握的知識點絕對都是Python的幾倍以上。只會Python的話還是洗洗回去睡吧。
其實這也很好理解,這就好比你學會用鉛筆很簡單,但是你僅僅會用鉛筆是絕對找不到素描的工作的,因為你要畫好一幅素描的話,需要懂一些素描相關的技法,而鉛筆的使用只是非常基礎的能力而已。
所以最後我還是建議我的這位讀者朋友,還是不要去學Python找工作了,趕緊來學習Java吧,機會遠遠的大於Python的。當然了,如果你後面又考研了,又去深入學習了數學,那麼果斷的去做人工智慧,機器學習或者資料分析等等新興的工作,競爭小工資又高,何樂而不為呢?
而對於其他人來講的話Python只要作為一門輔助性的語言就可以了,平常用來寫寫指令碼,跑跑測試就可以了,相信我,有Python的助攻,你對工作效率肯定會提升不少的。