現在轉CS是否來得及?過幾年美國CS是否還那麼好就業?

美國物理phd在讀生。感覺興趣越來越小,所以想找個好找工作的方向直接就業。現在CS這麼火,不過也有各種人說CS馬上就要飽和,自己擔心又跳進另一個坑中,還浪費家裡那麼多錢。所以請問各位大神現在轉CS是否還值得?個人比較擔心收不回本的問題(自己CS基礎不太好,沒上過什麼演算法課,但學習能力還是有的,但有點擔心成為炮灰找不到工作)


謝邀。

先說結論,仍然有很多機會,略有點晚,需要努力,不怕吃苦可以轉。

從2013年到現在IT行業大幅度發展,光是一線的大公司(FLAMGT且不論包裹大小)就擴張出了幾萬個工作機會,基本上這兩年北美CS畢業的碩士或者博士,只要認真刷了演算法題的至少能進個Microsoft、Amazon這樣的公司找個攻城獅的職位。

但是從今年夏天開始,行業的擴張步伐放緩了,現在從一線這幾個大公司來看,LMT三家本身問題比較多,不裁人就算不錯的了,FG兩家也基本達到預期的人數規模,校招名額紛紛縮水,至少Facebook從今年六七月起就不怎麼招非名校的新鮮碩士畢業生了,內推了好些都直接被斃了。目前來看只有Amazon仍然在努力擴張(招的不如走的多……乘機黑一把哈哈),從機會角度來說,確實少了很多。

不過整個IT行業角度來說,新興的Startup仍然絡繹不絕,二線的大公司如甲骨文、Cisco、VM等等前兩年基本上沒搶著啥人,只要努力聯繫人內推外加自己努力刷題,拿幾個面試肯定是沒問題的,個人感覺,比起物理方向很多坑很深的專業(比如天體物理,乘機黑一把)還是要好的多。

另外補充一點,不得不承認,從IT圈的風氣來說,並不是特別好,攻城獅能朝九晚五的公司很少啊……大部分情況請作好996的心理準備。

共勉~


更新一下答案吧,之前確實有些地方說得不太妥當,各位見諒。

就說說面試簡單這個問題,確實,intern的面試肯定比full-time要簡單不少,給大二的面試題也不可能有多挑戰。另一方面,答主在國內折騰過OI,來這邊之後折騰ACM,那堆演算法一直也在翻來覆去的倒騰,所以對於面試的內容,還是比較熟的。

再clarify另外一點,基礎課之外的內容,在job application中當然是有用的,自己各種做project,各種之前的實習經歷,包括GPA,上過的課,以及跟教授做科研的經歷,都能為自己的申請加不少分。想想有過暑假實習經歷後,今年到career fair扔簡歷明顯比之前輕鬆不少OvO.

最後回到自己要說的『面試簡單』這個問題。美帝這邊的面試,內容只有一個——「演算法」。答主上個月面完Facebook,第一輪是在學校面的,45分鐘兩道演算法題;第二輪onsite也是演算法。full-time的面試自然要麻煩點:intern第二輪面一場,full-time一天背靠背4場,但也都是演算法為主。通常3場是純演算法面試;還有一場可能是design question,不要求細節,但讓你整體闡述下對於某個大project的思路,主要是考察你的知識面(是不是前端後端資料庫啥的都知道一點)和系統思考的能力。

不過就算是full-time,考題的難度也不可能太大:能在45分鐘之內想出來,在白板上寫出完整代碼,再和面試官闡述自己的做法,如果難到需要各種高級數據結構和複雜演算法支持,時間自然是不夠的。還是那句話,有興趣的可以參考下careercup和glassdoor上別人回憶的面試題,intern和fulltime的都有,個人覺得雖然題庫不一定很新(敢作死違反NDA的人畢竟少數),但其難度還是比較準確的。

====================分割線=======================

