歡迎光臨
每天分享高質量文章

一次慘敗的技術面試,竟然獲得了5個高薪Offer!

我叫王小北,我花了 6 個月的時間投入學習程式設計,並和女友一起搬到北京,最終為了一份工作又回到上海。


先給大家介紹一下我的創業背景。在過去的半年裡,我一直在孜孜不倦地修整我的簡歷、打造我的個人專案,其中最亮眼的作品是我建立的 CryptoDasher,這是一種實時追蹤加密貨幣和投資組合價值的工具。我還向中國區塊鏈公司提交了一份參賽作品。



參賽未果後我向一家位於上海的大型諮詢公司申請前端開發的職位,在提交了面試題和第一輪面試後,我被邀請參加技術面試。


技術面試咋準備? 我緊張到跑了好幾趟衛生間,我瘋狂地搜尋著網際網路,在網路上看模擬訪談。



以下是我收集到的一些資源:


  • Cracking the front-end interview

  • David Shariff 2017前端網頁開發麵試準備

  • 每個JavaScript 開發工程師都該知道的十個面試問題

  • Toptal’s list of JavaScript interview questions (JavaScript面試問題清單)

  • Mozilla Developer Network (MDN) (Mozilla 開發者社群)

  • Pramp – a tool for mock interviewing with others (Pramp – 模擬面試練習工具)

  • Github Frontend developer questions collection (Github 前端工程師問題大全)

  • YouTube JS mock interview #1 (YouTube JS 模擬面試 #1)

  • YouTube JS mock interview #2 (YouTube JS 模擬面試 #2)


我埋頭於這些材料準備好久好久,試圖做好萬無一失的準備。如果沒能在面試準備中展現出最優秀的自己,我會生自己的氣——你肯定能理解這種感覺。


技術面試   第一回合

然後就是面試的日子。我在公司的大廳裡見到面試官,隨後去他們辦公室。


起見面試官,要求介紹自己,他們問我一些背景問題,而我談了談開始程式設計時自己覺得最困難的部分,我想要學習哪些型別的技術,以及哪種技術我想分享給別人。


然後技術面試的部分開始了。


首先,他們要求我解釋程式碼。這個任務要求給一個資料集建立分頁並顯示在一個串列中。我用React寫的,然後我開始檢查程式碼,在整個遍歷過程中,面試官會問我問題。


Q:你是否知道什麼是單元測試?哪部分的程式碼可以被單元測試?


A:單元測試是一段程式碼,用於驗證原始碼的模組或某段特定部分是否執行其預期目的,並且未產生不想要的副作用。


我不記得我說了什麼,但我可能把它和整合測試混在一起了。在面試之前,我確實對單元測試和TDD有一定的瞭解,但在當時的情境下我有點糊裡糊塗。



Q:你知道BEM是什麼嗎?你在程式碼中使用的是BEM嗎?


A:我知道BEM是一個用於CSS專案的命名規範,意思是塊、元素、修飾符。我還回答說,我在CSS的類命名中受到了BEM的啟發,但它並不完全是BEM,因為它沒有完全遵循所有的BEM規則。


到目前為止一切都好。然後他們要求我擴充套件功能性,要我執行一種排序機制,接受分頁的資料集,並根據名稱和數字重新排列。我之有幾分鐘時間思考這個問題。


我問了些問題來明確對方的意思,比如我是否應使用內建的JavaScript排序函式,還是構建自己的.被分頁的資料作為物件陣列存在,其中每個物件都有一個包含20個物件的資料陣列,這些物件代表之前建立的那個串列中的每一個專案。我得出了下麵的演演算法:


將每個分頁物件資料陣列組合為一個新陣列。排序新陣列。將排序後的陣列進行分頁,並將元件的狀態設定為新近排序的陣列。


我很快就知道該怎麼做,現在唯一的問題是執行。接下去就是我犯的錯誤了。



我花了太長時間去想明白怎樣合併這些陣列。一個簡單的reduce陳述句就可以做的事情我卻想了各種奇怪的方法。


