美國大學 Computer Science - 沒教什麼 ?

上次說過了在四年制的美國大學資工系 Computer Science Major 都教了些什麼,說實話學校能給的東西很多,但實際上能夠吸收多少還是取決於學生。這篇文章將會著重於分享我在 CS 大學、實習、到剛畢業找工作的這段時間中都學到了些什麼學校不曾告訴我的事情。換句話說,在矽谷如果能更早知道這些事情,也許我能做出更好的選擇!

美國大學 Computer Science - 沒教什麼 ?

上次說過了在四年制的美國大學資工系 Computer Science Major 都教了些什麼,說實話學校能給的東西很多,但實際上能夠吸收多少還是取決於學生。這篇文章將會著重於分享我在 CS 大學、實習、到剛畢業找工作的這段時間中都學到了些什麼學校不曾告訴我的事情。換句話說,在矽谷如果能更早知道這些事情,也許我能做出更好的選擇!

理論派 vs 實踐派

在矽谷附近有許多的大學,除了比較有名的 Standford 及 UC 系列外,還有像是 San Jose State 這些臥虎藏龍的學校。畢業工作後一段時間後才慢慢了解到,原來學校教學的內容有很大的差別。大致上可以分成理論和實踐兩派,像是我的學校 UCSC 和其他 UC 系列就是教較多理論相關內容,比較少實踐和專案。而 San Jose State 則是完全相反,教的更多是工作後會時常用到的內容,所以在找工作時雖說名氣較小卻也非常吃香。

學校沒你想的重要

一般來說道學校的名氣和排名在找工作時所佔的比重非常高,但在矽谷 CS 行業中並非如此。這算是本行業中多的好處之一吧!或多或少在找第一份工作時會有些影響,不過據我所知更多還是靠實力的。因為雖然 HR 要海量選取各個申請者,不過科技公司有的是各種自動化和程序化的方式來塞選人,像是回覆個 email 要求申請者在網路上做個測試等等,所以比的更多還是測試的成績不是學校的名氣。即便是新創公司也一樣,因為申請人想對大公司較少,所以可以一個一個慢慢塞選。而在有了第一份工作後,面試塞選看得也是工作經驗和技能等等。總結就是學校的名氣其實在矽谷科技業中不吃香。

基本功

一般剛畢業的學生在初入職場時的選擇很小,因為公司知道大多畢業生會的東西也就是那些,說實在話就是大同小異。但實際上工作了之後才發現,沒學好學校教的東西是一件很痛苦的事情。職場上學到更多是經驗和熟練新的技術,但各種基本功和原理卻是很少會碰到的。想要在職業道路上慢慢攀升時會發現,是否理解各種東西背後的原理將會體現出自己和其他高手在能力上的差距。畢竟簡單的問題大家都能解決,但能真正解決困難問題的只有那少數幾個,而他們也會是升的最快的那一群。

課外學習

在剛畢業看到各種工作的要求時,會發現這些東西怎麼學校都沒教過。那必須是的啊!學海無涯,四年的時間真心有限,學校已經盡力教了,那作為學生的我們呢?先別說工作上要求的各種語言完全沒碰過,再來就是一堆聽都沒聽過的新技術。所以課外學習是一種硬性要求!入門 Software Engineer 面試時雖說有一半看的是實力,但另一半看的是這個人有沒有求知慾。畢竟畢業生能力雖說在學生的眼中有著很大的差距,但在面試官的眼中卻是相差無幾。只要達到基本要求,比的更多是這個人是否能和公司一同成長 、與團隊共識等等。這時如果簡歷上有各種課外學習的東西,除了體現出申請者的求知慾,更是直接多出其他競爭者一項技能。

必須實習

我記得那時我實習的面試共有三輪,而在最後一輪更是面試了整整 3 個小時。那時的我在得到這份實習機會時曾自滿了好一陣子,但到現在才知道其實那也沒什麼... 因為多數實習生的要求只有一個「找一個能培養的普通人」。在工作一陣子開始自己當面試官後,每當對象要找的是實習生時大家都會告訴我,我們要找的就是個能培養的普通人。也許並不是每一間公司都如此,畢竟想進 Google 當實習生的人真的很多,但矽谷裡的科技公司已經多到滿到別州去了,還怕你找不到區區一個實習嗎?策略很簡單,想去的都申請,不想去的也申請,反正申請不用錢也不費力,看誰回覆就去找誰面試,總會找到一份適合自己的實習。實習的經驗很寶貴,某些方面來說甚至比學業還要重要,這是未來找工作上的一大助力。