先說說矽谷IT吧,答主在美國大二讀CS,經歷過大大小小的career fair 面試也有快10場了吧,個人覺得當前矽谷IT業的泡沫,真不是一般的大。目前答主面過的公司里,所有technical question都只是相當基礎的演算法題。基礎到什麼程度呢?我們學校CS的3門課(編程入門,基本數據結構,再加個微機原理),你只要上了前2門,成績多多少少不差,各種homework project認真完成,80%的公司面試基本就可以輕鬆應付了。面過某公司,上來先讓我寫fib,最難的問題是二叉樹和二叉排序樹有什麼區別;其他公司的題上careercup glassdoor翻翻也會發現難不到哪裡去。那你要問,剩下的3年,基礎課上完了做啥?單從找實習、找工作的角度來說,下面的內容並不能幫助面試,最多在簡歷里加上幾行而已,當然如果對CS感興趣,裡面的乾貨還是相當多的。如果一個行業的面試,都只要求一些大一水準的問題,那麼其中的泡沫,應該還是挺明顯的吧。

再說說公司里,答主暑假有幸在矽谷某非著名公司實習過,整個體驗相當好,福利工資啥的沒得說,不過另一很大的感受就是——『砸錢』。答主在沒寫過一行javascript的情況下,進了公司做前端,前3個星期是啥都看不懂的階段,就算最後做出來的東西,無論質量實用性也都不忍直視。幾位去別的公司實習的同學,情況多少比我好點,做的事更加對口,做出來的質量也高些,但做的東西也都沒整合到公司的主要產品中。總體的感覺是,公司付不少薪水請你來寫代碼,更多的是在你身上投資,在你做project的時候看到你的潛力,最終在畢業的時候邀請你成為正式員工,而不是指望你在2個月之內做出有影響力的產品。這當然是相當好的想法——對於一個公司來說,通過2個月的實習來了解一個人,遠遠比通過幾場面試了解得透徹。但想一想,沒有巨大的資金支持,哪家公司能做到這樣呢?

再說說CS,CS的入門其實不難,學會語言學會工具就好。但要做出好的CS,並不是容易的事。舉個栗子,滴滴打車的第一個版本,大概是幾個實習生花2個月寫出來的,雖然能用,但漏洞百出,從司機端到客戶端到伺服器,既不準確也不高效。獲得融資之後,滴滴重寫了代碼,完全重新設計了產品架構,想一下現在你用滴滴叫車,按下叫車鍵的時候,如何將請求發到後台伺服器,伺服器如何將訂單發給最合適的司機,司機搶單之後如何選擇最合適的司機派單,再考慮如何解決移動網路網速慢、定位不準一類bug,做出一個真正能用的滴滴打車,可就遠不是學會寫幾門語言那麼簡單了。一個公司當然需要大量能實幹的程序猿。如果你只會把老闆的任務很簡單地翻譯成代碼,就像第一版的嘀嘀打車,按照行業的火熱程度,現在靠這樣的水平,再刷刷演算法題,找到個好工作並不是什麼難事。但如果行業不景氣,公司縮招,裁員,可能最先影響到的,就是這些最底層的人吧。

最後回到題主的問題,個人覺得樓主如果只是因為就業/行業熱門就選擇轉行CS,是相當不明智的行為。當初答主準備出國時,也多少參與了各種刷獎刷活動的行為,指望提高姿勢水平進入名校,雖然結果不差,但當真正入學時,翻翻自己簡歷上那些華而不實的東西,感覺多少有些空虛。而那些在申請時,還在追隨自己興趣的同學,那些發自內心的努力,也多少得到了名校的認可,而當他們回憶起自己申請的日子,更多的應該是充實與快樂吧。如果樓主對physics有興趣,放棄真的是挺可惜的。如果擔心找工作,不如在做phd的同時,也關注一下行業,更偏重實用一點,同時不停地和industry建立各種聯繫,最終的結果,一定不會差。

【一己之見,輕噴】


實名反對那個說面試各種簡單的答案。

================================

然而,前面那位答主已經改過答案了。

