分類
發燒車訊

在校生如何面向面試地學習Java,匹馬行天下之思維決定高度篇——大學再努力,培訓機構做兄弟,你的簡歷能幫你爭取到面試機會嗎

    最近我在博客園裡,看到不少在校的同學在學java,而且,在我最近舉辦的一次直播活動中,也有不少在校生同學來提問,java該怎麼學。

    對於那些已經工作的同學,哪怕才工作不久,畢竟也能從項目實踐里總結和探索java的學習途徑和相關方法。但在校生同學由於沒機會接觸實際項目,在學習內容、進階途徑和學成標準這些方面都是兩眼一抹黑,而大學里的內容可能偏重於理論,講述的技術往往也和軟件公司里常用的技術不匹配。

    這就導致了很多上心的在校生,雖然很努力,但到畢業時,才發現自己起早貪黑學成的技能並不能幫他們找到工作。在本文里,就將結合我面試實習生和畢業生的標準,專門給在校生這個群體一些學習Java方面的建議。

1 明確目標,先說下公司面試應屆生的標準

    我最近可能都在大公司,到畢業季,會到一些學校去校招,校招的標準描述起來很簡單:Java方面能幹活,或者能經短期幫帶后能幹活,具體標準如下。

    1 Web框架方面,需要以全棧的形式,了解SSM,或Spring Boot或Spring Cloud從前端到後端的基本語法,至少能在項目經理短期幫助下,能照着別人的例子寫代碼。應屆生候選人只要能講清楚相關框架的語法點和流程即可,最多再附帶說明下mybatis等組件的用法,至於redis,dubbo,根本沒要求。

    2 數據庫方面,能會基本的增刪改查即可,外帶一些基本概念,比如事務怎麼處理,JDBC里批處理怎麼處理。

    3 Java語法(也就是核心方面),其實如果能講清楚SSM等Web框架技能,這塊只要刷題就能過,比如就問些ArrayList和LinkedList的差別,以及多線程等的概念。

    4 人看上去聽話,想法少,學習能力強,責任心強,不是刺頭,這塊其實大多數人都可以達標。

    以上不要求有商業項目經驗,當然如果有,絕對是加分項,而且這還是大公司的面試應屆生的標準。至於一些小公司,或者是一些外包公司,有時候能招到人就阿彌陀佛了(至於有些能力比較強的一本的應屆生願不願意去還難說)。有些在招收應屆生的時候,不少小公司甚至在“項目經驗”方面沒要求,哪怕沒學習項目經驗也不要緊,只會問些網上比較大路的面試題,能說上來即可。

2 面試中大多數應屆生的實際表現

    從面試官角度來看,招收應屆生的標準其實是很低的,對應的,在招初級開發時,多少都需要有商業項目經驗。從這個角度來看,應屆生最好在校期間就找到工作,畢業后兩三個月找不到工作問題還不怎麼大,但如果半年後再找不到工作,那麼到時候被面試的標準就高於“應屆生”的標準了。

    這裏我無意貶低應屆生的水平,畢竟我們都是從這個階段過來的,但從面試情況來看,至少有將近一半的應屆生達不到標準,下面列些具體的表現。

    1 沒有框架開發的經驗,這裏最低要求是能自行搭建個SSM項目,但不少同學根本沒有。

    2 數據庫方面,就知道理論上的增刪改查,甚至不會在MySQL, Oracle和SQL Server平台上運行過SQL語句。

    3 Java核心方面,掌握了一大堆項目里一定不會用的,比如Swing之類的界面編程技術,但該掌握的多線程集合等,一些常用的概念也不清楚。

    論動手能力,有些同學甚至沒有在Eclipse等IDE上運行通Java代碼,或者出了基本的語法錯誤不知道如何自行解決,至於沒有debug調試經驗的,就更加見怪不怪了,而在代碼里需要加必要的try…catch異常處理語句,這就更加鳳毛麟角了。

    在一些一本大學里,理論和實際操作能力較差的同學雖然不多,但也有,就更別提其它大學和大專了。我也和一些大學老師打過交道,也看過一些大學里用的Java和數據庫等編程方面的教材,再結合諸多應屆生在面試時的表現,我的感受是,或許大學階段更會培養學生的理論素養,但大學生朋友在讀大學階段,一定要提升實際的編程能力,包含但不限於(SSM)框架的編程能力,數據庫實際操作能力和Java核心部分代碼的開發和調試能力 。 

