Re: [請益] 面試如果考coding可以這樣回答嗎?

作者: AmosYang (泛用人型編碼器)   2019-05-05 12:20:52
※ 引述《sorryla (Mr.東)》之銘言:
: 提一個白板面試很重要但常被忽略的東西:寫Test case
: 由前面回文可以看出來有人看到題目就躍躍欲試想要把演算法實作出來給面試者對答案,
: 但是在實際動手寫code之前應該要先想好有哪些問題要解決,還有可能會發生的意外,
: 這樣寫出來的code才會比較robust,也不需要一直塗塗改改而讓面試者扣你分.
: 列出test case除了能夠讓你的演算法設計更經得起考驗,還能夠跟面試者討論如何處理
: 例外,表現出你具備與團隊合作且提出不同解法的能力,例如測資6就可以問說有沒有記
: 憶體限制(可否使用long或浮點數來處理),或是需不需要丟exception等等這種沒有
: 標準答案的問題,然後根據面試者的spec修改你的API design。
: 雖然說有些corner case是跟程式語言本身有關,但是大方向不變,只要能夠提出該語言
: 的一些限制並提出解決方案,基本上就能說服面試者你有足夠的知識去解決問題。
我想從「流程」這個角度來補充 sorryla 的建議 :)
1. 拿到題目,解讀
2. 用「自己的話」複述、解釋一次題目,與出題者確認自己對題目的理解是正確的
3. 找出該題目中
3.1 前提(precondition) / 假設(assumption) / 預設(given)
3.2 歧義(ambiguity) / 特殊情形(edge case)
3.3 基本盤(baseline) / 理智測試(sanity test)
4. 與出題者
* 確認 (3.1), (3.3)
* 討論 (3.2) 的處理方法/要求
5. 「從 (1) 拿到的題目」 加上 「從 (4) 得到的資訊」 才是 完整的題目;視
情況重複 (2)
6. 邊解題邊視情況描述 why & how (所謂 "thinking out loud", 清楚地解釋你
的想法)
7. 寫好後視情況代入 (3.2) 與 (3.3) 來檢查正確性
8. 做好心理準備
* 「只要不是 O(n) 解就QQ」 XD
* 討論時間、空間複雜度(time & space complexity)
* 各種取捨(trade-off) 、變型題
# 軟技能 vs. 硬實力
軟技能 (溝通、應對、協商、說服、等等) 會用在多處,例如 (2), (4), (6), (8)
若單壓重注在「硬實力+刷題」,我覺得風險相對較高。
硬實力會需要軟技能的輔助來展示、表現。
作者: bben900911 (Ben)   2019-05-05 12:32:00
推,沒想到前三篇能引來這篇。這樣想也算是功德一件
作者: alihue (wanda wanda)   2019-05-05 12:35:00
推推,u 質好文
作者: b10007034 (Warren)   2019-05-05 12:44:00
大神回文必看
作者: cutekid (可愛小孩子)   2019-05-05 12:45:00
推(Y)
作者: ian90911 (xopowo)   2019-05-05 13:17:00
推好文
作者: TheOneisNEO (Thomas Anderson)   2019-05-05 14:02:00
nice
作者: agamek900 (洨妹班長)   2019-05-05 16:36:00
真的是沒O(n)就下去 面了一堆發現主管最愛聽用hash做的
作者: aria0520 (紫)   2019-05-05 22:59:00
再來就是O(1) space
作者: Ouranos (å—¨)   2019-05-06 09:11:00
推推~
作者: plsmaop (plsmaop)   2019-05-06 14:00:00
有時候 hash 還不夠,還要 trie,radix tree 這種
作者: fate111085 (學店魯肥宅)   2019-05-06 19:42:00
厲害
作者: freedls (阿嬤覺得你冷)   2019-05-06 21:20:00
很有料XD
作者: genius945 (添財)   2019-05-06 23:56:00
原來這叫間隔重複效應 長知識

Links booklink

Contact Us: admin [ a t ] ucptt.com