看板 Soft_Job 關於我們 聯絡資訊
一個剛結束面試地獄的人來分享一下個人心得,不過可能不適用於台灣職場... 很多人都以為面試跟考試一樣,給你一個題目,寫出正確答案就拿滿分, 然後拼命地刷累積題數,深怕考試考到自己沒看過的題目就掛掉。 但其實面試結果的評量並不是只有一個面向,並不是說你寫對就過,寫錯就沒過, 而是分成好幾個訊號來做評分: 1. 溝通能力: 我很喜歡敝公司人資找我去面試前說的一句話,他說「不要把面試官當考官, 而是把他當同事。」,面試其實就是讓面試官來評量看看你適不適合當他的同事。 當有一個新的問題出現時,你要怎麼和你的組員一起解決那個問題?你是不是可以跟 同事保持專業的討論,包容新的想法,不讓個人情緒影響工作? 所以當白板題出來時,第一件事情不是寫code,而是先跟面試官討論想法,確定問題 是否是你理解的那樣,然後提出你想到的解法,分析優缺點,是否有corner case, 最後雙方都同意了之後才需要開始寫code。 2. 系統性地解決問題的能力: 工程師最有價值的地方其實是找出解決問題的方法,而且可以系統化地運用工具去解決。 考演算法白板題最大的好處就在於這些題目通常scope不大,45分鐘或1小時通常就可以 提出一些解法。演算法本身就是一種工具,他們的存在就是為了解決一些常見的問題。 系統設計的題目也是要看你如何解決問題,只是題目更加開放性,通常不可能在短時間 內就提出完美的作法(現實生活中也不會有完美的做法),但可以提出一個大方向, 並對其中幾個部分有更深度的了解。 3. 化抽象為具體的能力: 身為一個碼農,要能把code寫出來是非常重要的事情,當你提出了做法的時候,你還需要 把你的想法轉化成實際的程式碼才行,如果你講得一口好演算法卻寫不出來,就很容易被 當作只會說說的人。另外,概念和實作總會有一點差距,例如程式語言的限制,機器資源 的限制等等,這些都是在面試寫code中很好的觀察與討論的點。 4. 產出具有Industrial standard結果的能力 這個對剛畢業的人比較比較無法體會。雖然每一家公司都有自己的標準,但還是一些共同 的基準可以當參考。如果你是個軟體工程師,從你寫的code裡面多少可以看出來是否達到 低標。最簡單的就是變數命名是否有意義,程式碼是否足夠精簡,沒有不必要的code等等 ,現場考寫code的話可以讓面試官更快的得知這個訊息。 綜合來說,面試考現場寫code算是一個對公司來說CP值很高的作法,能獲得的訊號多,花 的時間又相對少,找進來的人又大多符合預期,所以很多公司還是會採取這樣的方式。至 於台灣的公司是不是只學半套就不知道了... 回到原文問的問題,刷leetcode的重點絕對不是刷了幾遍刷了幾題,而是你是否因為刷題 而改進你的“錄取我吧”的信號(第2和第3點)。比起題數,更應該注意的是你是否因為 這題而讓你對工具(演算法)的使用更加熟練,進而拿它來解決新問題。雖然目前題目數 已經增加到900題,但絕大多數題目都還是用常見的工具去處理,例如BFS, DFS, sort, hash, binary search等等。如何能夠將這些東西用在提出解法,並且熟練的實作出來, 才是寫leetcode更重要的意義。之前一畝三分地有個題霸各種刷好刷滿,面試幾乎全都 秒寫最佳解,卻一個offer都還沒拿到。反而有許多寫2.300題的人拿了不少offer。 不能否認的確有些人靠著刷題背答案再加上運氣好遇到只出題庫的面試官而拿到offer, 但是不該把這些特例當作常態。沒有一個面試的系統是完美的,其中有很多trade off, 但是只要錄取進來的能有80%是符合預期的就已經很不錯了,剩下的就是利用淘汰機制 來處理掉面試系統過濾不掉的人。 至於有些人說考這些不如考工作上會用到的東西,我個人認為這是很困難的事情,因為 不同公司、不同部門、甚至不同人用的工具就有可能差很多,而且沒有兩個職缺需要的 東西是一模一樣的。即使是同樣的framework來說,面試官可能隨手考一個他最近剛用到 的function但你可能從來沒看過,這樣一來就無法評斷一個人解決問題的能力,而只能 知道這個人有沒有用過某種特定的東西而已,這種結果對於找正確的人進來也不會有太大 的幫助。 最後還是聲明一下,以上是個人在北美面試的經驗,台灣職場可能不適用QQ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 104.132.51.89 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1545435337.A.B03.html
poc7667: 好文 收藏了 12/22 07:49
gofigure: 從上面一串推文就知道 還是一堆死讀書的思維 不懂溝通 12/22 07:54
Y78: 好文推推 12/22 08:11
andy188: 推 12/22 08:17
cjamhe01385: 推~當同事來談那句很不錯 12/22 08:19
gofigure: 其實這邊把奧義講出來了 心態對了 offer跟著來 12/22 08:25
pg30123: 推 12/22 08:50
Gaitz: 好文 給推 12/22 08:51
es8603: 推 12/22 08:57
yamakazi: 還要刷兩三百題才拿得到offer 這邊會說刷三百題浪費時間 12/22 09:19
yamakazi: 真的要刷三百題 full time也要1~3個月 這邊只會說工作用 12/22 09:21
yamakazi: 不到浪費時間 對寫code沒幫助 12/22 09:21
yamakazi: https://goo.gl/14vAP8 full time 八百題 半年 這個太 12/22 09:24
yamakazi: 狂 照著做很難 所以我覺得刷三百題起碼要半年 12/22 09:26
yamakazi: 整天說刷題浪費時間的不可能叫他去刷半年三百題 12/22 09:26
yamakazi: 這邊的風向是 面試只能問過去工作經驗 聊聊天就拿offer 12/22 09:31
yamakazi: 面試前刷三十題easy就堪用 考超過這些範圍的公司就是自 12/22 09:32
yamakazi: 以為是+浪費考生時間 12/22 09:32
yamakazi: "我資深工程師耶 居然問我BST怎麼實作 API call一下就好 12/22 09:34
yamakazi: 原理google找一下就有的東西 問我這個浪費時間" 12/22 09:34
yamakazi: "現實工作中有誰會真的自己實作BST 工作又用不到" 這樣 12/22 09:35
GX90160SS: 因為是兩個世界的人啊,樓上寫韌體、驅動、演算法的, 12/22 09:45
GX90160SS: 考這些本來就很正常,App、Web前端應用的真的很少用到 12/22 09:45
GX90160SS: 啦 12/22 09:45
GX90160SS: 後者更加注重對框架的熟悉程度、程式碼撰寫風格、可維 12/22 09:48
GX90160SS: 護性和設計模式,這些都用不到演算法 12/22 09:48
acer1832a: 推第三點,個人覺得這一點很重要。十年前還是大學生時 12/22 09:50
acer1832a: 有的人資料結構考試都80、90以上。剛好那時數獨剛流行 12/22 09:51
acer1832a: 老師出作業,叫大家寫程式來解數獨(低難易度題目) 12/22 09:54
yamakazi: 所以我說這篇刷三百題還是太多 現在風向是刷超過三十題 12/22 10:02
yamakazi: 就是浪費時間 12/22 10:02
acer1832a: 結果大概只有五個人寫得出來,其它人都寫不出來用抄的 12/22 10:04
SmallpTsai: 推這篇, 建議m起來 12/22 10:04
acer1832a: 用抄的還被助教抓包XD 12/22 10:04
DCTmaybe: 實用推~ 12/22 10:22
rr8r8r8r8tw: 前端被考BST的路過 12/22 10:32
freepenguin: 推~ 12/22 10:45
coronach: 前端跟app人多 帶出來風向當然是不刷題啊XD 12/22 11:26
lance8537: 推大神 然後某樓幹嘛那麼激憤 被嘴喔 12/22 11:41
TheOneisNEO: 跟中學生問說算這麼多數學幹嘛 不是都計算機就好了? 12/22 11:46
TheOneisNEO: 有幾分神似. 其實就是有地方用的到. 不想做且確定不 12/22 11:47
TheOneisNEO: 會用到 自然不碰也還行 12/22 11:48
fake01: 推 12/22 12:06
oscarchichun: 好文 12/22 12:27
yyhsiu: 推這篇。其實很多鄉民就是喜歡自身經驗套到所有人,阿不就 12/22 12:33
yyhsiu: 有些公司/職位這樣考有其意義,有些確實不恰當 12/22 12:33
Ekmund: 適性問題...唉 12/22 12:45
angusyu: 某人崩潰什麼,要刷就去刷,祝你刷到一飛沖天 12/22 12:48
bitcch: 這篇正解 12/22 13:16
THEWORLDS: 這篇算可以 可惜沒寫到主要是會考量你的思維方式 12/22 13:39
THEWORLDS: 刷題說真的對我們這懂頂尖人士來說真的不難 12/22 13:39
THEWORLDS: 可是差別就在於當下思維的方式 有時候第一時間出來的 12/22 13:39
THEWORLDS: 思維可能會影響整個公司的運作或是讓這服務多百E盈餘 12/22 13:40
THEWORLDS: 不過老話一句 如果沒有想要到頂尖的公司去上班或是當個 12/22 13:40
THEWORLDS: 4.5萬低階碼農的話 就直接pass這種刷題文章吧 12/22 13:41
Parazicecum: 這篇說的沒錯啊 刷題重要的本來就不是死背吧 12/22 14:21
bnd0327: 推推 12/22 14:23
LERICAL: 推 12/22 14:26
bewitchsky: 推 12/22 15:04
jj0321: <<北美職場>> ...QQ 12/22 15:27
t64141: 可以M起來+1 12/22 16:13
plover: 生命會找到出路,碰到要刷題的面試躲也躲不過,不如摸摸鼻 12/22 17:58
plover: 子想辦法克服。 12/22 17:58
fayhong: 完全同意! 12/22 18:54
sean2449: 推 12/22 19:10
molopo: 推 12/22 19:37
starburs: 好文推推 12/22 20:20
david0424: 推 12/22 20:24
Mtcat: 12/22 23:42
kyo22222: 推 12/22 23:53
newyellow: 好!! 12/23 01:34
cha122977: 本篇正解 別用考試那套來面 12/23 08:51
chocopie: 好文 12/23 10:46
siriusu: 這篇中肯 很多人都以為刷題重點式題目本身而言 12/23 11:22
oneword416: 推 12/23 12:46
hohamita: 推推 12/23 14:55
y800122155: 推薦這篇文章 12/23 15:52
loadingN: 太正向了 12/23 17:08
stupid0319: 台灣有台灣的玩法 12/23 17:11
lsc36: 推 12/23 19:54
sphoenix: 推 12/23 22:35
jack7923love: App不刷題? 我遇過算法融入框架叫你coding的 12/23 23:06
SJYJ: 推 12/24 00:57
zebraseven: GOOD 12/24 01:15
eric525498: 推 12/24 14:04
edwardhw: push!! 12/25 13:05
giantwinter: 推 12/26 00:01
shiangenlu: Push收藏 12/27 08:32
lukelove: 刷題就是for面試 01/12 16:52