3 哪些大學里學到的知識點面試大概率不問(根本不用太費精力看的技術有哪些)

     前幾天我看到篇大學生朋友寫的文章,,或許很多大學生朋友也知道上進,平時也在不斷看各種資料,但可能苦於方法不當,可能有些大學老師也沒真在公司里干過,也沒法給出合適的學習建議,所以導致最終畢業找工作時,能力沒達到基本的期望要求。

    也就是說,大學教育和公司面試需求之間存在差距,這就給一些培訓機構帶來了商機。但培訓機構收的錢也不便宜,而培訓班也不是一定能保證學生能找到工作,關鍵要靠自己。從這裏開始,就將給出有實際操作性的學習建議。

    我最近接觸到不少大學生朋友,發現他們努力正在學的知識,面試時未必會問,也就是說,這些點白學了。之前已經提到了面試的標準,這裏就將結合具體的知識點,列出面試時需要掌握的最低技能標準,除此之外,大概率不會問的。

    1  Java核心方面,集合,多線程,異常處理,IO,JDBC,面向對象技能,大概率會問到,其它的沒提到的,比如圖形化界面,NIO,Socket網絡編程,甚至Applet之類的,不會問到。

    2 數據庫方面,會寫增刪改查的SQL語句,知道存儲過程之類的概念,會通過索引優化查詢條件,會建表,會些諸如子查詢,group by,having,表關聯查詢等基本SQL技能,這裏請注意,至少得用過一種商業化數據庫。

    3 框架方面,需要有Spring+Spring MVC+mybatis框架的實際操作能力(不是商業項目開發能力),至於有Spring Boot或Spring Cloud,那更好了。

    4 綜合技能方面,能知道基本的數據結構知識(線性表外帶排序外帶一些樹的技能),基本的操作系統知識(一般僅限於線程進程概念),基本網絡通訊知識(一般僅限於網絡通訊模型和tcp udp協議),但這僅僅是“需要知道”而已。

     大家其實也可以通過看各種職位描述和招聘需求,看下哪些技能實際上是不會問的,對於這些知識,就不用學,從而把精力用到學實際Java相關技能上。

     這裏需要說明,在大學階段學的很多知識,不能說沒用。比如網絡通訊里的tcp底層通訊細節,這些技能或者要等到工作5年後升級到高級開發或架構師的時候才會用到,而且以高級開發視角觀察需要掌握的通訊協議細節知識,絕對要比大學階段要複雜。

    換句話說,很多技能,在大學階段也就“需要了解有這事”,以在大學階段的經歷,再多用時間學,估計也無法達到“實際項目的需求”,而且等到有實際項目經驗時,再學這類技能也就是一兩周的事情。兩廂一對比,結論就很明確了:在校階段應該更多積累實際開發能力,因為更得靠這個找工作。 

