根據國外開發者平臺 HankerRank 發佈的2019 年開發者技能調查報告的統計數據,本文摘錄程序員求職時必備技能相關的調查結果。java
僱主招人時,看中哪些核心競爭力?
問題解決能力(無論企業大小,都排第1)
編程語言熟練程度(無論企業大小,排第2)
調試(無論企業大小,排第3)
系統設計(綜合排第4)
性能優化(綜合排第5)
剩下見下圖
相比中大型公司,小公司更爲看中開發者對框架的熟練程度。由於小公司追求快啓動,框架有助於開發者更快速地的推送代碼。c++
僱主招人時,看中哪些任職資質?(普通招聘人員角度)
經歷/經驗
portfolio/做品集(GitHub是開發者展示我的項目最佳方式之一)
教育(學歷/學位)
培訓(技能認證/證書)
我的品牌
有一種流行的觀點認爲,招聘人員更中意有名牌大學 CS 學位的人選。但事實證實,他們實際上關心的是你所作的,而不是你上學的地方。絕大多數的招聘經理表示,他們尋找開發者的技能證實,好比以往工做,多年的經驗和項目/ GitHub。不管公司規模大小如何,90% 的招聘人員表示更看中開發者的「以往工做經驗」和「多年的經驗」。程序員
主管們最看中什麼樣的任職資質?
portfolio/做品集(GitHub是開發者展示我的項目最佳方式之一)
以往工做經驗
工做年限
教育(學歷/學位)
培訓(技能認證/證書)
我的品牌
如今不少公司在招 IT 技術人才時,會查看候選人的 GitHub 上的實際項目,以做爲簡歷以外的技能評估補充。相比多年工做經驗,創始人、CTO、VP 等主管人羣更看重 GitHub 上的項目。面試
他們不像普通招聘人員(HR)那樣看重「學歷/學位」。這多是由於候選人進入由高管面試輪時,上一輪的 HR 已經篩選過了。到了這一輪時,有更多時間來根據以往項目來評估候選人的技能。編程
程序員應該注意哪些點?
一、只有真正喜歡才能寫好程序性能優化
二、把程序當藝術品,像寫詩同樣來寫代碼框架
三、必須寫夠十萬行代碼,不要心存僥倖編程語言
四、時刻保持好奇心性能
五、不要侷限在技術自己,多花點精力關注用戶學習
企業到底須要什麼樣的程序員?每一個IT企業,尤爲是初創企業,很是苦惱:找不到好的程序員。如今大學、軟件學院及各類培訓機構,每一年培養幾十萬的程序員,畢業的每一個人都有一樣困惱:找不到好的工做。問題出在哪裏呢?其實,企業須要的是否是剛會寫程序的人,須要來了就能幹活的人,尤爲能把活幹好的人。
建議一:只有真正喜歡才能寫好程序
喜歡寫程序,作程序員就是上天堂;
不喜歡寫程序,作程序員就是下地獄;
程序員須要成天趴在電腦前,常常沒日沒夜的,很是辛苦,並且工做來不得半點虛假,少寫一個標點符號都不行。喜歡的人,日子過得很是開心,每寫一行代碼,都會有新的成就,尤爲當本身的做品被普遍應用的時候,那種自豪感油然而起。不喜歡的人,坐在電腦前極端無聊,被進度壓得喘不過氣來,每天爲找bug改bug生氣。
只有喜歡,只有熱愛,才能把程序寫好!
我建議不喜歡寫程序的人早點轉行,不要勉強本身,省得誤人誤己。
建議二:把程序當藝術品,像寫詩同樣來寫代碼
如今不多有公司作code review(對寫好的程序作代碼級檢查),因而不少人在進度的壓力下潦草應付,只要測試經過就算搞定。表面上看,開發速度很快,進度有保障;但實際上,這樣的程序連開發者本身都很難讀懂,一旦有bug,很難調試,未來維護升級都很是困難。這樣的代碼多半隻能重寫,浪費天然嚴重。
若是每一個人寫程序的時候當藝術品來寫,寫每行都認認真真、乾乾淨淨的,雖然速度略微慢了一點,但綜合的開發成本會低不少。
如何寫像詩同樣美的代碼呢?方法也很簡單。
1、買幾本經典的編程書,把書上全部例程所有從新寫一遍,逐個比較和書上範例的差距,一步一步改善本身編程的風格和技巧。時間長了,天然就能寫出象書上例程同樣的代碼,甚至能夠比書上寫得好。
2、基礎紮實後,多看看Linux等系統級的源代碼,看看高手是如何寫的,就有感受了。
3、通讀一下MSDN中全部的資料,這樣,「讀書破萬卷,下筆若有神」。
還有,必定要牢記軟件工程的鐵律:可能出錯的地方必定會出錯。每一個變量都作初始化,引用每一個參數都會作有效性檢查,在可能出錯的每一個地方都會作邊界條件檢查,這樣開發出來的程序必定會穩固不少,就是出錯也會很容易修改。野路子出來的高手,通常開發速度很快,但作完後bug不少,常常須要很長時間修改。而真正的高手,追求的境界是bugfreecode(零缺陷代碼)。
建議三:必須寫夠十萬行代碼,不要心存僥倖
程序員象木工同樣,熟能生巧。程序員必須寫足夠代碼量的程序,纔會有感受,這是一個苦力活,沒有任何捷徑可走。
計算機是一門實踐性的科學,沒有動手能力作支撐,很難作出好的科研成果。個人一個學長是美國卡內基梅隆大學的博士,卡內基梅隆大學計算機系在全世界很是出名,他說每一個博士生必須寫十萬行代碼才能畢業,卡內基梅隆大學博士進任何一個大企業基本不用面試。而國內培養的大部分研究生、博士生,動手能力都偏弱。
沒有寫過足夠代碼量的,想成爲高手是不可能的,只能紙上談兵!
建議四:時刻保持好奇心
計算機技術更新換代很是快,每一年都有各類各樣的新技術出現。在我過去的職業生涯中,僅編程語言,我就用過basic、masm、pascal、c++、vba、Delphi、java等。須要時刻保持好奇心,不斷學習各類新的東西,才能在將來的幾十年職業生涯中不落伍。你要理解爲何iPhone出來不少高手用iPhone,如今一天到晚惦記着換部IPhone玩玩。
人的精力有限,高手每每工做壓力也比較大,如何在有限的時間內掌握整個行業動態,的確是一個不簡單的事情。個人經驗是常常看業內的各類技術雜誌,參加各類聚會,能夠節約不少時間。最重要的是,交幾個博學的技術高手,多和他們交流,必定獲益匪淺!
建議五:不要侷限在技術自己,多花點精力關注用戶
作到前面幾條,就已是千金難求的高手了。但一個真正的高手須要知道用戶須要什麼,如何作出讓用戶滿意的產品。
如今的軟件研發愈來愈強烈團隊協做,很多團隊都配置了專門的需求分析的工程師、用戶界面及用戶體驗的設計師,軟件研發的分工愈來愈細。不少程序員覺得只要把技術搞好,不用管用戶需求和用戶體驗。實際上,需求方案及界面方案不可能寫得很是細,具體的實施仍是程序員本身來實現的。這個時候,好壞的差距很快就體現出來了。
咱們寫程序的最終目的是知足用戶需求,不是簡單完成需求規劃方案中的功能。因此,程序員必定要認真揣摩用戶心理,能明白用戶的真實需求。
其次,怎麼設計交互界面,讓用戶以爲好用,用起來舒服,這裏面學問很大。我舉一個小例子,每一個程序窗口右上角都有三個按鈕,如最小化、關閉等。喬布斯以爲很差看,不易用,他提出改用紅綠藍的交通燈。這樣修改後,果真MacOS漂亮和易用了不少。
目前互聯網和手機上的應用開發,都很是強調小團隊研發。這樣研發模式速度會快不少,但對程序員的綜合素質的要求也就更高了。
我強烈建議程序員不要僅僅侷限在技術本事,還須要多點精力考慮和用戶相關的問題,學會洞察用戶的需求,並努力設計好用易用的產品。作着這點的程序高手,創業成算就很大了。
這樣的技術高手,若是捕捉到合適的產品方向,而且具有必定帶團隊的能力,創業成功機會很大!事實上,絕大部分創業的技術公司,創始人都是這樣的人!