主要反對的是他一開始的簡略版答案,說面試題都是fib,binary tree這些,感覺有點誤導群眾。大學四年面試下來能很明顯感覺到面試難度跟我的簡歷豐富程度成正比,如果不小心寫了linux/shell相關的project,就要準備好被問到跪,至於binary tree相關的我記的都是口答題。。。但答主太懶,不想再編輯了。

================================

首先,他所謂的面試簡單多半是針對intern尤其是大二intern的。大部分大二學生本來知道就不多,公司do not expect too much from them. 所以面試的題那麼簡單,那位答主會覺得是他上過的課應付得了的。

然而題主已經是phd了,公司要僱傭你意味著要付出比intern高得多得多的工資,並且期望多得多的回報,所以面試考驗題主水平的時候,會有更大可能性出 能對應題主phd身份的難題。舉個栗子,公司有個學HPC的phd,他面試的時候有三場完完全全是在聊他發過的paper,領過的課題,technical方面CPU cache被問到跪,根本沒有一道演算法題。

演算法題是給剛畢業的本科cs新人準備。畢竟新人除了演算法也不知道什麼別的啊(扶額)

另外,面試題的難度really depends on companies. 想當年我大學的時候面過從大到小那麼多公司很明顯能感覺出來Google 比Microsoft/Amazon之流要難要深,最重要的是,Fulltime明顯比intern的難度上了一個台階。 如果面試官是你projects方面的大牛,就要準備好那個領域被問到跪。答主本科感受就是拿實習很簡單,但Full time很難拿(是答主水平太差:/ )。總之不是刷刷題庫就包過了的,很多公司看重課外的projects,對CS 某一領域的強烈興趣,以及在這一領域的知識深度 廣度,和自己課外所做的研究。簡而言之,看! 你! 是! 不! 是! 真! 的! 有! 興! 趣!

題主要是不想去大公司,據我所知現在抽H1B的概率是逐年降低越來越小了。。。題主要是想留美,還是大公司概率高一點點保險一點點。而且他們可以選擇外派你去海外的分部,總之很多方法啦。。。要是不想留美,去小科技公司呆兩年還是相對容易的。有些startup真是見人就招,到處挖人,linkedin上成天被這些公司騷擾。

鑒於題主提供了信息說是物理phd,前面也有小夥伴推薦去做金融,兼修CS。。。舉雙手同意。答主有幾個美國小夥伴本科也是物理major,現在跟答主一起在高頻交易公司,做trader,Entry-level工資大概是Google兩倍(小夥伴說)。。。雖然現在已經過了交易公司最旺盛的富得流油的季節了(好懷念08年啊 望天),但是高盛,Citadel,jane street之類的公司還在招traders,數量穩健,並且短期內沒有下降的趨勢。

當然題主要是更厲害,完全可以去投行,工資bonus之類的更高得多。

說了pros,作為一個辯證的人一定要指出一些cons。。。第一 金融公司沒有科技公司那麼多遍地開花,找工作絕不會比CS major找個小公司呆著簡單。 第二,職業所要承擔的風險一定比程序猿大。第三,普遍會比程序猿累。贊成題主轉金融只是覺得這行業現景 前景都好,而且金融離物理更近。

題主你要是有關於科技的理想抱負,對cs某一領域的熱情和嚮往,並且智商過硬,英語流利,學校響亮,那快快轉CS,大公司歡迎你。

如果題主只是像我一樣只想多攢點的票子,並且考慮了上面的cons,可以選擇惡補金融和數學(尤其是概率,numerical analysis之類的)。紐約歡迎你。


當然可以,以我個人為例:國內大學純文科專業(法學),等大四的時候同學都開始找工作了,突然想不開要轉CS,因為幾乎完全沒有理工科基礎,也就意味著要從微積分、離散數學、數據結構這些基礎從頭開始。而且人際圈裡沒有相關的朋友,沒有人指點,只能厚著臉皮找人帶。兩年過去了,現在在某個SaaS公司做開發。網上CS的免費資料這麼多,基本上在學習上沒花過家裡的錢。

