以下附上心得分享:
前陣子拿到 Google offer,之前在準備面試時看前面幾位大大的文章很受啟發,趁記憶
還比較清晰時分享一點準備心得,希望能對正在準備或之後想準備有一點幫助。
以下文字比較偏個人看法,如果用詞有些不太恰當還請大家包涵;Google 大神很多,個
人資訊就盡量不提。
我不算是聰明的人,去年第一次面試沒有過,今年是第二次面試,總共準備時間大約是一
年半。下面分成兩部份:準備方式與心態。
- 準備方式
這一年半中幾乎每天寫題目,刷題是隨機選題,沒有特別挑題。難度的話從 easy 題目開
始寫,大約3~4個月後慢慢寫到 medium,最後面試前幾個月寫比較多的 hard。
睡得飽會讓寫題目比較有效率,太累的時候有時候連題目都看不太懂…
前期剛開始寫題目會搭配著 Cracking the code interview 一起看,這本大概看到一半
之後就是邊刷題邊學習。
剛開始寫 easy 題都會先用手寫的方式去模擬程式碼流程、寫下 pseudo code,熟練之後
只有太難的題目會再用手寫。
有些題目當下想不出來的時候,時間允許的話(兩個月內沒有面試),會盡量希望能思考
出解法;但這很花時間,有些題目卡了半年才想到怎麼解,大約是一兩個禮拜會再回看寫
不出來的題目,不過能想出來的題目還是偏少數,待解題目列表很長。面試前兩個月的話
,某題想不出來卡30分鐘就參考別人解答。參考的時候會盡量希望了解這題為什麼可以透
過某一種演算法、資料結構去解,背題型的話肯定是背不完的。
這個準備方式有點花時間,列出這一段僅供參考。
有一個 excel 檔會簡要記下題目號碼、通過測項提交幾次、日後需不需要再練習。
正式面試前最好做幾次的 mock interview,周遭有人能幫忙最好,沒有的話線上也有一
些付費、免費的服務可以使用。
- 心態
寫題目的時候最想知道自己思考解題、實作能力在那個位置,但很可惜這兩項能力沒有可
靠的衡量方式,所以初期常常參考別人寫了幾題能通過面試,但後來漸漸發覺題數跟思考
能力其實沒有絕對正相關,寫的題目少也不代表不會思考;之後重點就放在製定適合自己
的準備方式。沒有列出寫幾題因為熟練度、題型每個人不同。
刷題過程中有時候想不出解法,或是看到別人神一般的解法會覺得自己資質平傭,大約是
每幾個禮拜就會有這樣的感覺。比較形象的描述,刷題準備就像是一個人走在暗無光線的
隧道,不曉得前方出口還多遠,不曉得自己走了多少、體力夠不夠撐到出口,更不曉得這
條路對自己來說是不是沒有出口…這一切只關乎個人選擇,能不能撐下去大概還是取決於
價值觀吧。
打趣的說,這段時間都在磨刀,但這把刀一年只能拔一次,如果在小說裡,拔出這把刀肯
定是大殺四方、見血封喉;可惜,在真實世界裡,刀不一定能順利拔出來,真的拔出來還
可能砍不到…
還有一點是怎麼知道什麼時候該面試了?因為永遠都有寫不出來的題目,所以大概就預定
個月份,時間到就找 hr 或是等 hr 找。
面試還是有一些運氣成份在,失敗的經驗就當成是學習。
大概的方向就這樣,希望能對其它人有一點幫助。