※ 引述《GGlo5566 (居居囉)》之銘言:
: Onsite的時候,一開始面試官會丟一個敘述相對模糊的題目
: 需要你自己去詢問清楚題目的需求和邊界(需求分析)
: 然後跟面試官說明想法,得出一個雙方都認同的可行解(溝通技巧、知識深度和廣度)
: 接著才是開始實作(Coding能力)
: 實作完dry run一下解法有沒有bug或沒考慮到的case(Testing)
: 最後分析performance,到這邊我們已經有一個work solution了
: 如果時間還夠的話,面試官永遠都可以給你follow up(Scaling)
: 像是題目條件從一維變二維、求可行性變成求具體方案,input從靜態變成streaming
: 解法會不會有不同?為什麼?重點是思路清晰、講得清楚自己在幹嘛
說真的我本來也以為是這樣,但面過一兩次後就知道其實這也是鬼扯
因為top tier一堆老中老印,leetcode刷到看到題目可以告訴你是幾號的
本來如果沒有這堆老中老印的話,事實確實應該是照上面寫的這樣發展的
但是當幾個沒刷到滾瓜爛熟的,進來看到一題Medium或是Hard
然後在那邊跟面試官think out loud,討論一堆解法
最後花30分鐘才解了一題,然後第二題沒解完時間就到了
然後來了一個刷到倒背如流的,每一題出來都15分鐘搞定
問完clarifying questions,再假裝想個一分鐘後,就馬上直奔最佳解
你是面試官要錄取哪個?80%以上會錄取解得快的那個
而且top tier面試之所以很難,除了題目好不好解以外
更大重點是"時間限制"跟"不能有bug",一場45分鐘,扣掉前面5分鐘
40分鐘內你得解2題Medium-Hard或是3題Easy-Medium
相當於Easy超過10分鐘,Medium超過15分鐘,你就差不多要GG了
寫過code的都知道,這時間內要寫出來,而且還要完美無bug
基本上看到題的瞬間,你就要知道最佳解了,否則你肯定超時
而且知道最佳解可能還不夠,code大概寫法你也得背個七七八八
否則卡在中間實作,或是出現小bug,一樣超時或GG
這種考法,請問那些在當場在那邊想解法
然後在那邊think out loud,跟面試官討論的,怎麼可能會過關?
所以最後就是一堆刷手老中老印大量進去囉