美國Coding Bootcamp求職心得
先聲明,本篇比較適合沒有VISA問題的人
為什麼想走Web?
簡言之,我自知不夠聰明+沒錢+衡量風險
我沒有在美國念過學位也幾乎沒在美國生活過,一開始來英文能力幾乎是其慘狀態。本身的背景是在台灣念物理學士與研究所,沒念還好一念了理論物理後才不小心發現自己是智障的秘密,放棄走繼續走學術,拖了好幾年後才割捨下物理這條路,全部打掉重練轉而向走CS。
Why web development?
Overall, I know I am not smart enough, I am poor and also measure the risk.
I never got a degree in the states and almost never life in the stats, so my English ability was horrible in the beginning. My background was went to university to study physics, before I studied it, I thought I was very smart, but after I studied physic, I finally discovered the secret that I am an idiot. So after many years, I finally decided to give up on my journey to pursue my physics dream and I then made a transition to computer science.
原本開始我是想走機器學習(人工智慧、ML),坦白說我覺得挺有趣且與能物理結合,上完了Udacity和Andrew Ng發現寫程式跟學魔法一樣實在太有趣了。但來到美國後發現走發現風險太高,競爭太激烈,聽說至少要博士學位或名校畢業,否則太多只能做比較低端乏味的工作,而非比較有趣的建模型,為了確保我不要餓死,最後是選擇風險較低比較平穩的Web development,一路走下去,發現自己越學越有興趣。
Originally I want to do machine learning, I felt excited and thought I can combine machine learning with my physics skill, after I completed the Udacity and Andrew Ng course, I realized write code is same as learning magic. But after I moved to the U.S I figured out the risk is too high to find a data scientist job, it’s too competitive. I heard I need to have at least a PHD or have graduated from a universally recognized post secondary school. Therefore, in order to make sure I won’t surfer from hunger and die, finally I decided to be a web developer, and gradually, I found it’s more interesting after I kept learning more about it.
我來美國只攜帶六十萬台幣,我會建議大家預算再高一點,不要那麼省,我找到工作前住shelter,和毒蟲和會亂打人的精神障礙者住,假日去和遊民一起領免費食物,扣掉Bootcamp學費我只剩三十萬台幣,我大概只能一年可以活。調查Bootcamp畢業生,走web 的在三到六個月找到工作,而走ML的可能會花上六個月到一年。在報名前一個月我決定選擇走完全沒接觸過的Web development,畢竟我一年後沒找到工作還真的得領糧食券流浪街頭了。
I only bring twenty thousand dollars to the stats, I would recommend raising their budget and not to be so frugal. Before I found a job I lived in a shelter, with drug users (who exhort it, but used to be), with some mental issue guy who will actually attack you, on the weekend I went to church to grab some free food. After exclude the bootcamp fee I only had ten thousand, it might only allow me to live with one year, after I did some reassure from bootcamp grad, people who do the web development usually find a job between 3 months to 6 months, but people who do machine learning, might spent 6 months to one year. So finally I decide to join the web development program, otherwise I might need to use my food stamp after one year.
我給自己的預算是,最慢來美國一年內得找到工作
上Bootcamp前該做什麼準備?
What do you need to prepare before you go to a coding bootcamp?
我會建議你先看完任何一堂Udemy的課程(可以買到十美元的,千萬不要買原價),上完後確定你自己有興趣,我當時開課前是看完Colt Steele的The Web Developer Bootcamp,上完後覺得寫網頁還挺有趣的,而且不難,我不確定這門課現在有沒有過時,如果不喜歡的話,你隨便挑一個最熱門的講師的課程上都可以,至少跟完一半。,
至於如何使用課程?建議你邊看邊跟著老師寫code,我自己是外接大螢幕,寫程式要自己寫,才會有感覺,不能光看。卡住就問問題,大多數熱門課程都有助教會回答妳問題。
I recommend you finish any of the Udemy Courses( It’s very easy to find a coupon for 10 bucks, never buy for the original price). Then, for me, I continued with the Colt Steel’s program.
The Colt Steel web developer bootcamp that I took before the actual bootcamp I enrolled into helped out tremendously. After I finished that course, I felt web development was so interesting and not too hard. I am not sure this course is out of the date or not, but you can choose any course from the popular instructor on Udemy, and at least finish half of it.
How do you use the lesson? I would recommend you code alone, I connected a big screen, and it’s necessary to write code by yourself but not just only watching the video. When you get stuck, most of the popular courses have TA’s that are able to answer your questions.
Before you go to a coding bootcamp, it’s better to know some basic JavaScript and some frontend and backend knowledge
上課前你最好要得先知道基本的JavaScript,前端和一點點後端的知識
重點中的重點
"你若是覺得寫程式很有趣,有成就感,請再來考慮Bootcamp"
我在Bootcamp看到各梯次很多學生都完全沒準備就來,開課後根本完全跟不上,我們program是六個月的,坊間許多三個月的program你只會更難跟上。
This is the main point that I want to communicate.
“Before you consider the coding bootcamp, you should at least do some smaller programs or projects to see if writing code is enjoyable and to check if it gives you a sense of fulfillment “
In the bootcamp, I saw some student that didn’t do anything in preparation for the curriculum. After we started the quarter, they could not keep up. My program was 6 months long. Other standard bootcamps can be just 3 months. If you don’t prepare, then it will be extremely difficult.
什麼樣的人適合Coding Bootcamp?
我並不會說所有人都適合來,我覺得適合的人是
一、你得至少有六個月全職寫程式。
二、不用太聰明,但也不要太笨,剛剛好就好。
三、三十萬台幣的學費。
四、上面提到的重點,你要有點興趣。
我們Bootcamp很多半工半讀的,最後表現都不會太好,太多數表現很傑出的大多是一天投資至少10小時太寫程式上面。
寫程式不用太聰明,任何學歷任何科系都有可能寫得好,但你也不要太笨。我看過許多高中學歷、社區大學文科,程式能力很突出的案例,不過根據我的經驗,理工科的通常不會表現太差就是了。
上面提到的先看完任何一門課程很重要,我提到的講師算是最好理解的、講得最有趣的講師之一,如果你連教學生動、由淺入深的老師都無法接受,建議你不要轉職。
此外,如果你有能力憑自己的努力找到任何一個developer的intern,我建議你直接去intern比較好。
Bootcamp狀況
我本身不在沿岸,特地選了一個鄉下州省錢 非沿岸我猜學費都落在 12k~17k左右 bootcamp跟台灣的補習班完全不一樣通常是一天教個一小時,頂多兩小時,剩下的時間讓你自己用他們的平台練習,寫一堆toy project 偶而有group project。我們學校每個quarter 要生出一個project,之後能放在你的履歷上。
其實 一開始實在超不習慣這種方式 ,但後來發現這就是美國人的學習方式 其實到底教了什麼不是重點,重點是模擬實際工作的環境。
Bootcamp的好處
一、有一群有相同理念的人互相扶持
二、有老師可以問,可以想成付錢來當intern然後有senior給你問到飽
三、有方向性,至少你知道該讀什麼,以及哪些不重要。
四、沒學歷的放在上面至少讓你有個像學歷的經驗
五、有就業輔導(很多人很會寫程式,但behabior questuons完全不會回答)
六、如果你不是英文母語的話,根本比語言學校還便宜。
Bootcamp該如何運用?
再來講bootcamp怎麼運用
一、建議先有基礎,上udemy自學三個月 bootcamp裡面一堆人跟不上,此外也剛好測試你有無興趣
二、卡住半小時,就問老師。
三、和同學良好互動很重要
四、每天從早到晚code,不停學習
我這個梯次,由於我一開始進去第一天就刷leetcode 幾乎帶動了小讀書會 我們是9~4點,我個人通常待在學校待到10點 一天扣掉吃飯幾乎是花10小時在code上面。
撇開我個人其實把這當語言學校念的個人需求,我對Bootcamp的看法比較是
你付錢給Senior developer來當你隨傳隨到的mentor,讓你快速成長
我本身不是很建議完全從這裡吸收知識,美國人的教學不像是台灣補習班那樣把你全部餵飽。此外Udemy有全世界最頂尖的講師,你大可以在上面找到更好的教學。
找工狀況
同梯次全班8人,4個畢業前找到Full time,2個找到intern,當然每個梯次狀況不同,和資質與風氣有關係 ,我前面兩三梯頗多人找工作找到六個月到一年 。
我一開始bootcamp program第三個月時,學校有跟一間fortune top 20的公司合作。我一不小心就過了2關面試,成為全班第一個過面試的。但她最後給我選的職缺是 Quality Engineer or Autamation Enginer,後來我就直接說我想Developer 拒絕掉了,現在想想若沒太多談判本錢,其實覺得先求有再求好比較好。
原本以為畢業學成很好找工作,但後來發現我錯了。之後陸陸續續海投了200封 連續三個月下來只有一個面試 ,一度考慮去target做casher。而反觀美國同學因為英語是母語一堆面試,搞得我每天擔心的要死 這裡要講到身為公民到底有沒有身份優勢了。
一、大公司主要還是看你“在美國”的學歷
你有沒有身份對大公司沒差。你有學歷再來有身份才會加分,沒學歷的話連面試都拿不到。單就履歷表通過面試而言,我拿到的面試機會幾乎是 ,美國同學高中學歷的1/3。
二、小公司主要是看你即戰力
故很在乎他們喜不喜歡你,尤其是在鄉下州一堆沒看過外國人的土包子 ,他們看到你英文講成那樣都直接拒絕了,有的直接回:you can go back to improve your English and apply after 6 months, 很明顯的美國中小公司對於非母語的不太歡迎我,即使我面試答對全部的問題。
六個月下來,總共只拿到大概10個面試,四個onsite 。因此最後拿到的offer都是對外國人友善的大公司,本身有sponsor(但我其實不必sponsor), 畢業後大概兩個月時 我畢業後拿到第一間offer,fortune 500 巨無霸型印度外包公司,80k full time 如果搬家到NC的話對方開給我85k +relocate fee,另一間則是IBM,但NC。
超過六個月還找不到工作的,根據我的經驗有
一、太笨的(普通笨還是可以找得到)
二、太老的(超過45歲政治不正確地告訴你,有點困難)
三、太忙太懶的(一邊打工的)
目前根據我的經驗,扣除以上狀況的,大多數人六個月以後都找到工作。
這邊來講到面試的方法
頂尖科技公司我不清楚,建議可以自己去一畝三分爬文,但若你目標不是頂尖科技公司,或許還是可以一下,大多非超大型公司考到頗多語言、框架特性,但你也可以把時間全部投資在刷題,就看你如何分配風險。
一、把面試的影片看一看當文科背一背就好。
政治不正確的說,其實不用真的會寫程式,我當時面試時,Java只接觸3個月左右。面試考一些為啥String是immutable how to create a unique instance,how do you avoid race condition problem 和一堆multithread的 question。我根本一行multi thread的project都沒寫過就把印度的亞裔同胞的準備面試影片背一背,然後拿到的問題都一樣就過了。
沒辦法面試就會考這些,很多平常用不到的概念、可以直接查到的概念,面試就是會問。
二、要有像樣的project
寫project其實就把基本的CRUD寫一寫 然後上網google酷炫的libary,套進去就變成你自己的 反正通常面試也不定會被問到,前端好看最重要 我想走後端,一開始後端JWT那些用半天, 一開始我的projet是類似cafetalk的線上外語平台 ,後來全部砍掉重做專注於怎樣讓project看起來很屌。
別人是先想出很屌的project ,我當然得發揮咱們應試技巧 。反過來先把酷炫的library找出來 然後再慢慢湊出project主題 ,每個人看到我的project都很驚艷。
三、基本的解題能力 leetcode 基本題寫一寫
超熱門公司我不清楚,但其實你不走FLAG就基本的常見題重複寫個幾次就好,譬如tree的題目就可以直接放掉 。大多考array、string、recurssive,亞洲人比美國人的優勢就是,我們習慣了考試文化。我每次面試解題時都被美國人當天才,殊不知譬如fibonacii 、binary search這種題目我早就默寫過三次,當默寫背出來而已,我認為準備個五十到一百常見題差不多。
四、語言、框架的概念題背一背就是了
非google那類的中小公司很愛考語言特性,如果你不是走前幾大公司一畝三分神人的準備心得當看一看就好了 。
很多非FLAG的公司會問你基礎語言特質的問題。
我畢業前拿到IBM的OA,拿到oa前當然要先上組一畝三分爬文, oa過了就問一些常考的 2 sum、3 sum、4 sum這種 ,先上網準備好。寫題目就是把套路當文科背一背就好。兩個月後recruiter跟我道歉說,他們招滿了,於是 recruiter問我要不要般到NC去 。不過至少也建立了自己有過IBM面試的自信,心態變成我選公司而不是公司選我。
五、英語能力要能溝通
其實我花了大量時間在語言上,幾乎一有聚餐、討論我都湊上去 當語言學校學簡直俗又大碗 。
最後決定的公司基於隱私就不說是哪間了,一共四輪面試 問了一堆design pattern和multithread的問題 以及考一些leetcode的基本題目。準備方法也是跟上面一樣,背一背就好 我們bootcamp裡面就存在大量會寫程式 但不習慣把面試必考概念背一背的人,這種在面試就很吃虧。至於我那麼孬的人,當然不是google、 facebook那種大公司,但大概有fortune 100,最後給的包是93k,我有用86k的去complete) ,我不是住沿海,我這州平均developer 新人價是60~70k, 聽到薪水就簽了 。
Bootcamp畢業生的質量?
看到有些教授、大咖反對bootcamp畢業生說程度很差, 但bootcamp門檻當然比學校門檻低很多, 當然也不能保證各種龍蛇雜處的人都會寫程式,我確實也看過很多Bootcamp畢業還不會寫程式的 。但這裡就是過基本門檻就收 我們同學有 高中畢業的、有小學老師、有MIT畢業的、念名校政治的、之前做工的什麼樣的人都有 ,給你資源,但造化還是在個人,這裡就是賣你一個機會,就看你個人的機體如何運用。
和四年的CS本科相比自然是比較劣勢的,因為六個月跟大學唸四年CS比的自然沒啥好比 ,但還是有不少公司願意找bootcamp畢業生。
如果真要比較我會這樣比,四年畢業的CS新鮮人和具有三年業界工作畢業的Bootcamp畢業生,我會覺得後者必較容易找工作。
你若是要用網頁開發的技能來比較的話,在這六個月時間,我們學全了所有業界對於junior web developer 的入門基本要求,其他領域我不知道,單就網頁開發而言幾乎就業後也跟本科的能力不相上下。畢竟大多數的web職缺是要會基本的操作,設計出網站。而不是每個人都要去做研發的、做研究 。
我無法保證每一個個體的程度強不強,但web的市場我是覺得還是挺大的,畢竟看到有些同學程式能力實在令我覺得十分堪憂最後還是找到工作,雖然薪水可能大概坐落在50~60k找不到人的小公司就是了。