4 用一個月的時間了解Java核心部分的內容

    通過上文,大家大致可以了解到畢業時找工作的目標,如果再不了解,可以實際看下招聘要求,甚至直接多去參加招聘會和面試,總之優先考察實際的開發能力,具體在Java核心部分,該如何高效學習呢?

    1 在電腦上裝jdk,eclipse,別用editplus之類的工具,最好再用eclipse的自動編譯功能。這方面,其實是鍛煉自己的動手搭建環境的能力,工作后,開發是一方面,搭建環境的能力同樣重要。

    2 剛開始,一定得去找兩三本Java入門書,先通過運行現有代碼,理解代碼的含義。別光看書不運行,開始階段,也多運行別人的代碼,別自己敲代碼。這裏建議直接找書,因為相比一些視頻教材,畢竟書上的知識很系統,而且能正式出版的書一般沒代碼問題,能直接運行。不建議自己敲代碼,是因為自己敲代碼時,多少會遇到問題,遇到問題后延誤學習進度是小,因為一直得不到解決從而影響學習信心,甚至終止學習了,事情就大了。

    3 如果找到兩三本Java入門書,一般其中涵蓋的知識系統大多很相似,大家可以先運行一遍所有代碼,這樣就能大致掌握代碼結構和基本知識點,而且由於書上代碼一般問題不大,而且質量也不會低,至少不會有太大的阻礙性問題。

    4 當運行好以後,着重觀察集合,面向對象,多線程,IO處理,JDBC,異常處理相關章節,這個階段,是以掌握API用法為主,在這基本上再看下諸如接口,抽象類,異常處理流程,垃圾回收之類的高級知識點。 

    在上述基礎上,如果可以通過資料的幫助,用Java實現堆棧,鏈表,隊列,散列表,樹等的數據結構,同時操練各種排序算法,這對找工作也有些幫助。

5 用半個月的時間,以MySQL為例,了解數據庫的大致操作

    在數據庫方面,最好也去找本書,同時在MYSQL上實踐。為什麼選MYSQL?因為這比較輕,相比Oracle而言,好安裝,當然如果有條件裝SQL Server之類的,那就更好了。 

    1 在MySQL數據庫上,實踐各種增刪改查的SQL語句,實踐建表,建索引能技巧,同時實踐一下諸如子查詢,with as等等複雜的SQL語句。

    2  用JDBC連同MYSQL,在Java代碼里做各種增刪改查的操作。

    3  在此基礎上,了解諸如索引,範式和鎖等概念,這時候雖然認識也會很膚淺,但至少不會一頭霧水了。

    這樣,在數據庫方面,好歹有實際操作經驗了,這為之後的項目實踐,能打下很好的基礎。

6 用一個月的時間,了解基於Spring的web框架

    面試時更看重的是框架經驗,這塊學習的建議如下。

    1 先通過運行代碼,了解Spring里IOC, AOP,這時應該注意各種配置。

    2 熟悉Spring的基本概念后,可以嘗試跑一個SSM的小例子,這個例子可以非常簡答,就一個頁面也行,但要包含Spring MVC和Mybatis諸多要素,這樣大家好歹能知道框架的構成,在這個基礎上,可以繼續擴展,加些必要的業務,從而進一步了解這個框架。

    在這個階段,還是最好看書上的例子,因為書上的例子一定能通,而且還會帶部署和運行的步驟,還是不建議自己敲代碼,因為SSM框架相對複雜,在這個階段如果自己敲,很有可能會因為問題太多而放棄。

    3 在自己機器上跑通SSM框架的案例后,可以網上找個帶業務的系統,比如圖書管理系統等,從中看些前端和後端交互數據的流程,同時,結合業務看Mybatis里的ORM過程,以及Spring里的常用註解。     

7 在學習過程中,可以避免的誤區

    Java方面,本人按照上述步驟輔導過不少在校的同學,只要肯上心練習,效果不會太差,不過很多同學在實踐過程中會走彎路,這裏列些普遍存在的問題,請大家在操練的過程中盡量避免。

    1 別鑽牛角尖,先面再點。比如有同學對一個知識點不理解,或者一段代碼運行有問題,就會在這個點上耗費很多時間,不解決就不繼續。其實在這個過程中,首先需要全方位掌握SSM框架、Java技術和數據庫,個別點如果有問題,可以跳過,或者一個案例運行不通可以運行其它類似的,總之別在一個點上花費太多的時間。

    2 再啰嗦一下,最好先照着書上代碼運行,開始階段的學習方法是“複製粘貼運行理解”,在自己已經有一定的基礎后,再嘗試自己寫代碼。

    3 在操練SSM項目時,有些同學會照着視頻上提到步驟做,如果有些視頻步驟不對,這樣就會有問題,所以還是建議照着書做。

    4 工具要選對,剛開始就eclipse,或者Idea,別用editplus或命令行。

    上述是方法上的誤區,其實最大的問題出在態度上,上述學習過程持續時間不會短,快則兩三個月,慢則半年,如果中途因為效果不明顯而放棄,那就很可惜了。 

