原本想分享畢業生和初級程序員如何進大公司的經驗,但後來一想,人各有志,有程序員或許想進成長型或創業型公司或其它類型的公司,因此就乾脆來分享些提高技能和經過面試的技巧,技巧我講,公司你選,兩廂便利。java
畢業生和初級程序員(通常是工做經驗3年如下)大多處於事業的青黃不接的階段,在找工做時每每會遇到缺少實際項目經驗的瓶頸,做爲技術面試官,我也常常在面試過程當中感覺到這些候選人缺少實際經驗的缺陷。不過本人以前作過java兼職培訓老師,也總結了些這批人羣提高實際技能和麪試技能的技巧,最近也老有人來問我這個,因此我就乾脆把這寫成博客文章。linux
公司通常會錄用哪類人?咱們把各類答案概括成一句:須要技術匹配並且有相關項目經驗的人,再簡化一下,作過相關經驗(通常是指商業項目經驗,說再直白點就能掙錢的項目),那麼用到的技術大多和公司要求匹配,也就是說,若是你有相關經驗,那麼和那些光有理論經驗的候選人相比,就有代差優點,因此我在面試候選人時,常常會見到二本甚至三本大學生逆襲的場景。程序員
如何積累商業項目經驗?儘快開始實習,若是能夠,大二暑假就能夠找個軟件公司打工了,若是你有老師在外有項目,那最好也一塊兒作,若是學校安排實習,那更得去。若是實在找不到實習公司,或者也能夠去一些網站接些商業項目的兼職活。web
這裏請注意,通常畢業設計的份量沒商業項目的份量重,那若是你就只有畢業設計的經驗,那隻能和一樣沒商業項目的這羣人一塊兒競爭了。面試
代差優點能給你帶來什麼樣的好處?算法
在校招時,大多數人沒商業項目經驗,但你有,你的簡歷經過初審的可能性就很是大,並且在實際面試時,哪怕你算法基礎知識等問題沒回答好,但只要讓面試官確信你作過商業項目,經過面試的可能性也比無商業項目的人羣要高不少。sql
在經過網站等形式投簡歷時,不少公司其實是要有商業項目經驗的,若是你沒,甚至連面試的機會都沒有,但若是你有實習等的商業項目經驗,那至少你經過初選的可能性就大大提高了。數據庫
我在面試畢業生乃至初級程序員時,感受有過實際項目經驗的人很是少,(這就更驗證了有經驗的人至關有利),並且,這批人經過面試的可能性比3年左右的程序員要小不少。下面我來分析下這羣人的廣泛問題。後端
問題1,商業項目經驗不多,因此簡歷甚至沒法經過篩選,這樣根本得不到面試的機會。性能優化
問題2,即便有些項目組由於着急要人,從而讓一些初級程序員獲得面試機會,但在面試過程當中,這些人每每沒法證實本身真的在項目中用過相關技巧,這些僅有理論經驗的人經過面試的可能性很是小。
問題3:大多數初級程序員每每能經過準備,能知道算法、邏輯題和一些簡單的說辭,沒法證實本身掌握一些工做中必要的技能點,從而沒法證實本身勝任這份工做。
上述問題的結果就是:在我手上經過面試的程序員,八成以上具備3年之上經驗的,其實面試要求不難,能幹活就行,但大多數的初級程序員就是無法證實這點。
針對上述問題,給出的建議是:學習和積累。
1 給本身制定一個明確的目標,工做後3年內儘可能少換,不然就得從頭開始積累。
2 好比目標方向是Java後端開發,那麼在工做中,別得過且過,多跟組裏的前輩學,多掌握些知識點。
3 必定得圍繞「性能優化」這個主題,好比內存性能優化,數據庫優化,多掌握些項目中能用到的優化技能點。
4 哪怕你最近不許備面試,但也得邊工做邊看面試題,最好按期出去面試下。畢竟每一個人在學習過程當中都會走彎路,用句比較流行的話來說就是試錯,經過不斷的面試,能不斷修正本身的學習方向。
這些也是能找到工做的最低標準,Java Core的標準以下。
Java Web方面的要求點大體以下:
而在數據庫方面,最低的要求體如今以下三方面的需求。
第一,針對一類數據庫(好比MYSQL,Oracle,SQL Server等),會基本的增刪改查操做,會用一些基本的函數,會編寫存儲過程觸發器索引等工具。
第二,知道一些基本的對項目開發有幫助的概念,好比範式,索引,分區等。
第三,能編寫一些相對複雜的SQL語句,好比帶鏈接,帶子查詢,嵌套查詢等。
在java web輕量級開發面試教程這本書裏,我對此作了詳細的說明。
我知道,其實大多數的初級程序員都知道上述知識點,但沒法有效地在項目中證實這點,並且,我以前也說了,上述僅僅是最低要求,接下來給出的要點將大大提高各位的面試成率。
這裏給出些準備簡歷時的注意要點。
1 針對每份工做微調簡歷,在發給目標公司的簡歷中,多寫些在該公司職位介紹時出現的關鍵字。
2 少寫不相干的工做經驗,任何經驗都往目標公司的職位要求上靠,好比目標公司的職位是java後端開發,你寫一些linux上項目維護的經驗或數據庫DBA的相關經驗尚屬搭邊,但若是寫上測試或實施等經驗,就屬於不相干了。
3 少寫關於項目業務介紹的內容,由於目標公司不關心。
4 這個是關鍵,必定得結合業務實際,寫上本身有過相關技能的經驗。
好比目標公司要求有數據庫優化的經驗,那你就能夠寫,在xx項目裏,對sql的執行時間有要求,因此在訂單管理模塊裏,我用到了xx技術,實現了sql優化效果。
相似的文字要多,涉及到的項目年限也請儘量地長。這樣當篩選簡歷的人和麪試官看到你的簡歷時,不禁得不信你第一有實踐項目經驗,第二在實踐經驗中用過相關技術。
而在面試時,技術面試官必定會問到職位要求裏的相關技能,你事先得準備。若是你能在面試過程當中有條理地說出你是如何在項目裏用到相關技術的,那麼這樣的說服力要比你單純說「你知道「要強不少,甚至有些面試官聽到你的這些敘述後,會少問或不問相關問題。
這些證據能夠出如今簡歷中,固然你更應該在面試中說出來。
我在面試中,每每會不得不從10我的符合要求的人裏挑選出3人。(按我說10我的全要算了,但不行,預算不夠)。這樣若是某個候選人表現出優於別人的技能,那麼這我的就必定是在同等條件裏優先考慮的。
以下是Java Core方面能夠準備的亮點。
在下表裏,咱們列了些在數據庫方面能夠準備的亮點。
下面裏列了Java Web方面能夠準備的亮點
此外,你們還能夠在Linux使用技能以及項目管理軟件的使用經驗方面展現本身的亮點。這裏請注意,必定找合適的機會「順帶」地說,若是沒機會寧肯別說,更不能仗着有所準備就直接自說自話地說。不然的話,反倒可能會獲得「表達能力不清晰」或「敘述條理混亂」等的不良評價。