在面試官討論和督促之後,我終於想起來字串是按照它們的ASCII值排序的。大寫字母的值從65到90,小寫字母的值從97-122。頂部沒有正確排序是因為它有個大寫首字母,因為它們的ASCII值比小寫字母要低,所以會首先排它們。我這輩子都不會再犯這個錯了。



搞明白怎麼回事以後,我立即用.toLowerCase()解決掉了這個問題。

現在還有最後一件事,將已排序的資料傳到分頁函式中。在這裡,我遇到一個問題:分頁函式期望一個Ajax響應,並將每個專案傳給一個formatData函式,該函式將相關的部分分開,並傳回一個新物件。


然而,當我試圖傳遞被排序到這個函式的新陣列時,它就沒有初始的屬性名了,然後函式就會丟擲一個錯誤。


我花了點時間才發現,必須將formatData從分頁函式中移出,然後在資料傳給分頁函式之前就在響應資料上執行它。花了不少時間,不過最終還是解決了。在這個時候,技術面試的程式碼部分已經結束了。


結束之前我們又談了一會兒,不過,面試並未就此結束。我仔細思考整個面試過程,反思自己做錯了哪些地方。


不久之後我收到了這封郵件:


“Hi!我們感謝您的面試,但我們暫時不能向您提供這個職位,因為你在技術方面沒有達到我們的期望。我們喜歡你的背景,相信你能很好地融入團隊,所以我們會就您的技術面試提供詳細的反饋,希望您能在獲得更多程式設計經驗後再次申請我司。”


我做錯了哪些部分?幸運的是,我得到了一份詳細的反饋。



反饋1:


“花太多時間找出如何合併陣列。先線上搜尋而非查詢JavaScript技術檔案(例如:“js array doc”會給出w3schools或mdn,其中列出了函式),並錯誤地使用了這些示例(array.concat傳回一個新陣列)。沒人能記得api中的所有內容,所以善於使用JS或庫的檔案是很重要的。”果然沒有系統的教學容易知識混淆。


教訓:


面試官想要看到你首先能使用MDN(或其他相關的檔案)。他們想看到你能夠找到並閱讀檔案,並基於其中的資訊來執行。


反饋2:


“在排序的任務中,面試者先提出了一種奇怪的手動演演算法。幸好他選擇用JavaScript內建的sort函式,但不確定這是如何工作的,因而必須反覆回去檢查檔案。”


教訓:


沒啥好說的,太明顯了——不過重要說三遍:測試很重要,測試很重要,測試很重要,去學,去搞懂,去用。


被拒絕以後,你總歸會花點時間想想自己在哪些地方能做得有所不同。我在面試前做了很多理論準備。但後來,我希望自己能花更多時間去做,或至少是摻了一點實際的任務,像在Hackerrank或CodeWars裡解演演算法題,或者構建些常見的前端元件,比如排序串列、下拉選單、分頁等等。


就讓我明白一個問題,自學難成專才!

技術面試  第二回合

從失敗中獲取教訓,我這次可做好功課了。


因為我花了整整三個月的時間去進修。


這一次,面試更多地集中在前端的概念討論上。這是一次綜合性面試,我感到面試官很想瞭解我的知識面,知道我的優劣勢所在。


第二天經理給我打電話說我透過了面試,打算給我正式的書面offer。

技術面試可能是個很難受的精神折磨,你會被難倒,被拽出自己的舒適區,不過這是好事,能幫你成長、使你變得更好。


最後的結果我一開始根本沒想到過:進修期間已經有公司相中了我,到最後我有5個offer隨便選。最後我選的是第一家我主動取得了透過技術面試資格的公司,因為我相信他們會是最適合我的。



如果你有所準備,就能迎頭而上。如果你還沒準備好,那麼就去北風網。我進修的推薦地,那裡總會有不知疲倦講課的老師,還有各行各業不同階層的同學,他們時刻準備著,每一位老師都在幫助你恢復元氣,滿懷信心的踏上徵程。


今天,我們帶來了為學員量身打造的零基礎大資料課程。大資料課程是做海量的資料處理和分析,因為網際網路資訊時代的高速發展,大資料開始快速的被應用了起來,90%的企業都在用大資料,大資料將成為未來企業發展的軍事。人才缺口不斷擴大,錢多人少,說的就是大資料從業人士。


