《花千骨》一劇,白子畫爲何收花千骨爲徒?git
《琅琊榜》中,梅長蘇爲何選靖王而棄太子、譽王?程序員
《泰坦尼克號》裏,傑克和露絲爲何會一見傾心?github
王子基特爲何會選擇灰姑娘辛德瑞拉?面試
這些問題乍一看彷佛和程序員找工做沒什麼關係,但其實,內在的道理都是相通的,搞明白這些問題,就能清楚下面的問題:算法
爲何你投十份簡歷,只有一兩家公司約你?又或者爲何你每投一份簡歷都能得到面試機會?編程
最根本的緣由,就是一方在汲汲渴求,而偏偏另外一方呈現出的關鍵點讓其怦然心動。求者心中有所想,而應者偏偏展示了求者所想的那一面。這就是個中奧妙。設計模式
程序員在找工做時,在一開始有三件事情會對可否得到面試機會相當重要:服務器
知識、技能、經歷梳理網絡
確立求職目標多線程
簡歷優化
友情提示:假如你不想看萬字長文,能夠:跳到第3部分,看簡歷優化實操;跳到第4部分,看如何提升簡歷投遞成功率。
【01】知識、技能、經歷梳理
知識、技能、經歷,這都是一我的能體現出來的商業價值。一家企業招募某我的,必定是由於這我的能夠幫助企業在某方面實現價值。並且,正常狀況下,我的的貢獻必定要大於企業爲這我的負擔的各類成本(薪水、社保、公積金、個稅等),不然,要你毛用啊。
因此,做爲程序員,咱們必定要清楚本身的價值在哪裏。我的的商業價值,能夠經過下面五大要素分析出來:
- 知識
- 技能
- 經歷
- 天賦
- 人脈
咱們在招聘網站上填寫簡歷時,內容最多的就是前三個要素,都是差很少的模板,填下來千人一面。
在最開始的時候,不建議直接到招聘網站上填寫簡歷。強烈建議先用word或MarkdownPad來整理記錄你認爲你具有的全部有價值的知識、技能、經歷,不論大小,通通記錄下來。這是咱們後續優化簡歷的基礎,也是確立求職目標的基礎。
1.1 知識與技能
有必要說一下知識和技能的區別,這是不少人經常混淆的。
知識能夠經過語言文字、語音、視頻等進行傳授,好比像C++、Java、數學、物理、Qt、Android、設計模式、網絡協議等都是知識。
技能是指按照某種規則應用知識和經驗完成某種任務的能力。好比使用Qt開發桌面客戶端軟件就是一種技能,使用Java和Android界面類庫開發App也是一種技能。
個人知識大概有這些:
C、C++、Java、Scala、Python、Qt、MFC、WTL、QML、Qt Quick、JavaScript、HTML、CSS、Lua、MySQL、MongoDB、XML、Json、Win32 SDK、Node.js、AngularJS、ffmpeg、VLC、DirectShow、Android、Objective-C、HTTP、P2P、RTMP、RTSP、HLS、P2P、socket、UML、軟件開發模型(瀑布、迭代、Scrum等)、項目管理知識、團隊管理知識、自媒體運營
知識會淡忘,一段時間不用就扔掉了,因此在你的知識圖譜裏,必定有一些是你常用的,好比我最熟悉的就是C、C++和Qt。
咱們須要把本身最熟悉的三種知識標註出來,後面會派上用場。
技能就是對知識的運用,因此通常來說你有什麼知識,就能找到一組技能。好比我可能有下列技能:
- 使用Qt開發客戶端軟件
- 使用Qt開發服務器軟件
- 使用Java開發Android App
- 管理項目,制定項目計劃,跟蹤計劃,控制項目進度
- 團隊管理與激勵
- 博客、公衆號等自媒體運營
- ……
好啦,如今咱們應該能夠進行知識和技能的梳理工做了。
須要特別注意的是,每一個人都有不少知識和技能,必定要找出你擅長的2~3種知識,2~3種技能,這將是你求職時的重要參考。人只有使用最擅長的技能去作事情,才能達到最好的效果。
1.2 經歷
知識和技能能夠幫助咱們創造商業價值,而知識和技能的積累過程自己也是有價值的。積累知識和技能的過程,就是經歷。
著名電影《貧民窟的百萬富翁》講述了這樣一個故事:在孟買貧民窟長大的少年賈馬爾參加一個名叫「誰想成爲百萬富翁」的節目,過五關斬六將,最終贏得了2000萬盧布的大獎和他心愛的姑娘。
這個故事的神奇之處就在於賈馬爾回答對了諸如「《darshan do ghanshyam》的詞做者」、「1973年的動做電影《囚禁》的主演是誰」、「哪一位板球運動員是本世紀曆史得分最多的」、「誰發明了左輪手槍」、「百元美鈔上是哪一位美國總統的肖像」之類的問題,而這些問題連博士專家都沒把握全中!這與他的身份徹底不符,引發了節目主持人的質疑,認定他做弊,趁節目暫停錄映,通知了警方以欺詐的罪名逮捕了貧民小子。
爲何賈馬爾能夠作到?隨着問答節目的推動,咱們發現,原來,這些問題相關的知識,賈馬爾根本沒有學習過,而是他獨特的貧民窟生活恰好遭遇了這些問題。這就是經歷的價值。
程序員的(學習、工做、項目)經歷一樣具備很是獨特的價值,在求職過程當中每每會發揮很是重要的做用。好比你作過視頻項目,那再找相似作視頻的公司就很容易脫穎而出;好比你作過圖像處理相關的項目,進入美圖秀秀之類的公司就相對容易……
在回顧項目經歷時,關於你本身的那部分,必定要想明白並記錄下來,從下面三點來挖掘你的亮點:
- 你負責的工做內容
- 用到的知識、技能
- 你對整個項目的貢獻(最好能夠量化)
個人一個項目經歷:
【互聯網視頻卡頓優化】
項目描述:智能機頂盒上的視頻聚合客戶端,在播放視頻時,高峯時段或熱點視頻,常常卡頓。針對此問題,進行優化,以使可以對用戶提供流暢的觀看體驗
業績:播放效果大幅度提高,卡頓投訴降低80%。
職責:
做爲項目經理,負責項目範圍界定、進度跟蹤與控制。
做爲系統設計,選擇技術方案,設計加速與優化算法,設計系統結構。
做爲核心開發人員,負責客戶端 http 基礎類庫的開發和服務端 http server(基於Qt)的開發。
我沒有列出前面所說三點對應的全部內容,我的亮點也沒徹底寫出來,但你的內心必定要清楚,你發揮了什麼關鍵做用,若是有攻克技術難點的經歷和明顯能夠量化的業績,必定要總結出來,面試時常常會被問到哦。
天賦和人脈其實也是我的很是重要的商業價值。但在程序員的簡歷中較難體現出來,在面談中卻是有較多機會展示。
【02】確立求職目標
無論是從大學走向社會的初次求職,仍是在職場摸爬滾打了N年的老鳥,找工做時都要忌諱一點:茫無目的,漫天撒網。
求職時,明確目標行業、企業、職位,有針對性的作準備,事半功倍。
2.1 職業延續性
跳一次槽換一個行業,跳一次槽換一條技術棧,這樣極其不利於程序員的商業價值積累(知識、技能、業務等)。假如你不是第一次求職,就有必要考慮職業延續性。
假如你如今在金融行業,那換工做時,最好還在裏面。這樣你的行業相關的經驗就能夠積累下來,慢慢造成優點。假如你如今作iOS開發,最好換工做時還找iOS相關的,這樣你的Objective-C啊,Swift啊、Cocoa啊才能持續精進……
有一種狀況另當別論:你發現你不喜歡如今的行業和所用的技術。此時跳槽,就要找到新的方向(後面方法能夠幫到你)。一旦你找到新的方向,轉換過去以後,一樣要考慮之後的延續性。每次都說本身不喜歡如今的,更喜歡另外一個,這樣搗騰幾年以後,你極可能會發現,那些悶生不響持續深耕的小夥伴們竟然一晚上之間都牛逼閃閃起來了……
2.2 成就事件挖掘職業興趣
在咱們總結整理本身的工做、項目經歷時,要特別留意那些讓你特別有成就感的事件,它裏面隱藏你的職業興趣,能夠挖掘出你從此樂意從事的職業方向。
咱們能夠遵循STAR原則來回顧成就事件:
- S(Situation),背景狀況,包括面臨的障礙、限制或困難
- T(Task),任務,目標,想完成的事情
- A(Action),行動計劃與步驟,如何克服障礙、達成目標
- R(Result),對結果的描述,重點關注你取得了什麼成就
成就事件列出來後,能夠按照下面兩點來深刻挖掘:
- 哪個具體的點讓你特別有成就感,好比「達成結果受到領導表彰」、「獨立克服某個技術難題」、「用本身的XXX幫到了某某某」、「成功組織你們齊心合力達到目標」……
- 用到了什麼知識、技能
經過這樣的分析,你就可能找到本身的最佳技能和工做中最在乎的點在哪裏,就能夠根據他們來確立新的職業目標。
2.3 聚焦行業、企業、職業
聚焦的目的是縮小目標範圍,節省時間和精力,深刻研究分析,有針對性的對本身的商業價值進行優化組合,提升簡歷的吸引力,最後提高獲取面試機會的機率。
程序員運用編程語言、技術框架、設計模式、算法等開發針對某個領域問題的軟件,軟件必然和目標需求和業務密不可分,因此,程序員左手技術,右手業務,假如你對業務內容徹底不感興趣,很難想象你能夠把軟件作好。所以,當你有了目標產業,目標公司,還要去了解這家公司作什麼產品,是產品導向的公司,仍是項目導向,仍是外包爲主,選擇那家你對它的業務範圍感興趣的公司,不感興趣的就果斷篩掉。
基於延續性的考量,以往工做過的行業領域都須要認真對待,但不必定非要繼續在以前的方向上作,換一換也能夠。但有一個基本的原則,離夕陽產業和走下坡路的企業遠點兒。
以我爲例來分析一下。
技術方面最擅長的語言是C++,最擅長的框架是Qt(出過《Qt on Android核心編程》和《Qt Quick核心編程》兩本書),最擅長的是客戶端軟件開發。而後對Android開發有了解也有興趣。新的職位最好和這兩方面相關。
不過,也不是全部人都想一直沿着一條技術棧走下去,我知道有一個哥們兒,用了10年C#,實在膩歪透了,在原公司不能轉到其它方向,就跳了出來,想換到C++相關的技術棧上,結果老是有公司但願他從事能用到C#的崗位,不斷給他打電話,他每次都拒絕掉。
我鎖定的第一個目標是高級軟件開發工程師,語言是C++。行業領域的話,互聯網、智慧城市、企業服務等均可以。
還有,我以前都在小公司摸爬滾打,如今但願到比較大一點的公司裏體驗一下不一樣的工做氛圍。
在鎖定職位的過程當中,還要考慮本身當前的劣勢,以便在簡歷和麪試過程當中妥善應對。以我爲例,若是找軟件開發工做,就有兩個很差的點:
- 最近一年沒作什麼開發工做,會被人質疑廉頗老矣尚能飯否
- 最近幾年都在作技術管理工做,別人可能會奇怪你爲何倒回去作開發
這兩點也會影響到目標職位的選擇和匹配度,好比有的高級開發工程師職位要求有必定團隊管理經驗,那和個人匹配度就高一些。
好啦,個人聚焦過程已經完成了,接下來我們進入簡歷優化的實操過程。
【03】簡歷優化實操
知道了本身有什麼商業價值、弄清了想到什麼樣的行業什麼樣的企業裏什麼樣的崗位上工做,接下來就該優化簡歷了。
簡歷優化有這麼幾個要點:
- 分析招聘信息,提取知識、技能、職責當中的關鍵詞
- 根據招聘信息裏的關鍵詞,篩選我的知識、技能、經歷
- 將匹配到的知識、技能、經歷從新組織、呈現
程序員的簡歷,通常包含下列內容:
- 基本資料(姓名、性別、年齡、婚否、電話、當前在職狀態)
- 求職意向(職位、工做地點)
- 知識、技能
- 自我評價
- 教育經歷
- 工做經歷
- 項目經驗
- 附加信息(好比興趣愛好、榮譽、博客、開源項目等)
根據實際狀況,有的簡歷可能沒有自我評價、附加信息,有的可能沒有可寫的教育經歷(好比高中生),有的可能沒有工做經歷和項目經驗(如大學生等初次求職者)。
特別提一下程序員的一些我的品牌相關的附加信息(具體參看這8種武器點亮程序員的我的品牌),好比技術博客、github主頁、參與的開源項目、本身作的App、公衆號等,都是能很是好展示程序員知識、技能的東西,能爲你的簡歷加分,也能彌補面試時間短信息交流補充分的問題。要知道,決定你可否經過簡歷關的,一般是另一個程序員,而對聰慧內斂的程序員致敬的最好方式,就是「Show me the code」。
3.1 簡歷模板
不少程序員都使用招聘網站提供的簡歷模板,要在不一樣招聘網站上發佈簡歷的話,可能要重複填寫五、6次簡歷,很是耗時。我通常會有一份基礎的word格式的簡歷,根據它在不一樣的招聘網站建立不一樣的簡歷。
接下來介紹個人簡歷,很是簡單,順次包括下列五部份內容:
1. 我的信息
2. 求職意向
3. 技能與評價
4. 工做經歷
5. 項目經驗
我簡歷的前三部分簡單以下:
我工做年限長,挑最近的幾段看下:
好了,我簡歷的主體框架就是這樣子了。接下來,我會根據個人目標職位——高級軟件開發工程師——來找幾條招聘信息,經過分析招聘信息來優化簡歷的技能與評價、項目經歷兩個部分。這兩部分也是咱們優化簡歷時的重點。
3.2 簡歷優化
大多數招聘需求是由咱們的同行提供的,假如能從招聘信息裏反推出擬定招聘需求的那個軟件工程師或經理心中的關鍵詞,那你的簡歷優化就有針對性了。
下圖是一個招聘需求:
紅線標註出來的,是一些關鍵的基本要求,C++、Qt、Windows桌面客戶端,這些是硬性要求,要應聘該崗位必需要知足。
綠線標註出來的,是軟性要求,不太容易直接量化和衡量,但面試官可能會在面試中經過交談來考察。好比軟件設計能力、技術傳播能力、溝通能力、溝通與團隊協做等,一般都是在面試中體現,而編碼能力,則可能會經過筆試或者面試中不斷的詢問技術細節來檢驗。
藍線標註出來的,是優選條件,在有多個候選人的情形下,你具有了這些要素,就會被優先考慮。
通常的企業處理軟件開發工程師的簡歷,是HR先挑,而後是技術人員(程序員或經理)再次篩選,經過技術人員的篩選後,就會通知筆試或者面試。
HR拿到招聘需求,會和技術人員溝通要關注的關鍵點,而後根據這些關鍵點挑選合適的簡歷。一般在HR眼裏,關鍵點就是關鍵詞,因此,咱們修改簡歷時,儘量使用招聘信息裏出現的字眼,便於HR識別。HR看一份簡歷,多則一分鐘,少則20、30秒。
技術人員篩選簡歷,一般比HR要細一些,大體分兩步,先篩關鍵詞,而後是看項目經驗裏是否體現出了他們發佈的崗位須要的技能和軟實力。關鍵詞匹配不上,PASS,30秒不到;能匹配上,繼續看項目經驗,整個過程可能會持續幾分鐘。
在看項目經驗時,一方面看應聘者在項目中是否用到了未來須要的相關技能,另外一方面看具體項目內容,作行業、產品、業務相關性比對,若是應聘者作的產品與招聘方要作的相關性高,就會被優先考慮。
經過對簡歷篩選流程的瞭解,能夠知道關鍵詞的重要性了。那接下來咱們就要依據從招聘信息中提取的關鍵點來修改簡歷了。
在修改簡歷時,個人作法是儘量多的在簡歷中體現企業要求的技能及軟實力。通常能夠在下面兩處反覆琢磨:
1. 技能與評價
2. 項目經歷
結合個人簡歷,先看技能與評價部分怎麼修改。
由於目標職位是高級軟件開發工程師,招聘信息也沒有特別體現對管理能力和經驗的要求,因此個人管理經驗能夠淡化或拿掉。而後是突出C++、Qt、軟件設計、技術傳播等內容。新的版本以下:
新版本兼顧了硬性要求、軟性要求和優選條件,與初始版本有明顯不一樣。
接下來,咱們就要從新組織、呈現項目經歷,讓它更多地體現企業HR、面試官所關注的關鍵點。下面是個人一個具體的項目經驗:
這個招聘需求,和個人匹配點主要在技能(C++、Qt),接下來這個,責主要匹配的是業務(行業)經驗。
紅線標註出了基本要求:C/C++、Linux。
綠線標註的軟性要求,一部分是不太容易量化的技能,好比精通多線程、獨立設計經驗等,一部分是產品業務相關的,好比音視頻編解碼、封裝、流媒體、網絡協議、視頻業務系統等。
這則招聘信息中有兩個優選條件,不過和個人知識、技能都不匹配。
一個程序員的知識、技能、經歷,橫當作嶺側成峯,角度很重要。
來看看新修改的技能與評價:
和麪向上一個招聘信息的內容又有了較大差別,是否是?
此次我改兩個以前展現過的項目經歷,方便比較不一樣。第一個:
此次我將重點放在了多媒體、設計等方面,與前面那份有了很大不一樣。
再來看文章最前面提到過的一個互聯網視頻卡頓的項目經驗,新版本以下:
和原來大不同了。
須要特別提醒的是,簡歷優化是針對程序員知識、技能、經歷進行的穿衣打扮,是從不一樣的視角呈現不一樣的側面,能夠用心琢磨,但萬萬不可造假。
3.3 檢驗優化效果
提供一個檢驗你簡歷優化水平的方法:
- 將你鐘意的企業和職位分爲A、B、C三類,A是最符合你目標的,B與你最核心的訴求匹配,C類呢可能抵觸了你的某些核心價值觀。
- 針對C類公司的職位,測試你的簡歷優化技能,找三五家來練手,投遞簡歷,簡歷過了就去面試,攢面試經驗。
- C類以後進行B類,最後是A類。
這樣的過程,能保證你先練簡歷和麪試技術,而後以最好的狀態走向你最心儀的公司最鐘意的職位。
【4】如何提升簡歷投遞成功率
根據前面的分析,要想提升簡歷投遞的成功機率,遵循下面的流程將很是有幫助:
1. 梳理知識、技能、經歷並記錄在案,造成基礎簡歷
2. 確立求職目標
3. 篩選招聘信息,選擇匹配本身目標的公司和職位
4. 針對每一個招聘信息進行分析,提取關鍵詞
5. 根據關鍵詞,結合基礎簡歷,優化技能描述和項目經驗,生成一份有針對性的簡歷
根據我本身的經驗,一天可能只能完成3份左右的簡歷投遞。由於,針對每個職位生成一份有針對性的簡歷,可能會花費1到2個小時時間,有時甚至更長。不過,花再多的時間都是值得的,由於這種優化將大大提升你簡歷經過的機率。