供給:
程序員並不多。據說中國也只有200萬會寫程序的人(占人口0.14%)。相當少。
另外,印度270萬程序員(最多的),也只佔人口0.2%的樣子。
我們先從西方國家的角度出發吧。雖然和中國印度不一樣,但也有很大的參考價值。
美國的Tech行業(包括IT在內)工作人員達到700萬;占人口的2%以上。
英國類似,160萬員工,也佔到2.4%。其它西歐國家應該都是差不多的比例。
不過拿整個行業來對比不恰當。因為高科技行業其中只有一小部分人是搞程序的。美國專業從事軟體程序的人口呢,好像只有102萬(根據2010年的人口普查);0.3%。
另外,在美國的職業排行中,程序員在所有職業當中人口數量排行第三十,還少於:
律師職業,104萬;金融資產管理,110萬;大學老師,130萬
如果覺得金融和律師工資高很合理,那程序員工資高也是合理的。
話說,軟體行業還詳細分類,分各種語言各種平台各種特殊要求。編程語言的話;熟悉java到專業程度的程序員只有其中30%。Python估計20%。C不到10%。像Golang之類的小眾語言,1%都沒有。(或許可以參考一下github上的用戶數據)。
我們假設倫敦只有0.3%的人是寫程序到專業程度的,那就是四萬人左右。如果倫敦一家公司必須招Golang經驗的人,能選擇的程序員可能只有三四百人的范圍了。如果再要求人家Python和Golang都會,那可能少到只有50個人選是合適的。隨便看看一家科技公司的招聘要求,都會有好幾個亂七八糟的,比如這語言那語言、什麼SQL啊、Linux啊、機器學習啊、雲端計算啊。。。每家公司要求也都不一樣。真能完全符合他們所有要求的人可能只有幾個甚至根本不存在。能找到滿足兩三個要求的人已經算很不錯了。
其它行業沒這么麻煩,一個職位總是有很多人都能勝任的。選擇多了,公司就有條件把工資壓低之類的。但是在程序招聘方面,談工資的權利在程序員手裡,因為對方沒有選擇。程序員本來那麼稀有,非常適合要求的程序員更是稀有之稀有,不能錯過。
(在簡歷上寫什麼都會的人一抓一大把;但是人家公司也不傻,能看穿。這些東西到精通的地步都需要好幾年的經驗。如果某個程序員真能夠精通了其中兩三件,又正好符合公司所要的,那價值無上限啊。稀有度決定一切)
(也有不一樣的,一些高科技大公司比如google、facebook,他們不一定要求人傢具體會做些什麼,因為反正什麼類型都會招收一些,而且有耐心培養。但是人家找的基本是高能力的人,強調problem-solving能力、邏輯清晰、抽象思維、創新思維、有直覺的、等等。達到這種境界,會什麼不會什麼都不重要,反正都能很快學會新技能。但是一般公司沒這耐心,沒這遠見,只想盡快找一位能馬上解決特定問題的員工)
(當然也不能說一個程序員的價值取決於他熟悉多少種計算機語言什麼的。請別這樣理解。許多程序員「高階技能」更是一種訓練出來的思考維度,和編程語言無關。這些維度決定一個人能否有效解決某一類問題。具體用什麼語言並不重要。不過吧,如果只接觸一門編程語言,思維肯定會有些捆綁)
---
需求:
好吧,倫敦有那麼幾萬個程序員。假設平均兩年換一份工作。如果市場穩定了(滿了),那每個月新空出來的職位應該只有幾千個吧?但是倫敦的招聘廣告明明每個月都十幾萬個啊。而且一年一年越發多。這只能說明:找不到人了!
很多公司都是招不到程序員的狀態。有些公司一開始很天真,掛一個他們自認為很好招到人的低職位廣告,准備四萬英鎊年資(30多萬人民幣)。結果時間過去了幾個月,發現過來面試的偶爾幾個選手也都不適合,只好把年資提升到六萬、八萬、十萬。最後終於來了一位程序大牛,非常適合,但是人家被另一個給出15萬鎊年資的公司給搶了。結果掛了一年多還在等人;老闆的美夢都這樣被現實毀滅掉了。
(在倫敦四五萬鎊年資的程序員當然也有不少,因為這些人總能找到一個能接受他們的公司。要麼公司等得太不耐煩了只能選他們,要麼成功裝逼就混進去了。也或許是真找到了最適合的一家了。。。可是意識不到自己的稀有程度,低估自己的價值,有點可惜。有些人大概工作了幾年才會有這種意識吧,然後追求的工資開始飛速漲價。)
總體來說,倫敦(以及西方各地)的程序員工資很高是有道理的。因為需求高於供給高得太多太多了。其它行業都是公司來選員工。但是這行業還真是員工來選公司。這也可能導致各種不公平吧。許多員工在五十萬年資(人民幣)的范圍混,也有許多員工在百萬以上(因為他們找到了自己稀有之處,並且運用了)。反正平均可能在八十萬左右(比倫敦的平均薪資高一倍),但是很少有人的收入在這個平均值,一般是在兩個極端。
中國是否處於類似的情況,好像是的。道理應該也很相似。如果你在找一千萬人,但是只有幾百萬人能做到,肯定也會這樣。而且其中每一個職位大概只有10-100人能做得好;做得到底好不好又很容易判斷出來,薪資差距自然很明顯。
---
程序員收入比其它職業高是事實。而且一點都不虛。
世界需要很多人來干這些事,能乾的人又太少了。
這些程序員只要有幾年經驗在幾家公司,累積掌握到了獨特(僅限於自己)的一套技能,總能找到高薪的有價值的工作。因為他們是稀有動物啊。只要有一家公司正好非常需要那一套獨特的技能,稀有程度已經很明顯了。問題是不止一家認為他們稀有,所以各種搶破頭。因此稀有的高級程序猿可以挑來挑去。公司競爭搶程序員而不是程序員競爭入公司。
---
最後講幾句關於未來:
首先,在所有職業當中,程序員是增長得最快的。大家應該都能看得出來。很多傳統工作類型已經漸漸被取代了。正是因為程序員把這些工作內容自動化了。這個趨勢肯定會繼續下去。
最簡單的一例應該是收銀員工作。以前需要好幾十個員工來負責收銀的超市,現在只需要一兩個收銀員。超市裡各種越來越先進的自動收銀機器。至少在英國大多超市是這樣的吧。整個人工收銀行業在未來可能就不存在了。哦,還有金融行業現在幾乎所有交易都是自動程序操作的。
其實大多行業,遲早都會有類似的淘汰現象發生。目前,大家不會想到有一天醫生會被軟體取代。可是仔細想一想,一個軟體能分享和同步全世界所有的醫療數據來做一次診斷,遠勝一個人的腦力所能做到的。律師分析歷年來的案例和檔案去找出漏洞的能力也可能不如一個軟體程序。其他行業我就不一一說了,以後值得另外好好寫一寫。
這些變化會遠遠超過幾次工業革命的變化。軟體行業是唯一能堅持得比較長久的。這些其它行業被自動化軟體化也都需要這些程序員來實現和維持。但是未來幾十年內,需求只會越來越大。與其它行業的工資差距也會越來越極端。
感覺很多非行業的人有一種錯覺。。。
錯認為編程(或Tech)就是很多行業當中的其中一個而已。
我只能呵呵。
幾百年前的人也會認為「工業」只不過是一個小行業,因為人不多。隨著科技的發展,工人成了主流,這「工業」開始分成各種各樣劃分開來的新行業。後來服務業(白領)又突然發展起來了,分裂成現在大家所熟悉的各種行業。
下一次工作變革就是編程。它會慢慢形成很多獨立行業。現在已經能看得出來啊,軟體行業裡面已經有很多不同方向的。。。我幹不了A,A幹不了B,B幹不了C,C又幹不了我所做的。但是我們都是「程序員」。在以後,我們就不會再說「他是程序員」,而說「他是A」,「他是B」。因為到以後大多數人都是程序員。一百年以後,「程序員」這個詞就毫無意義了。
(當然也不是永久的;AI之類的也總會取代程序員,最後讓軟體寫軟體。將來下下下一個paradigm是什麼我們都猜不到吧,無法想像。那時可能都沒有「工作」這般概念。但是程序員的崛起作為目前一個大的paradigm shift,這是能確定的哦,畢竟這才是一步一步走向AI必須經過的一段歷史)
⑵ 5款程序員常用的Python開發工具
很多Python學習者想必都會有如下感悟:最開始學習Python的時候,因為沒有去探索好用的工具,吃了很多苦頭。後來工作中深刻體會到,合理使用開發的工具的便利和高效。今天,我就把Python程序員使用頻率比較高的5款開發工具推薦給大家,希望對大家的工作和學習有幫助。
一、最強終端:Upterm
本來想推薦 fish 或者 zsh,但其實這兩個我也主要是貪圖自動補全這個特性。最近在用的這個 Upterm 其實很簡單好用,它是一個全平台的終端,可以說是終端里的 IDE,有著強大的自動補全功能。之前的名字叫 BlackWindow,有人跟他說這個名字不利於社區推廣,改名叫 Upterm 之後現在已經17000+ Star了。
二、互動式解釋器:Ptpython
一個互動式的 Python 解釋器。支持語法高亮、提示甚至是 vim 和 emacs 的鍵入模式。其實我們在課程里提供的在線終端也內置了ptpython。
相關推薦:《Python視頻教程》
三、包管理必備:Anaconda
強烈推薦Anaconda ,它能幫你安裝好許多麻煩的東西,包括: Python 環境、pip 包管理工具、常用的庫、配置好環境路徑等等。這些事情小白自己一個個去做的話,容易遇到各種問題,帶來挫敗感。如果你想用Python搞數據方面的事情,就安裝它就好了,它甚至開發了一套JIT的解釋器Numba。所以 Anaconda有了JIT之後,對線上科學計算效率要求比較高的東西也可以搞了。
四、編輯器:Sublime3
小白的話當然還是推薦從PyCharm開始上手,但有時候寫一些輕量的小腳本,就會想用輕量級一點的工具。Sublime3很多地方都有了極大的提升,並且用起來比原來還要簡單。配合安裝Anaconda或CodeIntel插件,可以讓 Sublime擁有近乎IDE的體驗。
五、前端在線編輯器:CodeSandbox
雖然這個不算是真正意義上的Python開發工具,但如果後端工程師想寫前端的話,這個在線編輯器太方便了,簡直是節省了後端工程師的生命啊!不用安裝npm的幾千個包了,它已經在雲端完成了,采讓你直接就可以上手寫代碼、看效果。對於 React、Vue 這些主流前端框架都支持。算是一個補充推薦吧。
⑶ Python和java,有什麼不同
Python入門更快,但是java的運用更加廣泛,所以二者各有各的優缺點,要學哪個還是要根據自己的實際需求情況來進行判斷和選擇。
首先來了解一下java與python各自的特點:
Java:高度面向對象的高級編程語言
設計初衷是「寫一次代碼,在哪裡都可以用」,可以完成任何規模的任務,所以它也是很多公司在做商業級項目的時候的普遍選擇。
Python:擁有簡潔語法的高級編程語言
設計初衷是「讓代碼讀起來更輕松」,並且讓程序員們比起用其他語言,可以寫更少的代碼,事半功倍。
最後是給初入行業的新人一些學習建議:
如果你只是編程愛好者,或者把編程語言作為一個工作中的應用工具,Python是個不錯的選擇。如果你想在程序員的道路上穩步發展,建議先學習Java,再學python,C++,JavaScript,PHP等其他語言,會事半功倍。
一名優秀的程序員,絕不會只靠一門語言走到黑,通吃它們就完了!兼容並蓄,觸類旁通,這才是一個成熟IT從業者該有的心態!
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校。好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝學有所成!望採納!