為什麼我不建議你通過 Python 去找工作?
二哥,你好,我是一名大專生,學校把 Python 做為主語言教給我們,但是我也去了解過,其實 Python 門檻挺高的,所以我在自學 Java,但是我現在並不清楚到底要不要全心的去學 Java,學校裡的課程也越來越繁重,而學 Java 又會要投入很多精力,我很糾結疑惑。希望二哥可以給一點建議。二哥看到的話還望百忙之中抽一點時間。感謝!
這是讀者“前進一點”在微信上問我的一個問題,我當時給他的回覆是“Python 挺火的,學 Python 就好。”但當我在 B 站上看了羊哥的一期視訊後,深感懊悔,覺得自己給出的建議是不負責任的。
意識到自己的問題之後,我就趕緊給讀者“前進一點”發了一條資訊道歉。另外,回想起之前還有一些讀者問過我類似的問題,我的答案都不夠嚴謹,因此打算特意寫一篇文章來反省一下。
羊哥視訊裡面分享的內容還是非常嚴謹的,他認為,Python 應用的方向主要有 5 個方面:
- 人工智慧和機器學習
- 資料分析
- 爬蟲
- Web 開發
- 自動化測試
有理有據,所以我完全認同羊哥的觀點。
01、人工智慧和機器學習
人工智慧和機器學習是 Python 應用的重頭戲,但這方面的崗位對學歷的要求非常高,高到我自己都應聘不上,非常殘酷。
在招聘網站上大致瀏覽了一下,我發現,這方面的崗位不算多,但工資挺給力的,在 15K- 30K。不過,招聘資訊上直接說了,“我們的程式設計師小夥伴都畢業於 211/985 學校”,就這一條,我就會被拒之門外。學歷硬傷啊,所以應聘“人工智慧和機器學習”這方面的崗位很難,扎心,誰叫咱不是學霸呢。
考慮到我的讀者已經蔓延到了初中生群體,我得鄭重其事地說一句,“如果你喜歡學習,那就好好學,別在該學習的年紀浪費了青春。”哎呀,我去,說這句話真有點拿自己做反面教材的感覺。
我上小學的時候,一直是第一名,因為學校的招生範圍就我們村那麼大,一共也就三四十名學生。等到上了初中,一直保持前四,因為學校的招生範圍就我們鄉那麼大,一共也就三四百名學生。等到上了高中,一直保持學校前十,但在整個縣城是沒有任何優勢的。
真的是天外有天,人外有人,大部分人都是平凡的,普通的,所以這方面的崗位競爭真的很難。
02、資料分析
一般的小公司,比如說我就職過的公司,完全就沒有資料分析的必要性,因為重點是在產品上,如何做好產品吸引來使用者才是重點。如果說產品的使用者數量少,資料就完全發揮不出價值。
那也就意味著,資料分析工程師的崗位會相對較少,畢竟有大資料的公司屈指可數。但說實話,這個崗位的薪資還是非常給力的,發展前景也好。如果學習能力強的話,硬指標過關的話,可以嘗試。
工資高,通常的原因是供不應求,也就是說崗位多,但人才少。但實際情況是,資料分析的崗位少,符合要求的人才更少。在公司只是在重複操作 SQL、Excel 等基礎工具的資料分析員很容易被自動化工具替代,又扎心了。
大專院校把 Python 作為主語言來教的話,我想肯定不是奔著這兩個方向(人工智慧、機器學習和資料分析)來的。第一個原因就是學歷的問題,第二個原因就是教師不一定能教得會,更別說學生能不能學會了。
03、爬蟲
關於爬蟲,不得不提一下羊哥視訊評論區的一句話,不管是不是段子,我覺得挺值得深思的。
我有個同學搞爬蟲被帶走了,還好他不是主犯,就是登記了一下。
爬蟲是近些年非常火熱的一個話題,連我都買了一本爬蟲入門的書,準備學一學,無奈 Java 方面可寫的素材越來越多,這個計劃一直未能成行。
什麼是爬蟲呢?可能有些不是程式設計師的讀者不太清楚,我找百科問了問,它說,“爬蟲,又稱網頁蜘蛛,是一種按照一定規則,自動抓取網際網路資訊的程式或者指令碼。”
在知識付費的大環境下,這種爬蟲就有點麻煩。拿我來說吧,我希望自己的文章只發表在我希望發表的平臺下,假如其他平臺在未經我的授權下,就把我的文章爬走,放在自家平臺上,我就覺得智慧財產權受到了破壞。
文章還好,是我願意公開的,如果涉及到一些隱私資訊被爬取,那就更糟糕了,是吧?
現在很多平臺都在做反爬,並且做得越來越好,這就在一定程度上有點“魔高一尺道高一丈”的意味,所以,爬蟲方面的工程師還是蠻不容易的。
04、Web 開發
用 Python 做 Web 開發的大型網際網路公司我聽說的不多,羊哥說豆瓣以前用的是 Python,現在也不用了。
不管怎麼說,如果拿 Java 來和 Python 相比的話,顯然在 Web 開發方面的優勢巨大。不管是從技術框架上,還是效能上,以及應用的規模上,同等條件下,Java 工程師顯然更吃香啊。
很多培訓機構誇讚 Python 在 Web 開發方面有著巨大的優勢,開發效率高,速度快。嗯,其實我覺得應該是因為 Python 的語法簡單,容易教——這恐怕是主要原因啊,我這樣說會不會被社會毒打?
這樣吧,我給小夥伴推薦一個網址:
https://developer.mozilla.org/zh-CN/docs/learn/Server-side/Django
學習 Django 的,一個廣受歡迎且功能完整的伺服器端網站框架,Python 寫的,並且是 MDN 出品,最重要的是,免費的。
05、自動化測試
說句實在話,Python 的自動化測試還是應用非常廣泛的,考慮到框架的指令碼質量,測試用例的簡單性,以及執行模組可能存在的技術弱點,我給大家推薦五款 Python 的測試框架。
1)Robot Framework,主要用於測試驅動型別的開發與驗收中。
2)Pytest,特點是開源、易學。
3)PyUnit,針對單元測試的 Python 類自動化測試框架,收到 Junit 的啟發。
4)Behave,允許團隊執行 BDD(行為驅動開發,behavior-driven development) 測試。
5)Lettuce,專注於具有行為驅動開發特徵的普通任務。
06、最後
以上觀點都是我個人主觀給出的,不一定正確哈,僅做參考。
如果說,有些讀者的學歷非常牛逼,然後學習能力也非常強,那麼選擇人工智慧、機器學習、資料分析,我覺得前途是光明的,既能賺錢,待遇又好,還不可替代,不學 Python 絕對虧。
如果說,有些讀者學歷一般,做程式設計師僅僅是為了餬口飯吃,那麼我覺得可以把 Python 作為第二語言來學,不要當做主語言。搞點範圍許可內的爬蟲,自動化測試,我就覺得挺好的。況且 Python 這門語言本身是非常優秀的,不然怎麼搞人工智慧,海量資料分析,對吧?
如果覺得文章對你有點幫助,請微信搜尋「 沉默王二 」第一時間閱讀。
本文已收錄 GitHub,傳送門~ ,裡面更有大廠面試完整考點,歡迎 Star。
我是沉默王二,一枚有顏值卻靠才華苟且的程式設計師。關注即可提升學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,嘻嘻。