其實如果覺得一個方向不錯,與其猶豫不決,不如先試著做做看,不然你也不知道自己會遇到什麼。而且直覺有時反而比理性的思考更有效,尤其是在大方向上,例如人生規劃。

現在回頭看,真慶幸當初頭腦一熱所做的決定


說說一個朋友的經歷

環境系萌妹子的逆襲

轉行cs一年,從一無所知到拿到FB summer intern

這是一段很神奇的經歷。因為一年前,我連java都不會寫,唯一的計算機相關經歷是大一在國內大學修過的公共必修--計算機基礎c語言(也早已忘光)。現在竟然拿到fb internship offer,也算是世界真奇妙了。

簡介一下我的背景:本科是國內top10大學環境系, 研究生是美國top50大學土木環境系。吶,可想而知畢業之後求職不順利啦。也不是最厲害的名校,還讀這麼個專業,你懂得。。美國研究生畢業後在這邊做了兩個綠色建築方面的實習。實習的時候上司也對我都蠻好的,要正式full-time offer就不給了&>.&<, 說不sponsor國際學生。。總之就是各種糾結,各種求面試,再各種悲傷了一年吧,決定轉行計算機。。

-------------打開新世界大門的分界線----------------

那是在去年二月,我突然發現有個學校cs系研究生申請接受本科不是cs系的學生,錄取後只要求第一學期修一些cs本科必修課,我覺得很適合我的情況,就申請啦。14年2月申請完,我就想著,那就趕緊讀一些課程做準備吧,這樣9月開學就可以刷題啦,想想就棒棒噠 ^ ^

從14年2月申請完到8月底學校開學前,我在coursera,edx,udacity還有一些學校的cs系公開課程網站上物色了一堆課,最後上完的有python和java的入門課程,UC Berkeley的61B data structure, Princeton的Algorithm 1、2。包括作業和project都認真做了。在學的過程中感覺自己逐漸有點入門,每天都特別開心!感覺找到了真愛@@

到7月algorithm學到一半的時候,我上了第一次九章!!(額,所以這裡的潛台詞是,我後來又上了一次,因為此時太弱,各種似懂非懂)。九章的兩次經歷放在下面的框框詳細闡述,此處先跳過。

--------------真的開始刷題的分界線----------------

轉眼就到了14年9月,開學啦,就正式開始刷題啦!刷題的標配就是cracking the coding interview和leetcode嘛(當然還有可愛的lintcode)。我當時根基非常淺薄,馬步還沒扎穩也沒法練九陰真經啦,就開始慢慢看cc150。

我當時看好慢,每一章的流程是:先看完一章的所有內容,理解一下,把主要的解題思路和好的優化的方法記在本子上,整理一下。然後把題目複製到eclipse裡面,一道一道自己寫一遍,包括test cases。然後再跟書上的寫法對比,看看人家怎麼寫的(每次一對比都會覺得,人家怎麼就這麼聰明,我怎麼這麼蠢-。-)然後把書合上,自己在eclipse上重新寫一個比較優化的演算法。

吶,時光飛逝,就這麼緩慢地把cc150刷了兩遍,就到了12月了。。期間我又上了一次九章的課(也是在後面詳述),當然這次有了刷題基礎就感覺好多啦,深深感覺九章的課特別有用!當然,此時已經有一些可愛的小夥伴得到了offer。。我不管他們,誰讓我是菜鳥呢,也沒法太早面啊。。所以我是去年12月才正式開始投簡歷&<3

-------------邊刷題邊準備面試的分界線--------------

啊,其實對暑期實習來說,12月也不算太晚,反正我就接到了一些大公司的面試,比如amazon,fb,google之類。那我特別菜鳥嘛,怎麼搞到這些面試的呢,找人refer唄^ ^。九章的某位老師就幫我refer過哈哈,特別有用,立刻拿到面試了!哎呀,所以要臉皮厚,各種找朋友幫忙推,就會有面試噠(反正我是把朋友圈輪了一遍,各種厚臉皮求小夥伴幫忙)。

