1. 程式人生 > >7年.NET面試Java的尷尬歷程

7年.NET面試Java的尷尬歷程

  先簡單介紹LZ 現如今的情況,LZ 1992年出生,2012年實習,大專學渣一枚,實習期直接被校企合作直招到公司做.NET開發,現如今在某三線城市做後端技術經理,7年開發經驗(5年.Net,2年.NET、JAVA混合開發),寫下此篇文章只是希望把近年來遇到坑和心中正在迷惑的同學能夠在看完LZ的遭遇能有一個前車之鑑吧。首先宣告本文沒有批判任何語言的思想,只是為了在如今社會,求得一席之地能養家餬口而已。接下來LZ會以實際面試經歷講述這一過程中的尷尬與無奈.

  事情源自於2017年初,.NET CORE剛剛興起的時刻,這時LZ正面臨職業技術瓶頸,為了打破瓶頸決定新學習JAVA語言(PS:當時.NET CORE剛剛發起,社群輪子和成熟的案例資源不夠充足,LZ期望往高併發、大資料方向轉型學習),所以找了我大學的好基友要了一套最基礎的JAVA的開發框架,秉承先會用再深入的原則,結構如下:

  依據.NET萬能三層架構的原理,並且在簡單學習了eclipse 的使用方法,jdk、maven、tomcat的配置,很快一個框架輪子就建設起來了(spring mvc、mybatis),有了框架剩下的就是學習這些元件如何使用,基本業務程式碼編寫沒有問題,在這套框架下我們內部兩個小專案優先使用併成功上線,tomcat都部署在windows伺服器上,專案本身多大的QPS,也都是單機部署,這樣子LZ天真覺得使用JAVA開發也能熟能生巧(PS:沒有這樣的自我滿足也不會有後面第一次面試JAVA的尷尬)。在這樣的一度滿足之下LZ決定第一次出去面試JAVA高階開發試試水。

 面試第一坑(簡歷問題)

 有些同學可能會覺得擁有混合開發經驗其實是一種職業優勢吧,畢竟你懂兩門開發語言(C#、JAVA),但是在JAVA生態圈內,大部分的JAVA中高階鄙視.NET的不在少數,包括外行HR認定的名詞也只有"JAVA",所以切記不要在簡歷上寫你的.NET經驗大於JAVA開發經驗,,否則就算過了外行HR的關,也會被那些JAVA技術面試官在篩選的時候所PASS,從而面試機會都不會給你。

  後來經過大學好基友的提醒,把簡歷改成2年.NET開發,5年JAVA開發,才能陸續收到面試通知。

  面試第二坑(基礎知識、資料結構)

  .NET招聘者眾所周知,近年來.NET面試者日益減少,優秀.NETer開發更是少之又少,尤其在各大高校取消C#這門課程之後,.NETer的招聘更是難上加難,所以在面試的時候自然而然就會降低要求,基本只要求思路清晰,上手快,能有創新和開闊性思維就更優的招聘方法來篩選求職者,這樣子其實就更加造成了.Net開發人員對基礎知識的貧乏,能用個List、陣列基本就能滿足大部分企業CRUD的場景了(PS:在三線城市更加能體現一個.NET的開發人員的人際圈關係絕對不會超過2個人)。所以LZ基於這樣的慣性思想,事先也沒有任何準備,就直接投了xxxx教育科技有限公司,上來就把LZ打蒙了。大概內容如下:

  面試官:您好,請先做個自我介紹。

  我:xxxx,幾年開發經驗,在公司負責電商等核心開發,等等.....

  面試官:看你面試JAVA高階開發,那應該對spring很熟吧,從spring mvc角度切入講解下spring 容器初始化過程,這期間BeanFactory是幹什麼的,ApplicationContext是幹什麼的,Spring中有哪些設計模式,如果讓你來實現spring框架 ,你有什麼思路。

  我:..... ,除了會使用spring框架,和知道IOC的原理之外,其他相關spring 原始碼基本都沒研究過啊。此處LZ內心就已經開始慌張了。

  面試官:看我回答不出來,表面笑笑,估計肯定內心一篇鄙視,繼續詢問hashmap,hashtable看過原始碼麼。怎麼解決hash碰撞,1.7中hashmap實現和1.8實現有何區別,hashmap中,為何連結串列達到一定大小紅要轉為紅黑樹等....

  我:心中繼續mmb,只能繼續支支吾吾答不出來。

  很快這輪面試就結束了,LZ記得出來之後 ,當時是冬天零下幾度,後背都被冷汗打溼了,不過雖然被虐還是拿到了中級JAVA開發的offer。因為這次LZ心裡就知道自己欠缺的內容了。這裡也揭示一個面試者的套路,當你對簡歷上的內容能夠熟練回答出來的時候,很快面試官就會跳過,遇到稍微你回答不出來的內容時,他會給你死磕到底,打亂你的思維,摧毀你心底的防線,其實說白了就是為了壓求職者的工資而已,更有甚者LZ有次面試,面試官非要吧LocalDateTime這個類中涉及到的方法和使用規則給他說一遍,在這個問題上沉寂了將近5分鐘。(PS,工具類在使用的時候我們都是看方法引數和說明來使用了,除了常用的誰能全說出來完呢)

  面試第三坑(競爭壓力大,起點高)

  每年湧入it市場的JAVA求職者多如牛毛,很多同學在求職過程中,運氣、實力缺一不可,相比LZ這樣的大專學渣想在這樣的市場求得一席之地更加困難,置於說能力比學歷重要的話真的只能仁者見仁,智者見智了(呵呵),現在面試造火箭,入職擰螺絲已成常態,HR和企業在眾多的java求職者中如何快速篩選,只能通過其求職者的個人亮點,能不能“造火箭”來看了,這其實也是企業招聘慢慢演變出來的,也能看出JAVA的競爭壓力,但反觀.NET市場,因為.NET CORE興起,求職者鳳毛麟角,在北上廣企業也是有願意高薪吸引高階人才的,市場出現這樣的極端,也可以看成.NET 環境出現轉機,但是在LZ三線城市內,某鉤上刷出不到3頁.NET招聘,和15頁+的java招聘的對比也是心中無可奈何。大部分同學可以說LZ去北上廣啊,但是家在這兒,人總要顧家,不到萬不得已都不想背井離鄉,遠離妻兒與父母,現實也都有很多無奈。

  生活不易,而作為IT開發人員,如果想要保持住眼前的穩定,只能不斷學習,想.NET轉JAVA的同學也都是至少3年+的工作經驗了,看到LZ的尷尬經歷希望能有一絲自己的想法,千萬不要被旁人左右。企業轉型是為了生存,而我們的轉型(.NETCORE、JAVA)也是同樣道理,至於35歲以後,相信人的經歷和成熟也能使自己做出正確的判斷了吧。

  最後附上LZ近兩年在看的書籍。