1.6.12

給CS的你 - 從留學生到第一份工作

藉由Hello US!的US專刊邀請,我來講講從一個留學生到一個工程師,該期待怎樣的過程與做什麼準備。因為我本身背景的關係,這會是專指在CS這個領域上,不過希望其中也有些通用的建議。這篇文章跟訪問我的內容都收錄在US專刊No.4

Computer Science是在美國目前算是最火紅的領域之一,如果來美國留學,念這個領域基本上不會錯,在這個時間點下找工作相對來說實在不難,不過我發現很多台灣的留學生,都跟我當時一樣,缺乏資訊、不知道會面臨的未來長什麼樣子,因此在最後關頭才發現很多東西已經太遲了,這也是這篇文章的主要目的,希望更多的人能從我的經驗中學習,而不用自己走艱苦路。

美國工作有什麼好?


在台灣念大學時,還記得我的同學們大多認為在台灣念個研究所,之後去園區工作就好了,似乎是個非常可預期,也不錯的人生規劃。當初其實只是單純想要出國留學而已,沒有想到工作的事情,傻傻的就一路走下來了,不過現在工作後, 才發現在美國當工程師實在比台灣的工作對我胃口太多了。分享一下主要差別,讓大家知道在美國工作是怎麼樣的狀況。

  • 首先,美國的軟體產業比台灣蓬勃太多了,如果真的想做軟體、做Web,在台灣,恐怕選擇不多。在矽谷這邊的狀況,軟體工程師實在非常搶手,大多在成長的公司都苦於招人的速度不夠快,因此在機會上不虞匱乏。
  • 美國的企業也較重視work life balance,公司大多尊重員工的私人生活,雖然有些需要on-call,但是下班後大多屬於自己的時間,也很少有加班的情況。而且美國白天長,夏天時下班後可能都還有兩三小時的太陽可曬,加州天氣又好,幾乎不下雨,可以從事各種戶外活動,週末更有很多世界級景觀可以去旅遊。
  • 在美國有機會做很有影響力的產品,像是我現在的工作,就是全球有超過1.62億用戶在使用的產品,美國的公司都很注重數據,可以透過圖表分析看到自己做出來的產品到底對公司的貢獻在哪,如果你在Google、或Facebook,也都有極大的影響力。你也可以接觸到最新的技術,掌握到最新的業界動態。
  • 創新是美國公司的強項之一,這邊大多鼓勵員工嘗試新的idea,像是Google的20% time、Facebook/LinkedIn的Hackday,都能讓你在日常工作外,亂玩一些自己的想法。此外美國的老闆大多重視員工的想法與興趣(起碼我遇到過的都是),可以透過適當的溝通,做自己有興趣的project。
  • 最後,說說俗氣的物質生活,美國軟體公司現今給剛畢業的學生的offer,很多都已經超過10萬年薪,雖然美國物價較高,能存下來的錢絕對值還是較高。台灣或許一些較慷慨的公司還能靠股票撐撐場面,但是如果想做真正的application,而非系統廠、硬體廠,那台灣的公司還真的很少有比得上美國的待遇的。

    因此,我建議所有念CS的人,如果還沒決定要不要出國,應該慎重考慮這個選擇,而已經在美國的留學生都應該留在美國工作,至少做個幾年也好。

    intern重要性


    Ok,在美國工作聽起來很不錯,但是怎麼樣才能順利找到工作呢?我大概只能強調再強調intern的重要性了。我念研究所時,就是因為不知道intern的重要性,暑假的時候就很帥氣的跑去旅遊了,我也看到很多台灣的留學生都選擇在暑假回台灣,不過,如果真的想在美國順利找到工作,請務必要找個intern來做。我記得剛到美國念書時,第一個學期才剛開學,課才上兩堂,印度來的同學就全去career fair找intern了,那時候我還笑他們不務正業,直到要找工作時才發現輸人一大截。

    為什麼intern那麼重要?這樣想好了,公司每天會收到一卡車的resume,如果你的resume就只寫了學歷、GPA跟幾個修課的小project,到底公司有什麼理由先挑你起來interview?有一個講的出名字的公司的intern,絕對會幫你大大加分。大多數的recruiter在找人時,都是直接關鍵字下去尋找的,如果學校不是top 20,又沒有做過intern,實在是幾乎註定消失在resume海中。

    接著,intern也能讓你感受一下在業界工作是什麼樣子,這跟念書、做研究是完全不一樣的,很可悲的是華人的文化就是這樣,從小到大都在念書,導致大家都以為自己什麼都不會,只會念書,因此就索性一直念上去,不少人還不知不覺就拿到了PhD了(真是個美麗的誤會)。事實上,工作跟做研究是有非常大的差別的,不同個性的人會有不同的偏好,但是如果沒有兩種都嘗試過以前,怎麼知道什麼適合自己呢?或許你研究做的坎刻,卻其實是個工作的料呢。

    intern也很可能直接給你full time offer,省去了之後找工作的麻煩。做的過程中間的表現很重要,不過經由intern直接轉成full time算是相對比較容易的路,一來intern的interview一般較容易,二來大多公司的intern program都是以把這些實習生轉成正職為最終目標,mentorship都少不了,也很希望留這些人下來繼續做。這事實上也是intern program的最大目的,實習生畢竟跟公司的人工作過不短的時間,互相能有更深的了解,比interview來的人更可靠些。

    不管怎麼說,intern的薪水很高,與其去外面花錢,不如賺賺自己的學費或生活費吧。

    怎麼找工作


    對於一個外國人來說,要跟美國人競爭找工作,或許不是那麼有優勢,不過付出適度的心力,是會帶給你巨大的好處的。首先,學校大多有Career Fair,這個是身為留學生的你一定要去的,如果我當年沒有去Career Fair,是一個offer都拿不到的。還在學校的人,通常對業界了解不深,不知道有怎麼樣的公司在招人,去Career Fair絕對不會錯,因為這些公司就是來找你的!他們都不介意沒有工作經驗,甚至沒有intern過的人,否則他們不會來參展。

    公司員工的referral一直都是各公司最重要,也最有效率的招人方法,因此,如果有認識任何在工作的朋友,絕對不要放棄任何機會,一個個問有沒有referral的機會,很大的可能是公司有在招人的(公司只要在成長,就會在招人),員工在refer時說幾句好話,就算不是100%,也會大幅提昇面試的機會。

    LinkedIn是整個職場生涯最重要的網站。我知道大部分台灣人都沒聽過,不知道這個網站,不過在美國,尤其是軟體業的公司,全都相當倚賴LinkedIn來招人。很多我的朋友都說這網站似乎沒什麼用,不過說實在的,這只是不知道怎麼用而已。首先大家最常犯的錯誤就是profile一片空白,只放了一個學歷,請想像自己是個要招人的老闆,會對一個只寫著Master/PhD in XXX的人有興趣,還是一個詳細寫出自己做過的project與會的技能的人呢?內容豐富的profile也較容易被head hunter/recruiter搜尋到。還有很多人connection可能只有不到30個,你的connection越多,profile才有越大的機會被人看到,如果你說你只認識30個人,那實在太誇張了,只能說明你沒有認真的去networking而已,提醒你以後的職場生涯發展,會跟你認識的人、networking的程度有很大的關係。

    最後,LinkedIn是個Professional Social Networking網站,這是個你平常就該多上去跟人建立connection、保持聯繫的地方,如果只有在想找工作時才上,通常已經來不及了。還有一點我想分享,現在的招募人才的方法已經開始轉變,以往找工作的人開始到處亂丟resume的方法已經落伍,這種人叫做active candidate,大家慢慢發現,平常工作的好好的人(稱為passive candidate)才有最好的quality,畢竟好的人才通常不會失業,因此挖角這種人是很多公司開始著重的部份。平時多在LinkedIn上面活動,保持profile的up-to-date,都會讓你能得到更多的工作機會,像我平均每個月都會收到5個以上的工作機會自己送上門。

    我聽過一句話:『找工作本身就是一個full-time job』,認真做好這個工作吧!這是你自己的career,如果你自己不care,沒有任何人會/應該care。

    resume的準備


    Resume會決定你能不能得到面試的機會,而且人都是有點帶主觀的,resume會帶給interviewer第一個印象,而且也對最後決定給不給offer有一定程度的影響,可以說是不可不慎。如果你不是在找academical的工作,那省省紙吧,你的resume只需要一頁,除非你有多年工作經驗,重要的經歷放不完,那勉強可以有兩頁。在做resume篩選時,通常都有一整疊的resume要看,老實說沒有人會在同一份resume上花超過一分鐘,因此那冗長不知道重點在哪的resume實在讓人心生怒火。

    看resume的人,通常會想知道你的學校、GPA、做過怎樣程度的project、會什麼語言,就此而已。自己要知道自己的resume要強調哪個東西,將他突顯出來。對於project,千萬不要放上你自己也不太能100%解釋好的遠古project,自己resume上面的東西被問到還講不好,是大忌。而敘述上盡量越淺白越好,如果寫出來人家沒法幾秒鐘內就懂你在說什麼,那就刪掉吧。

    如何準備interview


    軟體工程師的工作,面試通常著重幾個部分,coding/algorithm、design、behavior與communication skill。大多公司都會有一到數個phone interview,主要考考coding,刷掉coding不太行的人,而onsite則會包含前面說的幾個部分。真要談怎麼準備technical interview,我大概可以另外寫一篇很長的文章,花幾個晚上也寫不完,不過這邊還是想要講講我覺得幾個很重要的東西。附帶一提,這邊講的是依照我個人的經驗,每個面試考官當然有所不同,不過我也面試過幾百人了,應該還算有參考價值。

    在coding/algorithm的interview中,重要的是你的思考過程跟分析能力。大家都有一時想不出來的時候,可是你怎麼approach一個問題的方法,是不太會隨著狀況而也差別的,因此也是最好的標的,在思考問題的過程,一定要不斷的think out loud,讓面試官知道你在想什麼,否則他想幫你也沒辦法。我看過很多candidate,一來都非常畏懼的感覺,像是在面臨大考一般,這是人之常情難免,不過盡量要催眠自己,就像是去工作跟同事或者研究室跟同學一起討論問題一樣,畢竟,考官想要看的,也就是以後你變成他同事後,你們一起討論問題會是怎麼樣子。coding的interview是可以準備的,平時多練習些題目,練習一下手感,尤其是平常念書時不太寫code的人,不過千萬不要期待考出自己練過的題目,因為真的碰到的機率太低,而且有經驗的人大多看得出來是否為背題(這是no-no)。

    design的interview對於很多剛畢業的人都非常困難,這個東西其實是需要經驗的,也有的公司會因為不是PhD的candidate就省略,事實上這也不容易準備。很多題目都是使用日常生活中的系統來當問題,因此或許可以沒事多想想別人這個遊戲、網站、軟體是怎麼設計的。

    在behavior跟communication的session,面試者大多覺得就是在聊天,這在看的是幾個面向,最重要的是你是否passionate,這在美國文化中非常重要,他們基本上相信你只有在你最有興趣做的事情會做的最好(事實上也是),因此,當你在面試一個公司時,如果你真的想在這個公司工作,就該表現出你的熱情(多問問題是最好的表現),否則你就根本不該去面試。而在communication skill上,對於非英語系國家的我們非常吃虧,但是通常有經驗的面試官不會受語言影響,我認為重點在於你是否有辦法將你做過的東西解釋給沒有任何背景知識的人聽懂,最簡單的想法,就是如果你有辦法將你的project/博士論文,講給你爸媽聽,他們還能聽懂,那就成功了。

    怎樣選公司與offer negotiation


    當你拿到offer時,恭喜你,能安心的往人生的下一個階段前進了!不過別忘了,幾乎所有的offer都是可以negotiate的,只是程度的差別而已。至於要怎麼negotiate?你最大的籌碼就是另一個offer,如果你有多個offer,就可以利用較好的offer讓較差的加碼,但這之中要有所技巧,你必須讓你在negotiate的公司感受到你的誠意,首先公司最在意的就是你到底想不想來,這個東西你有沒有興趣。你可以合理的提出各種concern,比如說地點問題、身分問題、benefit問題,都可以討論,一般公司最不願意加碼的是base salary,而股票通常是可以好好談的,尤其是當你不想要hard cold cash而要公司的股份時,這也通常表示你對公司的未來有信心,sign-on bonus則通常是最容易談到的部份,大多公司會較容易的給你一些sign-on bonus吸引你過去。

    所有個negotiation都是有風險的,當你打算negotiate時,就要有失敗甚至失去這個offer的打算,這也是最好能找到multiple offers再來negotiate的原因,不過大多人在經過漫長的旅程,終於拿到一個offer時,已經精疲力竭,懶得繼續interview,就直接答應了。我想強調的是,人生中的第一個offer是頗為重要的,因為之後你的每次加薪、每份offer,基本上都會based on前一個base來做調整,因此好的開始絕對是成功的一半。

    社會新鮮人應該知道的事


    很希望大家能夠走到這個階段,簽下人生中第一個offer,絕對是非常喜悅的事情,而這也通常代表著你要離開學校,進入社會了。身為社會新鮮人,我覺得有幾樣東西是對未來頗為重要的,應該在職場生涯早期就開始涉獵。包括稅跟personal finance,從今以後不是窮學生了,賺了錢以後怎麼理財是今後的大課題,別忘了錢是有時間價值的,人生早期存下的錢遠比後期有價值,因此應該多讀一些跟個人理財有關的書,通常也都會提到稅的問題。我還建議從開始工作的第一天就要開始未以後退休做打算,如果公司有401K plan,甚至有match,那是一定要參加的,否則可以考慮IRA的選擇。

    規劃休閒生活,並尋找自己的興趣也是頗為重要的項目,畢竟很幸運的在美國工作,正常來說會比在台灣的『責任制』工程師多上很多的休閒時間,應該好好規劃,才不致於虛度光陰。

    結語


    我還記得剛申請的國外研究所時,那時候覺得自己走過的路實在太坎刻了,因為缺乏資訊,很多東西根本就不知道,因此犯了相當多錯誤,最後運氣很好,還是有學校念,還立志一定要把這些經歷記錄下來,讓後人能夠參考。沒想到出國留學才是辛苦的開始,之後就一直沒有時間,不知不覺,我已經在美國快六年了,文章還遙遙無期。之後我在美國留學的經歷跟之後找工作到工作的過程,也都有很多值得分享的部份,不過實在很難規劃出時間好好的來寫。

    這次很感謝Hello US!的這個提議,讓我算是半強迫自己的寫下一些東西,雖然因為時間實在太趕,原本這篇文章的每個項目我都還有更多想分享成一長篇的內容,但是有寫出一些東西總是比最後不了了之的好,也算是可以把這篇當做試金石吧,如果對其中內容,或相關方面有興趣的,歡迎讓我知道,或許有天發現有此需求,再來好好的寫。希望這篇對你有所幫助。
  • 6 則留言:

    1. 謝謝分享 真的是非常棒的資訊! :)

      回覆刪除
    2. 按 facebook icon 不能分享ㄟ..

      回覆刪除
    3. 您好,感謝您熱心的分享,我是在英國,也不是念cs的,但讀了這篇覺得感同身受,獲益良多!
      我的第二份工作也是因為linked in找到的(公司寄邀請函,然後我去面試這樣),但還是linked in的初級使用者,想請問您上面說的
      「平常就該多上去跟人建立connection、保持聯繫的地方」和「平時多在LinkedIn上面活動」具體的作法是什麼?
      我們應該跟不認識的人建立connection嗎?
      謝謝您

      回覆刪除
    4. 多熟的人可以成為connection這件事情因人而異,我一般是工作上做project有交流的同事都會加進去,日常生活中本來就認識的朋友當然也會,如果你不知道要加誰,有個功能叫做People You May Know,可以玩玩看,會意外發現不少你認識的人其實也有在用。多建立connection的好處在於更多人能夠看到你的profile(3rd degree以外的人看不到你完整的profile),也更容易引起注意。

      多在LinkedIn上活動包括幾樣,多參與一些group,有很多professional group會討論不同領域有趣的話題,還有新功能LinkedIn Today,當每天看新聞一般可以掌握一下產業動態(當然前提是你的領域有相關分類)。多去follow一些你有興趣的company,不定期他們會share一些資訊、產品快報、工作機會,會在你homepage的feed能看到。沒事上去逛逛,看看你的朋友有什麼新的動態,換工作時說聲恭喜等等。

      回覆刪除
    5. Weep難得寫不是旅遊的文章!

      "興趣不只能成為第二專長,有些人還能靠興趣吃飯。有時,興趣更是靠摸索而來,起身去找!" 這句話真的很好,在台灣不要說靠興趣吃飯了,很多人連自己興趣是什麼都不知道,我覺得台灣的教育都沒有教孩子去思考自己到底要什麼跟喜歡什麼...

      LinkIn在台灣真的比較少人用,我也是去美國的那段時間才知道這個網站的。不過這幾個月我發現我周遭的人用的比例增加很多耶!我還以為你們公司來台灣拓點了XD

      在美國工作的優點中我最羨慕的就是美國蓬勃的軟體業跟美國產品的影響力了,台灣這點真的很缺乏,而且優秀的CS人才畢業後又幾乎清一色的往硬體產業走,在這邊做軟體跟網路服務真的很孤單,不過我還是抱持著萬事起頭難,總是要有人先帶頭去做的想法在這邊工作,要說台灣軟體業要追上美國矽谷蓬勃的軟體業可能還太遙遠了,但希望有一天可以改變這邊的環境跟潮流!

      回覆刪除
    6. 非常謝謝你的分享,當頭棒喝!我喜歡你在黑馬文章中提到的一句話“Luck is what happens when opportunity meets preparation."

      回覆刪除