原文:How to Land a Development Job Without Experience
做者:Paddy Sherry
譯者:LeviDing
聲明:轉載請註明出處。前端
許多開發人員在找工做的時候,雖然知足了對方所要求的理論技能,可是缺少實際的開發經驗,這讓僱主在是否僱用你這個問題上猶豫不決。在這篇文章中,具備豐富招聘經驗的 Paddy Sherry 爲你提供了一些指南,來幫助你提升找到工做的體會。web
對於許多年輕的計算機或 IT 相關專業畢業生,在沒有實際項目開發經驗的狀況下找到第一份全職工做多是你在職業生涯中遇到的最大的挑戰。面試
當你剛畢業的時候,你很容易認爲本身知道超級多德有關軟件開發的知識,而且可以順利地找到一份工做。你可能在學校的成績很高,作了一個了不得的畢業設計,而且研究了最流行的技術和 JavaScript 庫。數據庫
然而,除非你在十幾歲的時候就展示出了超凡的編程能力,而且已經與一些僱主創建了聯繫或者有在某公司的實習經歷。不然你在找第一份工做的時候都是要花費一些時間和精力的。編程
現實中的 Web 和軟件開發和你在學校那種環境下所學的是徹底不一樣的。c#
可能你已經在學校和同窗們作過週期長達12周的項目,可是真正工做中的團隊協做與你在學校中經歷的協做有着不少不一樣的地方。在團隊中,每一位成員都彼此團結一致,爲項目的交付而努力。這就意味着你必需要理解好在項目中負責的那部分,並按時向代碼庫中提交符合規範的代碼,在規定時間內進行交付,同時須要確保你負責的功能在全部環境中都能很好地發揮做用,而不只僅是你的本地機器。後端
在實際工做中,不少項目是前人作好的,那麼即便對一個經驗豐富的工程師來講立刻去修改和使用這些代碼也是十分困難的。學習項目結構,理解前人的代碼並在不破壞項目其餘地方的基礎上修改代碼是有難度的。公司在花錢和時間來找新員工,因此他們不想在試用期的時候就在你這樣一個初級開發人員身上花費精力。設計模式
在你本身或者學校的項目中對 bug 的容忍度仍是比較大的。可是這些 bug 在現實的工做中則是絕對不能容忍的。公司的整個軟件發佈流程的任何一個環節都涉及到公司的利益,在整個軟件發佈完成前,你的任何 bug 均可能影響公司的收入和形象。產品的每個版本都須要進行相關測試,要保證產品具備較高的性能,較高的安全性和可拓展性。這也就須要你對產品所涉及的領域和產品開發過程當中必要的測試等內容有很好的把控。在你職業生涯之初時你很難全面的掌握這些知識。安全
綜上所述,你能夠去認真的提升本身以上幾個方面的能力。當你再發現有公司招聘初級開發人員的時候,你所掌握的這些將會成爲你的優點。服務器
五花八門的信息、計算等相關課程只能讓你對 web 開發、軟件工程、數據庫、網絡、用戶體驗、架構和業務發展等方面淺嘗輒止。剛畢業的求職者們的一個常見錯誤就是把這技術通通羅列出來。
任何一個招聘人員,當看到寫着精通 Java、c#、Python、PHP、Ruby、Javascript 等的時候都會堅決果斷的將注意力轉移到下一份簡歷。你可能擅長其中的一個或兩個,可是精通那麼多種編程語言遠不是你一個初級開發者所能達到的。
縮小你的技能範圍,決定好你要主攻哪一種編程語言。
由於後端語言不太容易改變,因此若是你選擇軟件開發方向,選擇一個語法嚴格的語言(如 Java、c# 或 Python)比較好。若是你想選擇 Web 開發方向,那就選擇 PHP 和 Ruby。這些將是你職業生涯的基礎。再學習一些前端的知識如 JavaScript,你將成爲一名全棧工程師。
你縮小了你的技能範圍,可是這代表了你對某項技術更加的專一,同時在你接下來的職業生涯中,你能夠去選擇專攻前端仍是後端。
僱主更喜歡可以靈活應變的員工(也就是讓你幹啥你就能幹啥唄)。
面試官不會問你在大學學習了那幾個方面的只是,由於這樣很難在面試中真正瞭解你的技術水平。他們想知道你的開發經驗,雖然可能你的經驗並不豐富,可是你爲本身作做品集的過程也是一個開發經驗提高的過程。
若是你沒有任何做品來展現在你的做品集上那也不要緊。註冊一個域名,搭建一個服務器,安裝一個 CMS,建立一個帳戶,搜索引擎提交,添加谷歌分析等都是創建一個網站的必要組成部分。在這個階段,網站流量的獲取和影響力不是你主要考慮的東西。
若是你已經創建了一個我的網站,那麼極可能你的朋友或者家人瞭解到也有別人有相似的需求,因此這就又是一個豐富你做品的機會啊。這將讓你有機會在爲別人幹活的同時不斷歷練本身。這也讓你更接近實際的項目開發,同時還提供了一個相對沒有風險的提升技能的機會。
經過以上這些經歷,將使你在面試中有東西可說,同時若是面試官認爲他們有一些小網站你能夠來作,那你的表現就更有可能給面試官留下深入的印象。
在你搭建我的網站的過程當中可能會遇到一些這樣或那樣的問題,而這些問題一般能夠經過一個小插件或者 JavaScript 庫解決。然而若是你沒找到可用的解決方案或者你有須要進一步開發的解決方法,那麼這就是一個超過與你同水平的開發人員的好機會。
而後你須要找到一種方法來解決這個問題,再對其進行包裝,讓用戶能夠很方便的使用。例如一個 WordPress 插件或者開源的 GitHub 項目。
這將會進一步提高你你的技能水平。由於你已經從爲本身作小東西轉變到了獨立建立項目。可以去思考其餘產品或者設計師的需求。你的插件和代碼有機會被收入到更大的項目當中。
這就是可以吸引面試官的一個亮點,由於你作的這些更接近實際的開發。在一個真正的開發團隊中進行開發時,你會負責一個大的應用程序的一小部分,你要確保你的代碼在集成到項目中時不會出現任何問題。
另外的一個好處就是,你能夠對你插件的使用進行收費,做爲你努力賺取的一點額外收入。
除了技術能力,僱主還但願看到可以證實熱愛你的工做的證據,由於如今技術變化的太快了,你必須可以多多的投入我的時間,來提高你的知識。你須要可以瞭解到新興的框架或工具等的變化趨勢。最好的方法是閱讀博客,多逛一逛軟件開發網站。當你在其中可以有必定的貢獻的時候,你就能夠去作一些評論,提供一些你的想法。若是你能幫別人解決一些問題,那你的社區貢獻度就會飆升。
你可能會認爲僱主在篩選候選人時不會在乎這一點,然而他們會。去查看你在 LinkedIn、GitHub、Stack Overflow 等帳號致力於你的研究方向的證據的公司並不罕見。頂級團隊甚至會要求求職者在 Stack Overflow 社區中貢獻度不能低於多少值。由於沒有什麼可以比從你爲其餘工程師提供的建議中更能證實你的水平了。
把你全部的代碼都放到網上,讓全世界均可以看到。這將會讓你有更強的批判性思惟和分析能力。同行對你代碼的評論和提出的問題是大家開發團隊來發現錯誤並及時修復錯誤來保證產品質量的重要方式。若是你早就習慣了這一點,你就會發如今進行代碼審查時不會有任何問題,而且你會在商業環境中有建設性地反饋意見。
同時,這也提供了一種來看你寫的代碼的方式。你解決過的問題和你作過的項目說來容易,但當一個高級工程師看了你的代碼後可以在另外一個層面上增長他對你開發能力的信任程度。
你潛在的團隊成員也有機會去閱讀和檢查你的代碼,你的設計模式,和你清晰地代碼提交記錄。最重要的是,它代表你熟悉版本控制,軟件產品的核心以及團隊的創建。
畢業後在沒有實際項目開發經驗的狀況下找到你的第一份工做是一個艱鉅的任務。但這也有行之有效的方法來提升和吸引僱主的注意力。
選擇一個後端和前端語言,建立一個網站,而後作一個插件。多看一些博客和網站,並作一些評論,提供一些你的想法,不要懼怕別人會說什麼。
把你所作的項目和實用的小工具等都放到 GitHub 上。
記住每一個人都同樣,擁有等量的資源和機會。參照本文中的要點,在你有耐心的時候好好堅持下去,最終必定會獲得高薪的工做機會的。
歡迎掃描上方二維碼關注 公衆號: LeviDing 訂閱實時動態。
本文首發於個人 我的網站 LeviDing ,更多內容歡迎關注個人我的網站。