8 有學習項目經驗后,爭取找些商業項目的實踐機會

    按照上述步驟,讓自己擁有最基本的SSM以及其它Java和數據庫相關技能后,要做的絕不是繼續積累學習項目經驗,而是盡可能去找實習的機會,以積累商業項目的經驗。在找實習經驗方面,大家可以參照如下的建議。

    1 在我之前的博文里也提到,大三時,打聽計算機學院里哪些老師和外面公司有合作,一般碩導都有這樣的項目,然後直接去找老師,剛開始不要錢,只求經驗,或許對各位在校生同學而言,這種方式是比較可行的,本人第一個商業項目經驗也是由此得到的。

    2 一般學校里都會安排實習,實習的過程中,一定要重視,這個是實打實的商業項目經驗。

    3 寒暑假,找軟件公司,這可能會比較艱辛,因為在校階段自己非常難找相關實習機會,但要去找。

    4 這個大家根據自己的實際情況自己斟酌:如果報培訓班,多少能積累些項目經驗,但這僅僅是學習項目經驗,不過在培訓班裡,可以找相關老師推薦實習的機會。

    5 如果實在找不到實習的機會,那麼盡可能通過各種渠道,去找商業項目經驗的案例,我知道有些網站有,但不做廣告。雖然靠這種方式積累的商業項目經驗質量就打折扣了,但好歹聊勝於無,而且畢竟很多畢業生,連學習項目經驗都沒。 

    不少在校的同學發現,哪怕實際只幹了三個月的商業項目經驗,自己的技能也會很大程度提升,而且實際的商業項目經驗,會讓大家掌握書本上根本不會多提但項目里一定會用的技能,比如JVM內存調優或多線程併發。從這意義上來講,只要有條件,大學生朋友應該擠破頭去找商業項目的經驗,而不是悠哉游哉地坐在機房裡敲代碼。只要你有商業項目的經驗,哪怕就三個月,找工作時你就有代差優勢。

9 畢業生準備簡歷的要點

    按照上述步驟,大家在畢業時,多少會有些商業項目經驗,再不濟也能有學習項目經驗,請記住,在招聘畢業生時,第一看項目經驗,第二看項目里包含的技能,第三再問算法和理論問題,至於邏輯題和情商題,只供參考。

     對此,畢業生在簡歷中,一定得突出做過的項目經驗,優先挖掘商業項目經驗,實在沒有學習項目也行。如果沒任何項目經驗,那麼找工作時會吃力很多。本文的重點是講學習方法,準備簡歷的技能只是稍微提到。這塊可以參考的之前寫的博文,。如果有時間的話,或許我會再專門針對畢業生朋友,寫篇文章講在java方面,如何準備簡歷和面試,以及如何找工作。 

10 總結:最多堅持半年,技能就會大變樣

    我記得兩年前,我的Python能力僅限於寫hello world,我運行代碼看文檔,辛苦堅持了半年,自認為就達到了出版書的地步,再過了半年,果真就從出版社接到了一本以股票案例講述Python技術的選題,並自認為寫的內容不會誤人子弟。

    我持續關注了一位大學生網友的公眾號,也就是寫了半年多博客,他技術看上去就更專業多了。能堅持不懈地上進,這種精神值得提倡,雖然我工作很久了,但也得時刻警惕,不能懈怠,這也是我肯推薦該公眾號的原因,不僅推薦其內容,更提倡這種精神。

    不光是這位同學,經我培訓的其它很多大學生,也只要肯上心學,最多半年,最短三個月,就能從小白進階到能實際幹活的水平,而且還真能面試進軟件公司幹活。 

    本文雖然長,但其中也是盡我所能,給出大學生朋友若干有實際操作性的學習建議,其實對於其它初學者,本文給出的建議同樣適用。希望本文能幫到大家,最後感謝大家能讀完此文。

版權說明:

    如果要轉載本文,請先徵得本人同意。

 

 

 

 

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※專營大陸空運台灣貨物推薦

台灣空運大陸一條龍服務