Re: [問題] MS CS 現在到開學前的準備

作者: DONmilK (DONmilK)   2018-02-19 18:13:02
小弟不才 貢獻一下經驗
針對找Intern這個目標提供建議
0. Book
Cracking the Coding Interview(CTCI)
新版是189 舊版是150 可以從美國Amazon直送台灣
裡面非常多基礎的CS 資料結構/演算法(Data Structure and Algorithm, DSA)基礎
非常推薦仔細閱讀 然後實作章節習題
(6th Edtition)
可以先讀Ch1~10 除了ch9
他的hint寫得還不錯
Element of Programming Interview (C++/Java/Python)
挑一個你決定用來刷題/面試的語言的版本
與CTCI不同的是他是以題目為基礎,難度較高
可以學他裡面的寫法
培養與鍛鍊:程式設計的邏輯腦
進階書,裡面的題目比起前兩本難度更高
但是解釋得很清楚 適合衝擊大腦
1. Website
LeetCode
直接課金買個一年訂閱
等等再仔細講怎麼刷題
一畝三分地
國人資訊集散地 沒事就去找工求職版看看
大米可以去新人區發報到文拿100個
LinkedIn
趕快建立你的個人資料
瘋狂connect
2. Resume
趕快把自己的履歷寫好 多找些人review
板上有很好的文章可以參考
甚至可以花錢找人校稿 這是你拿面試的第一關
一個HR平均花15秒掃 能不能move forward就看這一張A4紙
# 感謝sean51623更正 美國履歷是用letter size
A4比較瘦長 letter size比較矮胖
在排版上可以注意一下空間
另外推薦可以去做一些side project
不管是線上課程或是找幾個朋友一起弄個APP
甚至open source 都是很棒的機會
還可以培養CS的基礎知識
3. 刷題
該怎麼刷題?只要會for if else while這種幹話就不用理了
為啥要刷題?在面試中有很多東西會被評分
Coding, Algorithms and Data Structures是其中兩項可以透過刷題培養的
Coding: 寫代碼的能力,看你能不能在有限的時間寫出合理/bug free的code
A&DS: 分析問題的能力,能不能再與面試官(同事)的互動溝通中從有限的資訊
理解並且找到一個或數個解法,知道解法的優缺點與trade off
什麼時候開始刷題?
CTCI看完 對於stack/queue/heap/hash map/linked list/tree...
這些Data Strucure的概念有理解
BFS/DFS/DP/Recursive/Backtracking/Binary Search/BST/Sort/Greedy/Union Find
演算法知道基礎 Big O計算
就可以進場打怪了
我推薦挑一個tag刷 入學前我刷了
tree -> Binary Search -> linked list -> Backtracking -> Sort
這些章節比較獨立 例如Tree
你懂preorder/inorder/postorder traversal 的recursive/iterative
就可以解大部分的題目
而且tree的想法可以幫助BFS/DFS的思考
像是Array/String會有綜合型的考法 適合你做膩某個tag時來刷XD
看到題目 先想Brute Force, time&space complexity
想一下哪裡可以再優化 例如你看到一個無序array
你心中的演算法是O(N^2)
想看看如果排序會不會有更好的approach 這樣就可以降到O(NlogN) time
還是可以先預處理到Hash Map, 這樣set/get 就可以壓到O(1) or O(logN)
再去跑整個array就是O(N)
諸如此類
一開始會很挫折 一題大概你一小時想不出來就去看答案吧
但是不要只有"看" 要去理解怎麼推導出來
我覺得討論區才是leetcode的精華所在
重點是每一題都要做筆記(英文)
把你從暴力解->最佳解的想法寫出來
還有time and space complexity (非常重要)
4. 投履歷
Start early!!
大概九月初大公司的intern缺就會開
我大概九月中開始投
由於一種叫做Diversity的關係 每個學校有個head count
當然這沒有公開的被承認 只是根據以往的數據有這樣的現象
因此早卡位早贏 拿到HR信後再把面試時間排後面一點
不要想說我題沒刷夠就不敢投
注意一下聖誕節 面試盡量不要約在這附近
很煎熬的XD
大公司能內推就內推 ex:FLAG
海投基本上有去無回
找不到內推?LinkedIn這時就發揮用途了 或是一畝三分地也有內推版
(要注意基本的禮貌還有書面形式)
中小公司就海投然後祈禱
career fair很重要 可以鎖定中小型公司去投
沒有什麼拿小公司練手這種事情 能拿到面試都是全力以赴(因為中小公司根本不鳥我QQ)
5. 面試
Intern通常只有phone interview(某些神奇的公司會叫你去onsite/University Day)
CTCI也有解說可以看看
我提幾點與面試官交流的感想
a.問清楚規格 input/output, error handling, limitation...
b.從暴力解開始推(對 就是你刷題筆記做的事情)
如果你天生神力直接推出最佳解也先簡短帶過暴力解
讓面試官知道你的整個思考流程
c.徵詢同意 等你說明完解法後記得問問面試官我要用這個解法ok嗎
d.我手寫我口 coding時可以一邊說明 幫助面試官理解你的code也可以幫助思考
如果面試官突然打斷你問你某個部分code 那你很有可能寫錯了
e.注意語速 可以透過mock interview改進
溝通非常重要 大多公司要找的是可以討論的人不是解題機器
而且就算最後的code有bug 也有機會可以通過
6. 課業
如果你像我一樣底子不夠 只想找工作 可以參考一下
我的做法 但不是每個人都適合這樣做
剛到美國第一個quater我只修水課
(只有作業project沒有考試 GPA給得高)
除了必要的行程其他時間都在刷題改履歷投履歷
No social life
7. 資訊戰
擁有對的資訊可以幫助你拿到面試/offer
無奈台灣人的網路實在難以與國人或三哥對抗
我加了不少國人群組 也在一畝上爬很多文章
知道某個時候某個公司會偷偷打開intern position兩週
知道某些公司偏好的題型還有面試技巧
知道某個公司今年收超少人 引發CS寒冬將近的輿論
而且國人講話蠻有趣得XD
8. 雜談
CS越來越多人來念 intern的競爭也越來越激烈
每年大概只有10%左右的人拿到intern
並不是說沒intern找不到full time
而是對於轉專業或是經驗不足的人是一個天大的加分機會
整個過程就是一個字"運"
但是要在運氣降臨的時候做好萬全的準備就是自己的工作了
大概是這樣
如果有任何的問題都可以推文or私信討論
作者: catinclay (David)   2018-02-22 01:44:00
刷題"絕對"不要挑tag刷 跟看解答差不多意思
作者: kusoayan (Bert)   2018-02-21 20:39:00
誰是國人?補推感謝分享
作者: hiarpu (up)   2018-02-19 18:42:00
作者: Mariobrother (馬力歐兄弟)   2018-02-19 19:29:00
推啊
作者: ejnfu ((-. .-)b)   2018-02-19 19:38:00
作者: JJ1622   2018-02-19 20:06:00
作者: NCTUbigGG (交大大GG)   2018-02-19 21:00:00
推推
作者: tennis1038 (13nash13)   2018-02-19 21:02:00
push
作者: pizzaguy (pizzaguy)   2018-02-19 21:44:00
作者: Beherit666 (Holocausto)   2018-02-19 22:23:00
小的先拜了
作者: a99912334 (Chad)   2018-02-20 03:36:00
感謝分享大大
作者: sean51623 (千陽)   2018-02-20 04:03:00
有一個小細節我想分享: 在美國不是A4是letter size XD如果是電子檔可能會有微妙的影響 但如果公司習慣印出來當初我的學校說那不一樣的size不會幫你stand out
作者: NCKUFatPork (成大肥宅悲歌)   2018-02-20 05:33:00
分享推推 想請問一下現在面試限制不能用python的比例高嗎
作者: ACEgolden (狗登)   2018-02-20 06:11:00
請問國人是?
作者: ar0n77777 (property)   2018-02-20 16:55:00
作者: s885219s (Wolfie)   2018-02-20 18:44:00
作者: FerLam (Will.I.Am)   2018-02-20 20:33:00
作者: JasperHsieh (TwoPunchMan)   2018-02-20 21:16:00
感謝分享
作者: jacky5307   2018-02-21 03:38:00
作者: urmfo (Bambi)   2018-02-21 07:07:00
作者: qwe98734 (其實我...)   2018-02-21 10:57:00
推!
作者: ducky0609 (ducky)   2018-02-21 13:13:00
作者: jacky5307   2018-02-21 14:20:00
作者: acgotaku (otaku)   2018-02-22 11:31:00
我個人真的滿推刷題,以前也很排斥覺得很像準備聯考但對寫程式真的非常有幫助
作者: erichoco (邱伯)   2018-02-23 22:51:00
leetcode一開始不用課金吧
作者: roy102782   2018-02-25 03:50:00
作者: SpiritWalker (Akai)   2018-03-04 06:03:00
幾乎所有公司都能用 Python 解題, 包含 Amazon不能自選語言的公司申請前要三思因為可能文化封閉
作者: shepard1113 (牧羊人)   2018-03-06 20:38:00
樓主真的神

Links booklink

Contact Us: admin [ a t ] ucptt.com