研二在讀研究生,該不該自學CS?

本人剛上研二,集成電路方向,專業本身也還好。問題是研二由於一些原因,換了一個方向,所以現在需要從頭開始學起,而且這個方向就業形勢也不好。所以想請教各位大佬,我現在該不該自學軟體,應該要學哪門語言,以便明年校招的時候找工作可以去實習。謝謝各位!

題主本科時學過C.C++,對編程有一些興趣,但是現在基本上已經還給老師了。學校還好,但是我所在專業的排名很低,沒有知名度。


去招聘網站上自己做個統計分析,看看各企業哪些崗位招人,都招什麼樣的人,需要掌握什麼樣的職業技能,然後結合自己的實際情況,看看到畢業前的這段時間,通過自學能達到什麼程度,有多大可能性達到用人單位特定崗位的技能要求。

「知彼知己」之後,再做決策就比較客觀了。


感謝邀請。

Q:

研二在讀研究生,該不該自學CS?

首先,你需要明白一點:

  • 該不該自學 CS,跟你是不是研究生,是不是在讀研究生,沒有任何必然因素。

在問題描述里,你是這樣說明自己情況的:

問題是研二由於一些原因,換了一個方向,所以現在需要從頭開始學起

我不清楚你更換方向的原因是什麼,只是想提醒下,你現在又想換方向,有想過自己當初換方向的初心嗎?

勿忘初心才能不負夢想

好好想想初心,如果目前 + 未來的自己都能認為當時的初心是不對的,而學 CS 是對的。

那就可以嘗試自學 CS。

接著,你又拋出一個事情:

而且這個方向就業形勢也不好

你需明白,就業形勢不好 != 零就業:

  • 對於行業的頂尖人才來說,其行業的就業形勢是非常非常非常好的;
  • 對於行業的新手人才來說,其行業的就業形勢依然是非常非常非常糟糕的;

比如你想轉行的 CS 專業,對有些人來說,就業也是相當嚴峻的:

總結:

  • 你目前研究生就讀方向的就業形勢不好,不應該是你自學 CS 的主因。

Q:

所以想請教各位大佬,我現在該不該自學軟體,應該要學哪門語言,以便明年校招的時候找工作可以去實習。謝謝各位!

目前你讀研二,按照正常讀書年級,應該 24 歲了吧。

24 歲說大不大,說小也不小了。怎麼能將自己未來的職業方向,隨隨便便就交給未曾與你接觸過的人手上呢?不覺得太過草率了嗎??

你才是真正與你相處 24 年的人啊,難道在這 24 年的相處過程中,你都沒想明白自己真正想要什麼嗎?沒想明白自己下一步應該怎麼走嗎?

就這樣隨隨便便交給所謂的「大佬」陌生人???

我很不理解哦。

總結:

  • 請自己去搞明白自己未來想從事職業。不要隨隨便便的就把決策權交給陌生人。


目前《絕地求生》的銷量超過千萬,且連續26周銷量第一名,超越了之前的Steam第二大遊戲CS:GO,所以別選cs,選擇吃雞吧!


最最主要的動力應該是興趣,有興趣,找到方法去達到你的目標。

如果對計算機科學有興趣,完全可以投入時間學習。

1、首先通過一門編程語言學會編程,推薦Python。也可以是其它的編程語言。

2、再學習離散數學,數據結果和演算法,刷題,為了應付面試。也是為了在計算機科學道路上走得更遠。

3、再學習計算機基礎的幾門基礎課(哪幾門,留給你去搜索吧)。

基礎課,書大全。


一點拙見,僅供參考。

1、該不該學軟體?

我應該可以理解成學編程吧?

我覺得在當今社會分工已經細化到令人髮指的程度,只要你擁有能保證在任何一個城市都能靠自己的手藝養活自己,這已經足夠了。

所以回到問題,我去年從野雞大專畢業後,也在想我以後要從事什麼職業。可以看一下我在知乎上的第一篇回答,裡面有我的經歷。總的來說我是結合自己的底子(有硬體、軟體經驗)通過不斷嘗試(Python、Java)來發掘自己的興趣,然後根據興趣來導向我的職業。