教授的重要性

都說認識教授很重要,但到底有什麼好處呢?說說我知道的幾個例子吧!

這個教授外面自己有一兩間公司,而我這個朋友跟教授關係不錯,以至於還沒畢業教授就找他進公司做事了,他除了有錢領以外因為公司的各種進度優先,教授甚至讓他在自己的課上可以有各種好處,從作業到考試... 反正到底成績都是教授決定的😏,而且畢業後也直接多了一個工作機會。

以我自己的例子來說,這個教授是博士班和研究生的老大,所以手下有很多研究。說到研究就是學費減免甚至免學費的各種好處了!我當時以為自己抽不到美國工作簽證,只能繼續讀書或是回國,就跑去找這個教授說我現在志願幫他做研究,然後又說我想申請研究所可是平時要上班沒時間準備考試。做了一陣子後,教授直接跟我說要我不用在意考試,幾分都一樣走個行事而已,申請回學校當研究生或博士生幫他做現在這個研究,學費也免了。這好處還不夠吸引人嗎!當然研究方面也是要好好努力一陣子讓教授感覺是個可造之材才行!(後來抽中簽證就不做了~)

人脈創造機會

上面說要去認識教授,但說實話我自己真的有互動的教授也就那麼一兩個,這時人脈的重要性就體現出來了。我認識一個教授,我朋友每人也都認識一個教授,這樣需要幫助時互相介紹一下,有幾個朋友就有幾個教授!別說不可能,我上面那個做研究例子的教授就是畢業後透過以前朋友引薦的,之前我連學校裡有這個教授都不知道呢!美國大學不像亞洲一樣,還有分班分座位這種東西,每次上課坐旁邊的人都不一樣,一堂課有上百人,雖說會有點尷尬,但認識新朋友的機會還是不少的。

專案的重要性

這是畢業生簡歷上唯一的亮點!比起成績、上過的課,做過的專案才是真正有實體的經歷。我實習面試時,三分之一的時間都被著重於我做過的那一兩個專案,而且每個面試官都要問我一次,害我越說越起勁。專案能夠讓學生提前將各種技能學以致用,並且更早的發現自己的不足之處,才好讓自己去做夠多的課外學習。專案的質量更是重要,一個好的大型專案不是學生獨自一人就能完成的,需要整個團隊透過不段的學習並且與教授溝通和改進來慢慢完成的。每個人都有自己負責的區塊,在團隊中能夠扛起責任完成自己專精的部分,這樣的成就將會是未來面試時和面試官對談的底氣之一。

多得是機會

學校裡面除了各種課程之外多的是機會,只是學生不知道而已。我也是到了很後面才發現學校裡常常會有各種讓學生成長的機會像是時不時就會很幾間矽谷大老像 Google 之類的辦個活動,讓學生長長見識。每一年的駭客松也都是 CS 學院的盛事之一。各種教授主辦的課外訓練,幫助學生學習一些平時學不道確實用的知識,順便物色一下可用之才。學校各部門網站和 IT 相關工作也都會有一堆實習機會。學校還有各種免費的 Tutor,除了前期當個學生外,後期也能自己試試看教別人,還會有工資拿。各個博士生和教授帶領的研究工作等等也都是有許多開放的機會,畢竟每年畢業的人這們多,只要肯找就一定能遇到。重點就是,機會真的多到數不完,如果能更早把握這些機會並多做準備,相信準備就緒的自己會比其他人更有競爭力。


結語

上面說了這麼多,都是根據我個人在矽谷學習 CS 的經驗來分享的。雖說這些東西好像眾人皆知,但是當局者迷,至少我在學習的路上對這些事情的理解是非常模糊的。希望這篇文章能幫助到正在學習的讀者和其身邊的朋友,讓初入職場的自己更有競爭力!

我是小貓貓工程師,
期待下次繼續與你分享,
美國大學 CS 有關的各種大小事。