本套課程經過北風大資料講師團隊反覆的市場調研與論證,並由眾多一線兼職大資料講師參與強強聯手合作,打造的“國內頂級大資料系統架構師課程”。行業內屈指可數的高階課程。

課程大綱

一、Hadoop大資料開發技術

大資料運維之Linux基礎

大資料開發核心技術

大資料協作框架

大資料Web開發框架

大資料核心開發技術

Spark技術實戰之基礎篇

企業大資料平臺高階應用

大資料高薪面試剖析


一、Python基礎與資料分析

Python基礎與資料分析


二、Java企業級核心應用

深入Java效能調優

JAVA企業級開放必備高階技術


三、分散式叢集、PB級別網站效能最佳化

大資料高併發系統架構實戰方案

大資料高併發伺服器實戰教程

          

四、資料挖掘、分析&機器學習

深入淺出大資料挖掘技術

Lucene4.X實戰類baidu搜尋的大型檔案海量搜尋系統

快速上手資料挖掘之solr搜尋引擎高階教程

SPSS Modeler資料挖掘專案實戰培訓

資料層交換和高效能併發處理

深入淺出Hadoop Mahout資料挖掘實戰

大資料專案實戰之Python金融應用程式設計

雲端計算處理大資料深度、智慧挖掘技術+地震資料挖掘分析

JAVA企業級開放必備高階技術


五、大資料運維&雲端計算技術篇

 Zookeeper從入門到精通

雲端計算Docker從零基礎到專家實戰教程

雲端計算Docker全面專案實戰

深入淺出OpenStack雲端計算平臺管理


六、深度學習、推薦系統&人工智慧

機器學習及實踐

深度學習與TensorFlow實戰

推薦系統

人工智慧(選修)

分散式搜尋引擎Elasticsearch開發(選修)


七、人大資料分析、資料視覺化

Tableau商業智慧與視覺化應用實戰

Echarts從入門到上手實戰(選修)


八、人工智慧大資料企業專案實戰

Hadoop3.0新特性、新魅力【直播】

基於大資料技術推薦系統實戰

基於Storm流計算天貓雙十一作戰室專案實戰

基於人工智慧與深度學習的專案實戰

醫療保險大資料分析與統計推斷專案實戰


九、專案實戰

PB級通用電商網站效能最佳化解決方案

北風網使用者行為分析

驢媽媽旅遊網大型離線資料電商分析平臺

基於美團網的大型離線電商資料分析平臺

基於1號店的電商實時資料分析系統

仿百度搜索實戰

網頁爬蟲、網路小偷

海量資料的索引和實時檢索 — 比比看

電商購物車功能實現(R語言)

文字挖掘(Mathout\中文分詞)

使用Python構建期權分析系統

使用Python構建簡單的演演算法交易系統

地震預警分析系統(Hadoop/資料分析)

Maven+Jenkins、日誌管理ELK、WordPress部落格

大資料爬蟲專案

道路交通實時流量監控預測系統

全面理解阿裡雲上的資料處理和分析(選修)

北風網就業率

每一份努力都值得更好的回報,北風學子經過數月的磨練,現以就業率39%的好成績回饋他們的努力,其實你也可以!


面向崗位


大資料科學家

大資料系統架構師

大資料分析師

大資料挖掘工程師

Hadoop大資料開發工程師

授課方式


方式一:線上點播

(影片+直播答疑+作業+測試+就業推薦)


方式二:線上直播 

(線下麵授課程同步直播)


方式三:線下麵授

註:不管哪種方式,均會簽定包跳槽就業協議。

適合學習物件

有志於轉型從事大資料開發的在職程式員

有志於提升自己的技術水平的1-3歲Java程式員


特別說明:因為本套課程屬於高階課程,我們需要對學員進行入學測試,會針對基礎(Java程式設計)做出相應課程調整。


0元申請大資料分析試聽課

免費領取10G學習資料

點選【閱讀原文】升職加薪!

戳原文,更有料!
贊(0)

分享創造快樂