我只能提供上面的建議,但真不一定適合你。興趣導向的結果,有可能你會被工作壓垮並開始厭惡編程然後轉行,浪費很多時間,有可能漸漸對編程失去興趣,整天就等著下班走人,這樣是最痛苦的,當然最好的情況是你通過編程解決了工作上的問題並感到愉悅,因為接收到了正反饋所以想要更加努力地學習從而能夠解決更多的問題,這樣的良性循環是最好的情況。既然你說了你對編程感興趣,並且已經在求學的路上走到研究生,那麼相信我你的學習能力走這條路的結果再差也差不到哪去。

所以最終的問題是,你真的對編程感興趣嗎?我不是說你要像我一樣,現在生活里只剩下了技術,就像《Whiplash》里主角只剩下鼓一樣。但編程是個不進步就會被驅離的行業,不能一直保持著學習狀態很難跟上編程技術的發展。

2、學什麼語言?

這是目前為止最新的 TIOBE 編程語言排名,我結合自己的知識,簡單解釋這些主流語言的是為了解決什麼問題而出現的,有可能有不對的地方。

* Java——我目前從事的職業,主要是中大型網站應用伺服器,也就是後端,面向對象。

* C——我最開始接觸的,現在應該分兩個方向,一個是嵌入式(C51、MSP430或STM32),另一個是操作系統層級的編程,面向過程。

* C++——可以乾的事情太多了,而且幹得都還不錯,遊戲應用伺服器、桌面圖形,是個大坑,面向對象。

* C#——什麼都可以干但是沒有特別的長處,除了 U3D 我暫時不知道它還能做什麼,面向對象。

* Python——中小型網站應用伺服器,但最牛的還是機器學習那一塊,國內什麼不好就是喜歡炒熱詞,什麼大數據、機器學習和神經網路炒得項目不加這個詞不敢上線一樣。但是如果能夠屏蔽外界干擾靜下心來走機器學習這條路,還是很有發展前途的,面向對象。

* PHP——中小型網站應用伺服器,反正我覺得語法挺噁心,當然 Java 語法也繁雜,不過 JVM-based 語言有很多。

* JavaScript——和 Java 沒半毛錢關係,JS 現在是一股妖風,從應用伺服器(Node.js)到前端都能做。但是語法依然很混亂,是沒有統一標準的混亂,我遇到過三個前端為了一個功能實現,然後給我寫了三份風格完全不一樣的代碼,很是頭疼,面向對象。

當然 TIOBE 在並不全部適用於國內的行情,不過通過我在成都工作的這段時間裡的觀察,Python 在這裡應該是比較小眾的,最多的還是 Java,C 和 C++ 也有很多做射頻的要,PHP 已經日薄西山,C# 沒人要,JS 前端依然很火。


你學長學姐應該有轉行的或者干本專業工作的吧,以他們為參考就差不多了,一般不會差太遠。再結合自身情況看轉不轉吧,我只能告訴你一年比一年難找。。因為越來越多的人轉了,而且你可能算起步比較晚了。。


謝邀,先聲明,本人就是從集成電路轉CS並且找到工作的,我在知乎上有個回答描述了我的學習過程和方法:知乎用戶:有多少人按@蕭井陌大神給出的Python+Flask路線找到工作了?

那麼這個回答就梳理一下當初為什麼選擇轉行,以及在轉行的過程中所做過的一些事情吧,希望可以給你提供一些參考。

首先分析一下你寫在問題描述里的內容吧:

Q:

研二由於一些原因,換了一個方向,所以現在需要從頭開始學起,而且這個方向就業形勢也不好。

  1. 我之前學的也是集成電路,從碩士的就業形式上來說,大多數公司招人並不怎麼看具體研究方向,只要大方向相同(就是數字、模擬、射頻之類的大方向),基本上沒什麼問題。主要看重的還是基礎扎不紮實,研究的小方向以及項目經歷是加分項。
  2. 崗位需求量確實沒有CS這麼多,但是基本上想要找個集成電路相關的工作還是蠻輕鬆的,你可以參考下你們的學長學姐們是怎麼找工作的,他們能找的什麼樣的工作,你如果平常上點心學習,也是一樣可以找到跟他們差不多的工作的。
  3. 碩士應該是需要發論文才能畢業的,所以找工作是一件事,碩士畢業也是一件重要的事情,還是需要協調好時間。

Q:

該不該自學軟體,應該要學哪門語言,以便明年校招的時候找工作可以去實習。題主本科時學過C.C++,對編程有一些興趣,但是現在基本上已經還給老師了

  1. 該不該自學軟體,這一點只能由你自己來決定,利和弊可以從一個外人的角度(肯定不夠全面)分析給你聽,決定還是你自己來做。關於選擇什麼語言,可以看看其他答主的分析,挺全面的,我就不多說了。

