全文共3840字,預計學習時長11分鐘
作為一名曾經在舊金山灣區(Bay Area)和紐約市(NYC)一些最熱門的科技初創公司工作過的技術招聘人員,我親眼目睹了公司在軟體工程、機器學習、數據科學、技術管理、董事職位等領域尋找候選人的過程。
也許,我能帶領許多自學成才的求職者找到工作。
坦白講:我本人就正在自學編程。
一些自學成才的求職者喜歡諮詢的問題:
· 怎樣才能進入這家公司呢?
· 面試官喜歡在簡歷上看到什麼?
· 我有什麼可以改進之處?
招聘背後的硬道理
事實上,每家公司都是不同的。每個公司都有一套不同的要求。有些公司偏好名牌大學畢業生,而有些公司有學位要求,有些公司則不喜歡訓練營,甚至還有一些公司不想把寶押在一個自學成才的年輕人身上。
別讓這些條條框框嚇著你。
自學型程式設計師的崛起
當我招聘時,我總是對自學成才的程式設計師和獲得學位的人一視同仁,甚至認為他們可能比有學位的人更勝一籌。我對這些候選人很尊重,這也是為什麼即使公司並不認同這種心態,我卻總是在招聘時極力爭取他們的原因。
自學成才需要有足夠的毅力、時間管理、專注、智慧和動力。我相信招聘經理們將開始意識到這將會改變未來招聘工程師的標準。
下面將分享一些技巧和技巧,幫助你在任何公司、招聘人員或招聘經理前脫穎而出。
為成功蓄力
· 磨練自己
· 冒名頂替症候群
· 製作自己的作品集
· 有針對性的方法
· 完善簡歷
· 打造自己的品牌
· 研究,研究,再研究
· 為面試做準備
磨練自己
在開始找工作之前,你必須衡量自己的技術能力。如果了解自己的技能,就可以申請與之匹配的工作。一旦知道了你的技能是什麼,你要做的就是向僱主證明你清楚你的簡歷上寫了什麼。
對於自學成才的程式設計師來說,你的項目通常等同於潛在僱主眼中的學位。理解創建每一個項目的過程及原因,並準備好流利的表達。
擊垮冒名頂替者綜合症
在某些時候,也許在面試中,在一家公司工作,或者在課程進行到一半時,你會問自己是否屬於這裡。腦海裡的聲音可能告訴你,你不適合做這個。但事實是,不管是自學成才的程式設計師還是其他人都會有這樣的想法。你必須學會控制這種症狀和想法。永遠不要忘記,你和擁有學位的人一樣都是開發人員。
製作自己的作品集
如果之前沒有工作經驗,向僱主證明你有編程能力的最好方法就是創建一個包含最好項目的作品集,讓僱主了解你已經完成的項目。活躍的Github簡介會給僱主留下很好的第一印象。
每一次學習新技術的時候,你都可以通過建立一個項目來鞏固你所學到的東西。
如果你申請的職位與技能相匹配,那麼在整個面試過程中,你可以用你的項目作為例子,說明你是如何成功利用該項技能的。
有些僱主希望看到你的代碼,有些則希望看到成品。確保這兩項都包含在作品集裡,將它們放到自己的網站和簡歷上。
當創建項目時,請記住以下幾點:
要解決的問題是什麼?怎麼解決的?是否有回顧解決方案的複雜性或效率?遇到了什麼問題?
有針對性的方法
我能提供的最好的建議是,在建立作品集時,不要只是羅列作品集中的所有項目,而是要突出與你感興趣的公司或領域相關的項目。換句話說,採取有針對性的策略。
如果你已經鎖定了幾個不同的僱主,或者已經選定了一個領域,那麼就選擇一個量身定製的項目來打動他們。
例如:曾經我為一家加密貨幣公司招聘時,該公司為數字資產公司提供了一個代幣銷售的平臺。有一個應聘者在自己的項目中為加密貨幣建立了一個技術分析和算法交易平臺。他在面試時展示了他的工作成果。這不僅展示了他的編程能力,還展示了他對加密貨幣領域的理解,以及對該公司的濃厚興趣。因此他得到了那份工作!
完善簡歷
把簡歷當作一種營銷工具。招聘人員正在尋找符合職位描述的候選人,幫助解決他們的問題或需求。他們沒有時間仔細研究你的簡歷,搞清楚你是誰,所以你需要幫他們把這些記憶點連起來。
注意事項
· 不要在簡歷上撒謊。
· 不要給每個僱主都投去相同的簡歷。
· 弄清楚僱主真正想要的是什麼,然後在簡歷中反映出這些能力。
· 一定要花時間寫一份能立即引起他們注意的摘要,準確有力地把你描述成能解決他們問題的方案。
· 不要僅僅列出工作職責,而是要列出你已經完成的工作
· 在簡歷中加入LinkedIn,確保簡歷和LinkedIn匹配。
· 一定要包括你的Github。
· 一定要有創造性,簡歷應當包括你參加過的任何開發人員培訓,以及無論是在網上參加的課程還是你自己獲得的任何證書。
· 列出精通的語言和目前正在學習的語言。
· 列出你的項目——功能,目的和構建方式,以及你使用的技術。
優秀簡歷示例:
打造自己品牌
為了脫穎而出,你必須在這個行業顯示權威,證明你確實屬於這裡。最好的方法就是把你自己和你的內容展示給世界。
如果你喜歡寫作,那麼可以嘗試在Medium、Hackernoon、Dev Community等網站上開始寫博客。如果你喜歡在鏡頭前,建立一個YouTube頻道或在Instagram上發布資訊也是不錯的選擇。如果你喜歡聊天,那就開始創建自己的播客。在社交媒體上增加你的受眾,而不必成為這些領域的專家。作為一個程式設計師,你只需要向世界和招聘經理展示你的履歷和能力。這也為你的面試提供了很好的談資,同時也可以寫進你的簡歷裡。
每個人都喜歡一個好故事,你永遠不知道它會影響誰甚至啟發誰:
你必須樂於表現自己,表現出脆弱的一面,表明你在認真對待所做的事情,對自己的能力有信心。
研究,研究,再研究
不知有多少次我看到應聘者搞砸了面試,是因為他們沒有研究過這家公司,也無法向面試官解釋他們對這家公司了解多少,公司做了什麼。找出你所應聘的公司的所有信息,並根據你的發現來調整你的申請。
以下是一些你可以研究準備的事情:
· 公司看重的技能和經驗。
· 公司的關鍵人物——在LinkedIn上搜索他們。
· 公司的新聞、成就和最近的事件——關注他們的博客或社交媒體。
· 公司的文化、使命和價值觀——可以在其網站上找到。
· 他們的任何客戶、產品和服務。
· 了解公司內部細節——通過Glassdoor了解面試問題、招聘流程、評估等細節。
· 調查每一個面試你的人。
準備技術面試
上文所述將幫助你為任何一家公司的面試做準備。本節將深入討論技術方面。
這是一個程式設計師典型的技術面試的流程(或多或少):
· 第一階段:技術電話/屏幕面試。如果你已經成功進入了第一階段,這證明公司喜歡你的簡歷,並且想和你談談。這個階段的目的是看看你是否有足夠的資格/熱情進入下一個階段。
· 第二階段:遠程編碼面試/任務。有些公司會讓你在參加現場會議之前用一個挑戰來測試編程技能。這可能通過電話,視頻電話,或作業來傳達。為了保持新鮮感,你應該儘可能多地練習編碼挑戰。
· 第三個也是最後一個階段:現場面試/白板挑戰。這個階段通常包括一個面對面的面試,你必須在面試官面前的白板上完成編碼挑戰。
以下是一些你在面試前需要研究的事情,你可以鞏固它們來提升自己。
數據結構
數據結構是一個核心的編程概念,因此所有程式設計師都必須了解基本的數據結構。你必須能夠自如地使用您喜歡的程式語言中的列表和字典,以及它們之間的優缺點。
算法
你應該知道如何實現和應用不同的算法:樹遍歷算法、圖搜索算法、搜索和排序算法。
時空複雜度
你應該養成在設計算法時考慮時間和空間複雜性的習慣。這應該成為第二天性,使你立即看到各種算法的優勢和潛在的性能問題。
作業系統
每個程式設計師都至少應該了解計算機作業系統的底層機制。
資料庫
任何組織研發任何一款應用程式和軟體都需要資料庫做支撐。你應該了解如何使用資料庫。
非技術性因素
準備好展示你的領導能力、團隊合作能力、解決問題的能力和溝通技巧。
準備面試相關資源
· 破解編程面試Cracking the Code Interview (書)
· Interviewing.io (與工程師一起模擬面試)
· 行為面試 (視頻)
· HackerRank or TripleByte (代碼實踐)
· 建立專業有效的人際關係
長期以來的統計數據表明,最有關係的人往往是最成功的人。當你在人際關係上投資時——無論是專業的還是私人的——你都能最大限度地發掘自己的潛力。
無論再怎麼強調離開你的舒適區和人們面對面的重要性也不為過。參加聚會,參加會議,認識新朋友,在LinkedIn上關注他們。你會驚訝地發現,機遇和善意會經常為你打開大門。
恰當的員工推薦可以增加找到好工作的機會。LinkedIn上的專業人脈可以幫助你和想要進入的行業進行聯繫,並為你指明方向。好好利用這一點!
人脈資源
· Meetup
· 開發人員活動和會議
結語
上文的所有建議都可以歸結為一句話:程式設計師的職業就是不斷學習。
自學讓你成為一名程式設計師,繼續前進與否取決於你的努力程度。在這個過程中享受編程的樂趣,而不是眼高手低。
希望你能從錯誤中吸取教訓,繼續編寫代碼,找到前進的方向!
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範