有了面試機會刷題效率會立刻得到提升的!!反正我以前有時會偷個懶呀,今天少刷幾題呀。。有面試了就覺得不會!因為不準備的話分分鐘深跪不起。。&>.&<我也是從這個時候開始怒刷leetcode,開始是按難度做的,先easy,再medium。然後再一遍easy,medium。再接著從高頻到低頻刷hard。(額,高手肯定不像我這麼搞。。因為我比較菜,預感在面試前也刷不完hard,就只能先把高頻做了)

結果面試的時候人品大爆發,遇到的所有題我都刷過(額,也有變體啦,不過蠻類似leetcode原題)!那人生中第一次面試(Amazon)就過了。。第二次(FB)也過了。。我就懶得面第三個了,之後面試就推了。。

因為我面的兩家都拿到offer,hr都對我蠻好噠,交流也很順利。印象比較深的是fb的recuiter,特別賣萌,效率奇高,秒回郵件,打電話的時候態度也特別好。那我就愉快地接了offer,現在各種期待暑假啦!

(啊,這裡需要說面經嗎?我也不懂規矩。。額,需要的話之後補吧。。)

獲取更多最新IT求職資訊,關注微信公眾號ninechapter。

http://weixin.qq.com/r/sUPl-YTES9k0rcCe9xaj (二維碼自動識別)


這裡有一個很好的分析:

IT行業泡沫什麼時候會破滅?CS就業是否要飽和?


大的形勢來說,未來人類越來越多的工作交給自動化和計算機,人類的工作只剩下過自己的生活、保持身體健康和到處旅遊, 和真正的工作:
動腦的智力工作。動腦的輸出,基本上體現在計算機程序,無論是在哪個行業,即使動腦的結果是科研成果和論文輸出了,這也要把成果計算機化之後,才能直接影
響人類生活。

從現實經濟體量來看,美國技術類的上市公司市值已經佔了90%的納斯達克和40%的紐交所。其中大部分是需求CS類別的。 其它跟軍工和宇航掛鉤的,國際學生很難就業。美國這些年頭,暴發出來的富翁,基本上是技術類的。 美國就是一個以技術立國的國家。

從經濟周期看,經濟蕭條期,CS不行,其它行業更差。 經濟好轉時,CS一馬當先。

有一個代表性的百億美元的富翁說了「「軟體將吞掉整個世界」。人類只要開發軟體,讓軟體指揮機器,所有的其它工作智能機器人會幫你。你們是動嘴炮, 這些富翁是用自己的巨額的錢往裡面砸,用砸錢的方式來說話的。

你迷茫是因為你沒有分析未來的能力,這樣就不能在低潮時堅持,類似於當初泡沫破裂時,能堅持下來的人都發大財了,也沒有多久時間,堅持下來的公司成為大公司,堅持下來的人才成為大富翁。

建議你看這二個思想:

傳奇人物馬克-安德森:五大思想改變互聯網

網路經濟的十種策略 (豆瓣)

留意這些思想的發布日期


你目前靠譜的選擇應該有:

  1. 繼續留在學術界搞物理

  2. 去華爾街搞金融
  3. 去矽谷搞IT

如果選項1已經被叉了,那就是2和3的選擇(假設2不需要PhD學位),這是兩條完全不同的路,各有利弊。如果你更傾向於3,那就努力。至於IT過幾年還火不火,看看在過去若干年中IT對自己和身邊人生活方式影響的廣度和深度,基本就可以預估未來的市場會有多大了。CS的東西在未來很可能不是高級技能,而是基礎技能。你只會和人類打交道不會和機器打交道都不好意思和別人打招呼。就個體而言,能讀物理PhD的人智商肯定足夠高,能出國的人執行力一定夠強。只要不找借口,車到山前自有路。