---------------------------------------------------------------------------------------------------------------------------------

其次,我描述下轉行之前的狀態,為什麼選擇轉行、轉行之後的狀態,希望可以對你有一些參考。

轉行之前的狀態

我的碩士生活其實蠻輕鬆的,科研任務並不重,基本上就幾件事情,如果沒有什麼變化,就按照這個軌跡生活了:

  • 第一年,上課,修學分,給導師當助教,輔導一些本科生做大作業,改作業改試卷等等
  • 第二年,開始看一些專業文獻,準備寫小論文,做一些集成電路形式化驗證方面的研究
  • 第三年,發表修修補補的小論文,寫大論文,找工作,混喝等死求畢業

我也是研二的時候,開始學習編程相關的知識的,導師對我的影響其實也挺大的,他原本也是計算機學院的,然後做他的助教的時候,除了IC相關的課,還有《深入理解計算機系統》這門課,對的,就是類似於CMU那門計算機導論課程,用的教材也是同一本:深入理解計算機系統(英文版·第2版) (豆瓣),也是在這個時候,發現自己對寫程序的興趣遠遠大於電路的模擬模擬。

為什麼選擇轉行,決定轉行之前做過哪些工作

關於是否需要自學CS並轉行,我當時是做過分析的:

第一點,就是分析自己當前的水平(這一點用來衡量你做出的決定所需要付出的沉沒成本):

  • 本科的時候學過C語言,自學過一部分Python(答主本科時候是個門門課60分的學渣,但是我C語言有90分哈哈哈哈哈),研一學了深入理解計算機系統這門課(為了助教的面子(不被本科生的問題難倒),所以這本書前前後後起碼看過5遍,那些實驗也都做過很多次)
  • 本科時候集成電路相關的其實只學習了數字電路設計、模擬電路設計以及Verilog HDL這三門課程,碩士一年級學了大部分集成電路相關的基礎知識,然後用Python做了詞法、語法分析(分析Verilog HDL語言並應用謂詞抽象演算法,這是集成電路形式化驗證的一個研究方向)。

所以我最後得出的結論是:我個人在當時的CS水平和集成電路的水平實際上差不了多少,都屬於還沒有完全入門狀態。CS水平相當於半只腳還沒跨過入門的門檻,集成電路水平相當於半只腳剛跨過入門的門檻,半斤八兩。所以,選擇轉行其實沉默成本並沒有高到無法接受的程度。

第二點,就是分析就業形勢:

  • 我家人都在杭州,所以想畢業留在杭州。杭州的IC公司,錢少事多離家近(杭州的集成電路相關崗位超過10K的挺少的),而且崗位也少,華為之類的留在杭州的硬體部門都不是核心部門。互聯網公司工資稍微高一些,崗位多,留在杭州發展至少以後也有阿里、網易這些大公司可以去。

所以結論很明顯,在杭州來說,互聯網的工作前景&>集成電路的工作前景,基本上沒有什麼疑問。

第三點,就是想清楚,決定學習CS之後,預計自己會面臨怎麼樣的情況,可不可以接受這種生活方式。然後當然是去收集信息了,看看轉行自學CS之後是什麼樣的一種生活狀態:我就在知乎上搜索了那些轉行CS的問題和回答,大致分為幾類:

  • 自學CS,找不到工作,找工作很坎坷,容易被鄙視。找不到工作風險還是有點大的
  • 自學CS,找到了工作,有的工資比以前少,有的工資和以前差不多。相同點就是:轉行的過程中以及轉行之後,基本上都是處於一種很緊張的學習狀態。可以看看這個回答,其實大多數人在找到工作之後,都是有一種劫後餘生的幸運感,以及轉行之後還是需要學習很多東西的迫切感,有多少人按@蕭井陌大神給出的Python+Flask路線找到工作了?

所以,轉行自學CS是要冒著找不到工作的風險的(而且可能這個風險還有點大),自學CS的過程中也是要付出很多的努力的(辛苦程度堪比考研),即使在找到工作以後很長一段時間內也還是需要繼續保持學習時的那種生活狀態(因為要學習的東西真的很多,停止學習就會有丟掉工作的風險)。

