看板 studyabroad 關於我們 聯絡資訊
其實這部份本來想連著part2一起寫的, 但因為我覺得跟你念哪間學校比較無關,而且我的看法不盡然正確, 反正就提出來講一講,如果有其他前輩或者板友願意幫忙補充那更好嘍。 承接上文,在美國念CS要找工作,除了前面提到的,學校的名聲和地點以外, 另外還有一個也很重要的事情,就是你的skill set。 不過這個對有過幾年工作經驗的人來說會比較有影響。 (完全沒經驗的人基本上就是看你的學校的名聲還有地點) 像我在台灣待得是系統廠/網通廠,所以我有很大一部份的工作都是在寫C, 然後玩得不是bootloader要不就是device driver。 這種skill set在台灣很ok,因為台灣最有"錢"途的就是IC設計公司(aka 豬屎屋XD)。 但是在美國這邊...拜託這種dirty work早就不是這邊的就業主流了好嗎XD 你沒看現在海量(還是巨量)數據多夯, 夯到一堆學校不是開Data Science要不就是Business Analysis相關的學位或學程XD 要想學Machine Learning直接上網找Coursera就有一堆質量超高的公開課可以看, 類似的主題一堆學校拼命開,感覺好像開不用錢的一樣, 但就是沒有學校願意開課講一下在linux/freebsd上, 他們的network stack還是memory management怎麼設計的(怒) 所以...慎選你的skill set, 不是說美國這邊對low-level system software的工程師沒有需求, 但這種職缺通常都要你夠資深(至少七八年以上,要求十年也不少)你的面試機會才會多。 而也因為這樣,所以其實我能夠投的職缺說真的就少了很多。 順帶一題,這些有來找我面試過的公司,基本上都屬於Entry Level的職缺。 在美國這邊的職缺大致上可以分成三種, 也就是所謂的new grad,entry level,experienced。 當然這並不是非常嚴謹的分法,只是就我投過/看過的職缺來說大致上是如此。 尤其在某些比較大的公司, 負責new grad招募的HR Team有可能會和entry level/experienced是不同的。 所謂的new grad,一般而言指的是沒有相關工作或者工作經驗在一年以下的新人, 也就是所謂的菜逼八XD 然後entry level的話,多半都會要求你有2~4年不等的工作經驗, 這種通常就是所謂沒那麼菜的菜逼八(好像有點繞口)XD 最後的experienced的職缺就很多樣化了, 但基本上在職稱前面都會掛senior/principal,甚至到Manager/Director都有可能。 在工作經驗的要求上,基本上都會要求至少五年, 很多更是七八年以上甚至十年以上都不少見。 從這裡大家應該也可以理解為什麼我說我的skill set在這裡不吃香, 問題不在於沒有這種需求,而是這種需求有很大一部份都是experienced等級的。 所以,如果在美國這邊要就業,到底該走什麼樣的skill set比較好呢? 坦白說這個題目的範圍太大,畢竟美國的軟體業實在比台灣發達太多, 以我個人淺薄的工作經驗以及少的可憐的面試經驗實在很難給得出完整的答案, 所以我只能從一些相當敷淺的(像是該學什麼程式語言之類的)部份稍微講一下而已。 首先,因為美國的純軟體產業真的很發達,尤其這幾年瀏覽器相關的技術突飛猛進, 所以目前web相關的職缺, 不管你是走Front-End(前端)還是Back-End(後端),數量都相當的多。 誇張一點講,我相信有接近一半的職缺在廣義上來說都可以跟Web扯得上關係。 前端的話我只知道最基本的,像是html/css/javascript這些東西。 其中Javascript技術上的發展這幾年真的很誇張,基本上甚至拿來寫後端都不是問題。 當然走前端的話你可能還要熟悉一些相關的framwork,譬如AngularJS/React等等。 後端的話,因為用的很多語言其實也都很適合拿來開發一般的系統,所以跟後面一起講。 一般而言,美國這邊的軟體工程師在徵才的時候,要求的程式語言大概會有以下幾種: 一定要會一種OOP(Object-Oriented Programming)的程式語言, 最常見的大概就是C++/Java/C#三選一。 一定要會一種script language,像是Python/Ruby/Perl/,甚至Shell Script都算。 就script language來說,如果還沒有特別的偏好(也就是不會任何一種XD), 我個人會強烈建議學Python,因為這個語言真的超級好學, 即便對於不會寫程式想轉科系的人也一樣。 雖然說Python這種script language是動態語言, 在效能上沒辦法跟上面那些C/C++/Java/C#這些靜態語言相比, 但好學好上手用來做快速的prototyping則是相當適合, 即便在Cisco這種網通廠也很有用,因為常常會拿來寫auto test。 更不用說拿來刷leetcode的時候或者對付coding interivew的利器XD 總之是個投資報酬率超高的程式語言,強烈推荐給大家XD (當然如果確定要走Web開發,那有RoR的Ruby也是很好的選擇) 至於那種general purpose的程式語言,就看你原本擅長什麼就繼續保持吧。 如果是從其他科系轉過來CS的,對於寫程式這件事情不是很熟練的話, 那我強烈建議學JVM-based的語言,或者說有GC(Garbage Collection)的語言。 不要去學什麼C/C++了,雖然說C++有smart pointer啦, 不過這兩個語言不管學起來還是寫起來都非常的苦逼, 你的重點是要找工作不是要找麻煩XD 我之所以會推荐Java,是因為除了寫起來很囉唆以外,寫習慣之後搭配強大的IDE, 那種爽度真的不是寫C(我對C++很不熟)可以比的XD 重點是,你完全不用去接觸pointer/memory leak這種會讓你夜裡哭哭(疑?)的東西XD 另外目前看到的趨勢,如果你原本就是Java Programmer, 那或許下一個語言挑Scala來學會是個不錯的投資, 尤其很多Big Data生態系的大型專案,有慢慢從Java往Scala移動的傾向。 如果原本是寫C/C++的,或者原本在開發system program的人, 我想Go也會是個不錯的選擇,近來也有愈來愈多大型分散式系統的專案是用Go來寫的。 當然重點不是那些專案,而是職缺上要求懂Scala/Go的數量有愈來愈多的趨勢, 所以在行有餘力之時根據自己的背景多學一些新東西總是好事, 尤其對於跟我一樣在台灣已經有過幾年工作經驗的人來說更是如此。 這一篇我想應該有比較簡短了,關於技能樹該怎麼點這個問題, 我想還是要有在其他不同行業/領域的人來講或許會比我說的更有說服力吧XD -- There is no secret behind the source code. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 97.99.87.196 ※ 文章網址: https://www.ptt.cc/bbs/studyabroad/M.1457246835.A.4FE.html ※ 編輯: RouterHsieh (97.99.87.196), 03/06/2016 14:56:15
justin1534: 推!應用層容易很多,我今年也是試著投底層相關的實 03/06 14:58
justin1534: 習全滅,後來改變策略,加上開始用Java 準備interview 03/06 14:58
justin1534: (之前有公司給我OA我用C寫根本時間不夠)好不容易才 03/06 14:58
justin1534: 幸運拿到其它公司的實習QQ 03/06 14:58
gitignore: 推推 03/06 15:03
ryanlei: 推 03/06 15:44
punk86862001: 感謝分享!!!連著看三篇好爽 03/06 16:02
fishlinghu: 感謝分享 03/06 16:03
daniel120: 感謝分享! 03/06 16:35
wilson85771: 謝謝分享 03/06 17:39
drajan: Scala在熱過一陣子之後又慢慢開始降溫了...好在spark還是b 03/06 18:03
Sofun01: 推 感謝分享 03/06 21:12
sunnycutie: 推這篇 我在賣testing tool的公司上班過 美國這邊真 03/06 22:07
sunnycutie: 的java的需求比 c/c++大很多 03/06 22:07
andy5656: 推推 03/07 00:35
cloudlim: 寶貴的經驗分享(y) 感謝! 03/07 12:25
cloudlim: 好奇原PO在找工作前把leetcode準備到什麼程度? 03/07 12:27
RouterHsieh: 我大概就是把medium以下的題目做完而已...XD 03/07 13:00
s09930921: 看三篇加以前的文真的爽XD 03/07 18:37
adiskk: 先推大大一個~ 03/09 04:04
adiskk: 想請問Java大約要熟到什麼地步,才能在履歷上註明會Java 03/09 04:06
ghostreporty: 只要你你有把握 他問你關於Java的東西 你能答出來 03/09 05:34
RouterHsieh: 其實很難說啦,講真的會被問到什麼,跟你的經驗有關 03/09 06:34
RouterHsieh: 畢竟那種工作好幾年會被問到的,和沒啥工作經驗的 03/09 06:34
RouterHsieh: 被問到的問題在深淺以及難度上面一定會有差別啊XD 03/09 06:35