你好,我也是轉cs,在cmu的me轉cs,兩年辛苦下來,剛剛收到google的offer。我寫了一些心得,已經發到一畝三分地和mitbbs,現在知乎也發一下,希望能幫到你。

http://zhuanlan.zhihu.com/p/20780181


要真心喜歡,肯定能回本,並且樂在其中;

如果本無愛,只為生計,請珍愛生命,遠離CS。


本人目前也在努力刷題找工作中,本來一個學長可以幫忙弄進亞馬遜,由於個人原因沒去,導致現在暑假苦逼刷題,腸子都悔青了。最近又在聽學長說,亞馬遜,google, facebook已經開啟大面積縮招new grad流程了,說是為了預防後期的全面崩盤,08年崩盤所有IT公司都沒招人,這次這些公司提前開始做準備了。不知道到18年5月畢業前能否找到工作,自求多福,只怪自己沒有珍惜機會。如果有小夥伴有興趣我也可以幫大家介紹這位學長。


從今年的形式來看,cs的就業環境確實是在變差的,轉幾篇一畝三分地里的文章

16Fall入學的同學:你做好準備迎接就業低谷了嗎? | 美國留學就業規劃|Warald諮詢

美國IT行業就業難度加大!公司縮招!國際學生求職更難! | 美國留學就業規劃|Warald諮詢

以及我很懷疑。。我明年畢業川普改了H1B之後能不能拿到最低標準的工資


說實話,可能有點晚了,已經有些飽和了


可以轉quant


其實現在IT行業的前景還是很好的。先不說FLAG這種一流的IT公司,還有如雨後春筍一般不斷冒出來的startup,對IT人才的需求只會越來越大。而且就算不是IT公司,很多別的行業的公司也會有IT部門,這些崗位也是你選擇就業的一個方向。

千里之行始於足下。

其實要說晚吧,什麼時候都不晚的啦。只要你下定決心開始,現在轉CS也是來得及的。因為CS的入門不是很難。我經常可以看到別人轉專業找CS工作,刷題9個月拿到Bloomberg offer,想想還是十分勵志的,但也說明轉專業並不是那麼難的事情。

作為一個在IT屆摸爬滾打了很多年的老人,我給你一些建議:

1、先把基礎打牢

首先入門不難,但是基礎打牢還是很重要的。可以買兩本演算法和數據結構的書看看,畢竟你後半輩子都要交代在這個行業中了,如果你想進好一些的公司,基礎打牢之後才能撐住你之後要學習的內容,地基打牢才能更好的蓋房子是一樣的道理。我個人比較喜歡的一本書是《Coding Interviews》,中文名叫《劍指Offer》,裡面的習題非常基礎、有代表性,網上有可以直接在線練習的地方:《劍指offer課後習題在線評測》,連買書的錢都可以省了。

2、找准未來的方向

IT行業有很多個方向,有開發的,有測試的,然後還分不同種的語言。如果你是非科班出身,那你應該揚長避短,選擇最適合自己的方向和語言,而不是一股腦得學,學的雜而不精。

3、多做面試真題

既然你是想跨專業工作,那你除了增長自身碼力之外,還要應付你的面試官,在提升面試技巧的同時,建議你多刷一些面試真題或者針對你自己選的專業的題目,這不僅是對自己的一種提升,也是能最快速應付面試的方法。在平時就應該多刷刷題,積累代碼量,面試前應該刷精選題,刷《美國大公司面試真題題庫》,這個題庫裡面一共有126道精選題,做完6道題目才可以解鎖下一關,有種組隊打boss的快感。

其實做一件事,最難的就是踏出第一步,你真的走出這一步了,最難的一關也就過去了。在這裡祝題主順利入門,找到好工作呀。


推薦閱讀:

如何評價2015年5月6日李開復在矽谷地區進行的「中國式創新」講座?
加利福尼亞州在美國是一種怎樣的存在?
為什麼矽谷的人在造火箭,搞人工智慧,虛擬現實生物工程,而我們卻在玩互聯網?

TAG:矽谷 | 計算機科學 | 就業 |