這個時候就是需要問自己能不能接受這種生活狀態的時候,如果你經歷過考研的話,相當於,把考研那半年的生活狀態複製到到未來的一兩年。我當時想過這個問題,也猶豫了挺久的,最後想通了關鍵的一點:難道自己做集成電路的工作以後就不需要這樣學習了?一下子就豁然開朗,集成電路想找好工作,研究生期間也是得這麼學的,找到工作之後,初入職場的前一兩年,也還是得拚命學習做事,其實都是一樣的。

想明白了之後,就下定決心開始自學CS了,關於如何自學CS,可以看我這個回答:知乎用戶:有多少人按@蕭井陌大神給出的Python+Flask路線找到工作了?


說興趣有毛用啊,你靠興趣活著么,轉行。

去學前端,花一兩個月看書(js,css,html,http)做做練習。然後去找網上的視頻教程,如百度前端啊,實驗樓前端啊,把他們的作業做完再結合最新的框架和庫搞出一個自己的東西,能在面試的時候講的那種。別想c++了,c++後台要求很高的,初學者一年絕對不夠。


如果感興趣,實驗室比較閑的話,可以先試試學習編程。然後再決定轉不轉。

在明年校招之前,你的時間綽綽有餘。

難看的分割線 ---------------------------------------

再補充下。

從我這兒來看的話,你可以果斷轉。下面有人說的對,你師姐師兄的路基本上也就是你要走的路。

興趣和堅持最重要,如果沒有這兩樣的話,還是算了。

網上有好多教程,在實驗室可以看這些教程,但是晚上一定要看書,以書為主。入門先看一些簡單的書,但是入門後一定要看那些領域經典的書。

你在有的答案下面說害怕走彎路,這個擔心是對的,我就走過很多彎路。一開始我同學讓我學 Java,後面做安卓應用。我學完 Java 後,15年 iOS 編程比較火,就轉身學 Objective-C,學完後發覺做這麼個 APP 有什麼用,後端才是計算機的靈魂。從那時起,我才開始靜下心來學計算機的。那時已經是研二上學期的十一月份,我開始學 C/C++,數據結構與演算法,資料庫,網路,操作系統。當然後面在知乎上看到說 Python 語法比較優雅,才入了 Python 的坑,現在在一家中國互聯網第二梯隊的公司做 Python 開發。有答案說入前端吧,前端也行,畢竟我表弟今年二本畢業,畢業前前端培訓,也找到了工作,工資還行。如果你是真心想做程序員,我個人建議還是先學計算機最基礎的課程,上面我提到的那些,數據結構與演算法,資料庫,網路,操作系統。然後再選擇一個方向深入。

我當初是因為我們實驗室比較水,上了研後沒事可做,才轉行的,導師不管,我每天從早到晚都在學編程。你估計下你時間,只要下決心,堅持的應該足夠了。

語言的話,還是推薦 Java 吧,畢竟目前校招還是以 Java 為主,C++ 不好掌握,雖然我用 C++ 做演算法題,進了百度,訊飛,....... 的面試。

我希望你看完後能立馬安裝個 Java 環境試試,不要再發這種月經貼了,先幹起來再說。


研二而已,學CS有何難。本科實習的時候遇到過一個某985高校學電子的學長。本來已經保研,奈何在選擇方向的時候與導師發生衝突。一氣之下,放棄讀研。過年的時候,深感本專業工作難找,也找不到滿意的。開始看演算法書籍,Java基礎。在三月份拿到了幾家中小型互聯網公司的offer 。最終去了一家創業型公司,也就是我所實習的公司。雖然他編程基礎不是很好,但是邏輯思維很清晰,在公司一兩個月也就能上手項目。工作不到一年,跳槽。拿到某陌和某團offer。薪資差不多翻一倍,原薪資本來就不低。

樓主目前研二而已,用半年到一年得時間步入CS行業,沒什麼難度。就看你目標是否明確,是否肯花時間了吧。就目前而言,網路上CS學習資源超級多。加油!


cs玩的人不多了,吃雞吧。


可以自學,推薦cs1.6版本


不用自學,我免費帶你,我的steam ID叫 小豬豬


推薦閱讀:

印度為什麼製藥和IT特彆強?
想轉行學IT好么?
心理學專業畢業的學生適合從事哪些方面的工作?
IT行業的人老了怎麼辦?
網站開發、iOS開發、Android開發自學選擇哪個比較好?

TAG:研究生 | 轉行 | IT行業 |