看到團隊最近做的一個技術實習生面試實體,很有意思,
面試官是我們創新工場南京研究院的馮霽博士,來面試的是一個剛讀完大二上學期計算機課程的學生,
微信公眾號:王詠剛
馮霽的面試題挺簡單的:
梯度下降已經二百年了,為什么上世紀80年代的反向傳播演算法會被認為是人工智能技術發展的里程碑?前人難道不知道梯度下降?與硬做梯度下降相比,1986年提出的反向傳播演算法多了些什么?
這本是一個AI演算法面試的熱身題,熟悉深度學習基礎知識的隨口就可說出標準答案,沒想到小伙子雖來自計算機專業,卻還沒來得及系統學習機器學習、深度學習知識,如果就此結束面試,給小伙子一封拒信,似乎也說得過去,但馮霽換了個處理方法:給小伙子一晚上時間去調研并寫出報告,
小伙子連夜查資料、做調研,知道反向傳播是通過動態規劃來做梯度下降,復雜度由此降低到了線性,第二天,他給出了一份四頁紙的報告,報告的邏輯很清晰,從問題描述,到扼要回答,再到具體演算法梳理,時間復雜度推理,最后還附上了歷史資料及其他類似目的的優化演算法簡述,
其實,用一晚上時間做出調研并給出答案不算啥難事,任何一所大學計算機專業的本科學生都應具備這項基本素質,但這位同學所寫的報告不僅給出了答案,還展示了很不錯的資訊梳理和表達能力——通過網路查詢到的知識,被他組織成了自己的語言和邏輯,廢話不多,條理清晰,其中的手繪示意圖和手寫公式、注釋也挺見功力,
大一大二學生,都是計算機科學領域的新手,正在入門和構建知識體系的階段,我們很難通過一大批知識性問題來簡單評估他們的能力水平,換句話說,這個階段的孩子,最重要的不是學過和記住什么樣的知識,而是是否掌握了快速學習知識并構建適合于自己的認知框架,以便將知識梳理成有序脈絡的技能,
馮霽面試的本就是個知識性問題,但候選人答不出時,馮霽轉而考察候選人快速學習知識、有序梳理知識、清晰表達知識的能力——這是面試官應該做的事情,
我自己在很多年前也大量帶實習生,那時,有一批來自北大清華等名校的大一大二實習生,他們從能力特質上可明顯分成兩類:
不會學習也不會梳理知識的;
既會學習又會梳理知識的,
頭一類實習生看上去什么都會一點兒,但明顯缺少系統化的學習方法和適合自己的認知框架,比如,有位大二的實習生寫代碼很快,做一個復雜的資料流邏輯時,東看看Stack Overflow,西看看Code Search,不一會兒就把七八個資料處理環節寫好,拼裝成完整的資料作業流,但他做出來的資料處理流程效率太低,既耗時又耗資源,我當時建議他系統學習一下分布式資料處理的基礎知識與成熟的理論技巧,然后從整體角度思考下有沒有根本性的優化方法,而不是每個環節各自為戰,相互掣肘,可惜那個實習生缺少耐心,每次都是翻翻相關網頁,就回頭改寫代碼,一直游離在合理的解決問題思路之外,
第二類實習生無論當前掌握的知識多少,他們都有能力在短時間內進入到一個新的領域,建立起適合自己的知識脈絡,比如,我曾經帶著一位大二的實習生寫Wikitext(就是Wikipedia內容寫作時使用的標記語言)的語意分析器和宏擴展器,那位實習生從沒接觸過標記語言的決議演算法,也沒深入學習過編譯原理之類的系統知識,一開始仿照現成的代碼做作業,總是不得其法,欲速而不達,沒多久,他就悟出磨刀不誤砍柴工的道理,先暫停編程,花了四五天的工夫去系統學習標記語言決議相關的技術,做了好幾個練習用的小程式,我記得,他也像馮霽面試的實習生候選人那樣,整理出了一份有邏輯,表達清晰,層次分明的學習筆記,后續的作業,他做起來就既快又好了,他甚至還根據自己的學習筆記提出了一項不錯的演算法改進建議并付諸實踐,
如果有兩個軟體研發團隊,前一個團隊經驗豐富,但學習知識和梳理知識的能力不足,后一個團隊初出茅廬,但學習知識和梳理知識的能力較強,那我是更愿意帶后一個團隊的,要做最前沿、最有挑戰、最容易形成技術壁壘的事情,單靠死記硬背的知識以及熬時間熬出來的經驗是沒太大用處的,
希望對大家有幫助~
如果你想更好的提升你的編程能力,好好學習C/C++編程知識,以后努力成為高薪軟體開發工程師的話!
C語言C++編程學習交流圈子,QQ群464501141【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:

編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257666.html
標籤:其他
上一篇:職場經驗 | 順利通過面試之后,接下來如何平穩走過試用期?
下一篇:802.11ax理論速率計算
