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

看板Soft_Job作者 (泛用人型編碼器)時間5年前 (2019/05/05 12:21), 5年前編輯推噓13(1300)
留言13則, 13人參與, 5年前最新討論串6/10 (看更多)
※ 引述《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) 若單壓重注在「硬實力+刷題」,我覺得風險相對較高。 硬實力會需要軟技能的輔助來展示、表現。 -- 個人 雜談、學習、英語、軟體 https://www.facebook.com/tw.yang.30 https://www.facebook.com/30abysses/ https://twitter.com/twy30 http://www.30abysses.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.56.13.184 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1557030063.A.E23.html ※ 編輯: AmosYang (136.56.13.184), 05/05/2019 12:24:53 # 解題、刷題、出題 以下是我的個人經驗,不見得人人都有餘裕與機會去複製,寫出來做為參考。 我在唸大學時,學校有開一節 1 學分的課 (一般課程是 3 學分) ,讓對程式競 賽(ACM ICPC)有興趣的學生能集合起來「玩」。 因為覺得很好玩,所以我相當熟衷於參與該課,久了就跟教授混熟了,就開始做助 教(義工)的事務,然後就有機會參與「出練習題」的過程;有的時候是拿過去比賽 的題目來做,有的時候是自己設計題目。 現在回想起來,就像是「有了『坐在面試桌另一邊』的經驗後,才對整個面試流程 有更完整的認識」;參與過「出題、設計題目」的過程後,感覺對「題型、解題方 向」更能掌握。 也就是,「親自設置過題目中的陷井 (如上述的 3.1, 3.2, 3.3) 」後,以後就比 較能察覺到「別人出在它的題目中的陷井」 XD 也更能察覺到出題者心理在想什麼 。 但,如這段開頭所述,這條路不是人人都有餘裕與機會去複製;我在第一次正式工 作面試白板題前,有至少 6~8 年的時間可以「玩」 ACM ICPC 程度的題目、有時 間利用「間隔重複」效應 ( https://en.wikipedia.org/wiki/Spaced_repetition ) 再加上當年藉助教身份之便,能就近觀察其它學生的反應,從完全不同的角度看「 解題」這件事,看到自己平時難以察覺的自己的思考偏誤,教學相長,我覺得蠻有 幫助的。 ※ 編輯: AmosYang (136.56.13.184), 05/05/2019 12:28:52 ※ 編輯: AmosYang (136.56.13.184), 05/05/2019 12:29:29

05/05 12:32, 5年前 , 1F
推,沒想到前三篇能引來這篇。這樣想也算是功德一件
05/05 12:32, 1F

05/05 12:35, 5年前 , 2F
推推,u 質好文
05/05 12:35, 2F

05/05 12:44, 5年前 , 3F
大神回文必看
05/05 12:44, 3F

05/05 12:45, 5年前 , 4F
推(Y)
05/05 12:45, 4F

05/05 13:17, 5年前 , 5F
推好文
05/05 13:17, 5F

05/05 14:02, 5年前 , 6F
nice
05/05 14:02, 6F

05/05 16:36, 5年前 , 7F
真的是沒O(n)就下去 面了一堆發現主管最愛聽用hash做的
05/05 16:36, 7F

05/05 22:59, 5年前 , 8F
再來就是O(1) space
05/05 22:59, 8F
設計對白: 「要 O(1) 呀,總目標就是要 O(1) ,我們所做的一切就是要 O(1) 。這個 O(n) 是其中之一,謝謝。」 XD ※ 編輯: AmosYang (136.56.13.184), 05/06/2019 04:59:48

05/06 09:11, 5年前 , 9F
推推~
05/06 09:11, 9F

05/06 14:00, 5年前 , 10F
有時候 hash 還不夠,還要 trie,radix tree 這種
05/06 14:00, 10F

05/06 19:42, 5年前 , 11F
厲害
05/06 19:42, 11F

05/06 21:20, 5年前 , 12F
很有料XD
05/06 21:20, 12F

05/06 23:56, 5年前 , 13F
原來這叫間隔重複效應 長知識
05/06 23:56, 13F
文章代碼(AID): #1SpcIluZ (Soft_Job)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 10 篇):
文章代碼(AID): #1SpcIluZ (Soft_Job)