計算機專業學生在大學四年內可以做些什麼來豐富簡歷?

就讀於華南理工大學,計算機科學與工程專業,即將大二。因為大一過得渾渾噩噩,現在績點偏低(3.0/4.0),C++專業課成績不堪入目(75/100),對未來感到很迷茫,現正逐漸調整狀態,打算在未來的三年大學時光中有所收穫。那麼,CS專業學生在大學四年內可以做些什麼豐富簡歷,在畢業就業時獲得競爭優勢呢?


我覺得大家說的都比較偏重於傳統的CS方向,比如軟體開發類。我想拋磚引玉,談談如果想走機器學習或者數據科學方向可以做些什麼準備

當然,我並不是想勸大家都來做機器學習...但如果這個方向是你的興趣,在大學時打好基礎可以先人一步!這個推薦是以像我自己一樣的普通人為前提而假設,少量條件特別好的同學可以自己摸索更有「個性」的路。

我想從從三個方向來說: a. 知識積累 b. 經驗積累 c. 素養積累

1. 知識學習:

1.1. 掌握好必備的數學基礎,其實簡單說在大學程度主要是三門課: a. 微積分 b. 線性代數. c.概率與統計。如果學有餘力,還可以看看優化方向的東西,但這個不是強求。

1.2. 掌握好一些基礎的計算機核心課程,比如資料庫,並行運算,離散數學(暫且把它放到計算機這一欄裡面)。至於編程方面的技巧,我倒覺得不是需要做到特別厲害。如果能力有限的話,可以放低對操作系統,計算機結構這種比較偏底層的課程人生要學會抓大放小,不要苛求自己樣樣精通

1.3. 學好Python,了解Python上的編程習慣(PEP8)和語法糖。同時可以多了解一些Python對應的數據科學/機器學習的工具庫,比如pandas, numpy,scipy,sklearn等。即使將來你不做機器學習,膠水語言Python的知識還是可以有很大的幫助。選擇Python的另一個原因是大部分深度學習框架,Tensorflow/Theano/Keras/Pytorch等都是基於或有Python介面。

1.4. 開始學習基礎的機器學習,比較推薦的方法是: a. 觀看Andrew Ng 在Coursera上的機器學習課程 b. 同時開始閱讀基礎的機器學習書籍(比如《集體編程智慧》《Python機器學習》《Introduction to Statistical Learning》等)。這個階段,最重要的就是不要貪多嚼不爛。如果你瀏覽知乎,會發現大家都說你必須讀Elements of Statistical Learning, PRML之類的大部頭。我承認閱讀這樣的書會有幫助,但不大適合一開始直接閱讀,因為有可能會讓你「從入門到放棄」。在你有了一定的基礎知識後,你已經知道自己需要接著做什麼了,我希望把選擇權交還給你,而不是推薦成堆的課程和書籍。當然,如果你希望繼續深入的話,中文可以閱讀周志華老師的《機器學習》和李航老師的《統計學習基礎》,英文可以入手《Elements of Statistical Learning》和《Deep Learning》。在這個階段,重點要形成成體系的知識脈絡,切記貪多嚼不爛,切記!

1.5. 學好英語,至少打下閱讀和聽力的基礎。雖然人工智慧領域中國現在已經做得很不錯,但主流的書籍、期刊和會議,資料都是英文的。我們可以接受翻譯版,但最好的方法還是自己有能力直接閱讀。即使你將來不做機器學習,英文閱讀能力還是會有很大的幫助。

2. 實踐經歷:

2.1. 嘗試儘早接觸科研,進實驗室。一般來說,大三的時候你應該已經有了基本的機器學習知識,儘管還比較淺。這個時候可以向老師/學長/學姐毛遂自薦進實驗室,即使是無償勞動和做基本的苦力活。進實驗室有兩個明顯的好處:a. 對某個小方向會有比較深入的了解。一般實驗室做純理論的不大需要本科生,做機器視覺或者自然語言處理(NLP)等小方向的比較需要本科生,所以這是很好的深入了解一個方向的機會。 b. 補充了研究經歷也可以明白自己是否適合這個領域。如果運氣好的話,你也有可能成為論文的作者之一,甚至可以去開會(公款旅遊順道見一下業內大佬)。這對於繼續深造和去國外繼續學習都很有幫助,有科研經歷和論文是很大的籌碼,對於找工作來說也絕對有利無害。

2.2. 如果對科研的興趣一般,可以嘗試儘早實習。大部分我們從書上看到的方法其實或多或少都是理想模型,甚至很多都比較過時了。舉例,現在大部分教科書里神經網路的激活函數還是sigmoid,而工業界早就不用sigmoid了。機器學習的新手最大的門檻就是學了很多知識,卻沒有使用和檢驗的機會,而儘早實習可以給你更直觀的感受,防止只有一身屠龍之技。

2.3. 可能科研和實習機會有時候可遇不可求,這時候就要自己找項目來做,用興趣來驅動項目。比較好的方法包括參加Kaggle競賽,天池競賽,或者將機器學習運用於自己感興趣的事情上。我曾看到知乎上有用機器學習判定紅樓夢後40回是否曹雪芹所寫,且不說文章是否嚴謹,但這就是用興趣推動實踐的很好的例子。

3. 社科人文:

3.1. 機器學習作為一個變化飛速的領域,要有自己的「堅持」和「品味」。舉個簡單的例子,現在的深度學習大放光彩需要歸功於一批科學家在神經網路低谷時的堅持。但同時,即使只說機器學習,也不要相信只有深度學習最好,不能固執。如果對機器學習感興趣,就不要今天覺得網路安全好,明天覺得人機互動(HCI)最有前途。追逐熱點往往到手的都是泡沫

3.2. 多讀不同領域的書,比如社科類、經濟類、人文類。因為數據科學的起點是以數據為基礎,終點提取見解提供反饋。而見解不像數字一樣一眼就可以看出高低大小,而需要閱歷來多角度分析。很多人覺得計算機學科的人讀數學看論文就夠了,實則不然,科學總會和社會有交織。舉個例子,是否該將人工智慧應用于軍事就是最近知乎上很火的問題,但回答這個問題就需要你有足夠的非計算機知識儲備,科技沒有善惡,而人有

3.3. 放低身段,多和別人交流。其實這一點有一點牽強,但我發現做機器學習的小夥伴一般都很有性格,很多也比較內向(包括我自己),這可能適用於大部分理工科的朋友。即便如此,我還是建議大家稍微放開一些,因為以數據為導向的工作大部分都要求互動,比如數據分析師、數據科學家等

4. 寫在最後:

科技日新月異,追逐熱點是好的。但就像我剛剛提到的,在這個浮躁的時代,不管選擇什麼方向最重要的就是獨立思考的能力,和去偽存真的勇氣。如果一件事情不能證實,不能證偽,那就必須存疑。大學不僅是最美好的時光,更是培養良好科學素養的關鍵時光。

因此,看了這麼多過來人分享經驗後,我最希望的是你既不要急著全盤接受,也不要因為不對胃口全盤否定。慢下來,好好想想,這大概才是做科學工作的正確態度。

願你有所收穫!?????


既然樓主選擇就業,那應該先決定好大致的方向,保證所需的知識都掌握良好。

以目前來看還不錯的 Web 開發為例,最基礎的 HTTP 協議要熟練掌握。客戶端和伺服器端怎麼傳數據,怎麼處理數據,怎麼表示數據,這些要很熟練,這樣才可以更好地清楚 Web 開發的需求怎麼實現。最好能實現一個具備常用功能的 Web Server,或者知道怎麼實現所用框架的常用功能。

掌握後端語言,方便實現各種需求。比如 Python 這樣的語言開發的時候就很方便,學習的時候要不斷嘗試嘛,使用一門節省時間的語言很有必要。如果覺得 Python 不足就等工作之前換成公司的主力語言,切換成本不大。

掌握相應的 Web 框架。實際上如果能實現前面提到的 Web Server,這一步花費的時間很少很少。查看官網的 Demo,配合 Stack Overflow 的結果,以及相應的最佳實踐,可以輕鬆掌握相應的框架。

掌握 JavaScript。要和 Web 打交道,JavaScript 難以避免。當然掌握 Python 之後,會發現 JavaScript 和 Python 很相似。當然 JavaScript 由於一些原因,有一些地方設計得可能比較不一樣,不過好在 ES6 之後屏蔽了一些,所以比較容易接受。

掌握前面說的內容,就業實際上已經有競爭力了。但是不應該止步於此,還應該掌握專業的基礎知識。

以數據結構為例,至少要實現基本的部分,比如鏈表、數組、字典、樹等,可以嘗試自製 Python 或者 JavaScript 的容器。掌握演算法之後,還應該掌握軟體工程的知識,這個有很多經典著作可以選擇,如果不清楚選什麼,就看《代碼大全》,不僅要把代碼寫出來,還應該寫優秀的代碼。

上面提到的都是以找工作為導向。按樓主的描述來看,時間上是允許的。如果還有充裕的時間,可以考慮學習編程語言原理,《程序設計語言:實踐之路》可以提升這方面的眼界。

學習知識,應該深入掌握。如同《代碼大全》里提到的「Programming into a Language」,掌握原理才能走得更遠。像前面提到的實現 Web Server、實現容器都是很好的檢驗手段,如果沒有掌握這些知識,很難實現出來。追求技術上良好的發展,就是應該沉下心來好好掌握。


0. 上好基礎課,學校的課覺得太水的話去上MIT,CMU的,這些課都有公開的lab和note。比如:haoxiang lin:在線教育平台上有哪些讓你相見恨晚的計算機或互聯網課程?

但是學校的gpa不要落下,不然以後會少了很多選擇。

1. 儘快去實驗室搬搬磚,了解一下research,看看自己喜不喜歡科研,有機會的話還可以蹭篇paper。

2. 去工業界實習,假期大把的時間就不要在家躺屍浪費了,大一開始就可以學習如何寫簡歷如何去實習了,在工業界你可以接觸到真正的CS。

3. 日常寫技術blog,寫github,覺得沒項目寫的話把MIT的幾門系統課的作業扔到github去,好好做,對本科生來說含金量也夠了。

4. 學校有機會的話出國交換一段時間,或者更好的可以去申海外的暑期研修,一是可以體驗美帝的CS教育,二是對以後申出國有很大幫助。

5. 找到女朋友。

以上五點重要性 5 &>&> 0 &>= 2 = 1 = 3 &> 4


先就題論題,回答一下答主最關注的「簡歷」問題:

CS專業學生在大學四年內可以做些什麼豐富簡歷,在畢業就業時獲得競爭優勢呢?

我曾在很多場合收到過他人的讚賞:『你的經歷非常豐富,在本科生中十分突出』,在我的簡歷背後則是一段段以嘗試各式新奇事物為樂的少年的探索故事。當嘗試的事物足夠多時,落在紙面上的經歷也就自然而然的豐富起來。

簡單概括,學生的簡歷中,乾貨主要由這幾方面組成:項目、實習、科研、獎項。

# 項目

Linus 有一句被廣為流傳的至理名言:

Talk is cheap, show me the code.

在編程界,工程師們的立身之本一定是他們實打實的代碼功底,這是灌水灌不來,看書學不到,只能靠一行行代碼一步一個腳印修鍊出來的。看了再多的書,學了再多的理論,不落實在代碼上,本領是學不來的。而代碼功底,一定是靠大大小小的項目訓練而成的。這些項目,小可以小到幾個簡單 Pages 的 Web App、知乎用戶數據的爬蟲、小而美的 CLI 效率工具;大可以大到 GCC 的某個完整模塊、某個企業級應用的前後端的全棧設計、Scalable 且 Open-domain 的問答系統等等。在實踐這些項目的過程中,你會逐漸深入的理解計算機科學中的方方面面:編譯原理、演算法、網路、資料庫、並行系統、機器學習等等。當你有了足夠多的積累,自然就可以選擇其中最吸引人、最具挑戰性、最為優雅的一些來展示在簡歷中。

解決「是什麼」和「為什麼」之後,便是大多數人最關心的:「怎麼才能參與到值得在簡歷中大書特書的項目呢」

我的簡歷中最為特別的項目是今年的 Google Summer of Code,谷歌編程之夏。該項目由 Google 主辦,面向全世界大學生。在整個暑假期間,你將會獲得一名開源社區導師的指導,為社區貢獻代碼,幫助學生得到充分的鍛煉。這個項目對致力於開發的本科生而言是含金量極高的。其一,Google 背書,Big Name Company 在簡歷中是重要的拿分點;其二,開源項目經歷,這也是一大加分項,如果能參與 GCC、OpenCV 等老牌知名項目,那簡歷上更是錦上添花;其三,則是實打實的鍛煉以及一份豐厚的報酬。

GSoC 每年都會舉辦,有興趣的同學可以參考我的一篇介紹:Google 編程之夏(GSoC):海量優質項目,豐厚報酬,你竟然還不知道?

除此之外,還有開源作品。我曾經實現過一個形如微信「表情雨」的動畫,並封裝為 Android Library 發布在 GitHub 上。發布之後的一周里,獲得了 500+ Star,項目登上了 GitHub Trending Java 語言榜的第二名,開發者排名也排到了語言總榜的前二十。在 Trending 榜上看到自己前後都是 Apache、Facebook、Google 這些名字時,感覺那真是我人生中的一大高光時刻了(逃)

誠然,簡歷上自然不會記錄這些關於 Trending 的軼事。但當你用簡潔優雅的語言介紹了你的項目,很有可能會引起面試官的興趣去 GitHub 看一看。如果做到這一點,你便已經收穫了不錯的印象分了。

除了自己主導的「小而美」的開源作品,也可以寫你參與的知名項目。試想,當你的簡歷上寫著為 Docker 實現過某重要 feature,修復過 Node.js 的某個 bug 時,面試官也許就會感到「Wow,原來這些我每天都用到的工具中也有你的貢獻」,是不是聽起來很棒?

以上僅以我參與過無數大大小小或驚艷或「無用」的項目中比較有特點的幾個舉例。回到最初的指導思想:參與的足夠多時,簡歷自然有的寫

# 實習

工程向的用人單位也會比較看重學生的實習經歷。與項目經歷類似,出色的實習經歷同樣可以反映候選人的代碼功底。而在此之上,實習經歷也能體現出你的工程經驗、項目管控能力和與他人配合的能力。

我簡歷中最主要的兩段工作經歷也十分特別。

我在結束大二下學期後選擇了一年 Gap Year。最初這個決定只是為了遠離學院陳腐過時的學習環境,希望能自主的安排學習生活,並且有充足的時間去玩耍(明明這才是關鍵)。偶然間接觸到一個還算靠譜的創業團隊,便加入其中度過了一年時光。這一年裡開發團隊從最初的兩個人慢慢發展壯大成我離職時的十餘人。最初冷啟動階段無比辛苦的連續熬夜,攻堅技術難點,趕進度,緊急修複線上 bug。這個過程中體會到了完全不同於憑興趣做開發的體驗。對公司項目而言,你必須要考慮在有限的時間、人力和成本之下如何又快又好的完成任務。絕大部分時候無法兼顧,於是你便要學會取捨。整個過程漫長而艱辛,最後濃縮為簡歷上平素的一句:

Analyze user needs and software requirements to determine design feasibility within time and cost constraints.

而後半程時,隨著隊伍的壯大,我不得不開始參與到開發組的管理之中。那時才真的體會到「管團隊寫代碼比自己全部實現都來得困難」是什麼意思。從起初的對手下低級錯誤的憤怒和不能完成我對代碼質量的要求時的大為光火,到後來逐步的調整心態,學會接受大部分的程序員水平是有上限的這個客觀事實;逐漸學習如何將項目拆分,排期,如何恩威並重,建立威信。最最最難的是在把這一切完成好之後還能做到自己代碼能力不荒廢,每天花時間自我提升。

這段實習中,我學習到了公司機器是如何運轉起來的;如何管理整個項目組;如何和各個部門協調配合;以及技術層面的,系統層級的架構設計的經驗。

當這段經歷濃縮在簡歷上的兩三行時,它就是你的 Hard Point。

與這段充滿「互聯網」風格的工作經歷相比,我目前在 MSRA 的實習則是另一個特點鮮明的極端

在研究院,完全沒有 KPI 這種概念(至少 Intern 是沒有的),每個人的項目都或多或少帶著些研究性質。儘管如今 MSRA 在逐漸強調「成果轉化」,相較以往而言對工程更加重視,但每個人仍然有極大的自由發揮空間。研究員們實現的產品,並不叫「Product」,而是「Prototype」。在這裡可以把更多的精力集中在「核心科技」的研發上。

在這裡的實習才剛剛過去一個多月,可能還無法妄談收穫。但對前沿科技的探索,身邊遍布頂級程序員的濃厚技術氛圍,對一個本科生而言都是提升巨大的。而微軟本身的影響力也意味著這在簡歷上也是能抓住面試官眼球的。

再次回到問題,如果重點在「豐富簡歷」,那麼實習公司的知名度是很關鍵的,在工作內容不水的情況下,大公司背書一定是加分的。曾經聽過謝小龍師兄的 Live,其中提到了實習公司的不同層級,個人還是滿贊同的。印象中大概是「矽谷知名公司海外實習 &> 矽谷知名公司國內分部、MSRA、華為 BAT 等研究院 &> BAT TMD 一線實習 &> 其他」。不過排名不是重點,不做展開。

而實習過程中也是能學習到很多實打實的技能的,能去大公司的好項目歷練當然最好。但很多時候可能無法兩個兼顧,可能需要在大公司水項目和小公司好項目之間取捨,這就見仁見智了,可能需要具體情況具體分析。

大學四年有三個暑假和大三下至大四上相對空閑的時間,有足夠多的機會參與到實習中。多找內推多嘗試,好的實習經歷一定是簡歷上不可或缺的。

# 科研

首先,對本科生而言科研經歷/成果不是必須的。關鍵點在於,絕大部分企業研究崗(Researcher)不招收本科生;學歷要求為本科的,幾乎都是工程師崗(Engineer)。這意味著,本科生進入工作崗位後幾乎不會從事研究性質的工作,這時用人單位並不特別 care 你之前的研究經歷。

但話分兩頭,你的簡歷上有科研經歷,肯定也不會為你減分。如果你仍有餘力,當然也可以參與一些研究項目來豐富自己的經歷。

我們都知道 Paper 是評價科研人員最重要的標準之一。如果參與科研的話,還是要儘可能的將成果落實到 Paper 上。對 CS 學生來說,簡歷 Publications 一欄有篇頂會一作,那就足夠鎮得住場了。但是,對絕大部分本科生而言,發 Paper 難,頂會一作更是難上加難。如果真的以此為目標,則必須做好投入大量時間精力的心理準備,並且儘早的加入實驗室或研究組。本科生一般可以選擇本校教授的實驗室做助研,或者在 MSRA 這樣的研究性機構做長期 Intern。

不過畢竟,即使以鄙校的大犇比例,本科生能發頂會的也是鳳毛麟角。更多時候大家還是可以以鍛煉自身科研素養、學習前沿理論為目的,認真投入,不必對 Paper 過於苛求。最終在簡歷上如實闡述自己的工作成果即可。

以上是針對本題限定的「本科生」獲得「畢業時的優勢」而談的。如果你本身希望投身前沿領域,並且有本科畢業後繼續深造的規劃,那麼科研的重要性則會大很多。非本文重點,不做展開。

# 獎項

獎項是簡歷中較為特殊的一欄。其一,基本只有應屆生才會寫,社招完全不會有這一項;其二,幾乎沒有什麼崗位會對你是否或某獎項有硬性要求。

我們其實可以看出,獎項在簡歷中的重要性是不如前述幾項的。事實也的確如此。技術面面試官其實不會特別在乎你的獲獎經歷,面試可以白板寫代碼,有沒有硬實力很容易看出,並不是特別需要獲獎經歷的佐證。簡歷上的獎項一欄,更多的是在篩簡歷輪給 HR 看的:兩份完全相同的簡歷,多了一個獎項可能在 HR 眼中會價值更高,但其實很可能兩個人的實力是不分伯仲的。而優秀程序員們找工作其實幾乎都是靠內推,直接規避了篩簡歷的步驟,所以獎項在簡歷中的重要性實在是有限。

但如果不局限在「簡歷上的價值」的話,許多競賽對於本科生還是很值得參與的。太多人都提到 ACM-ICPC,其實關鍵的不在於你能不能拿塊獎牌,重要的是備戰和比賽過程中對於演算法能力的提升。演算法功底會直接影響你在校招筆試中的成績,從而影響到你的評級。此外我還會推薦美賽 MCM,這是一個很好的鍛煉用演算法工具和數學模型解決實際問題的機會,順帶可以練一練如何寫 Paper。對數據科學崗位而言,Kaggle 也有不錯的含金量,這個我沒有參加過就不多評價了。

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

以上是針對題目限定的「簡歷」話題所做的回答。下面是幾句題外話。

關於 GPA:首先,高了肯定沒壞處。但是對就業而言 GPA 的意義並不大。注意重點,對就業而言。在我看來 CS 學生 GPA 最大的意義其實是申請國外 Master 時的一個參考項,僅此而已。到了 PhD 的申請也不怎麼看 GPA 了,人家重點看 Paper 和推薦信。我的簡歷中根本就沒有寫我的 GPA,只寫了學校和專業名稱而已。我也從來沒有在面試中被詢問過 GPA。當你展現出了過硬的代碼功底,演算法基礎,豐富的經歷,Who care your GPA?GPA 在其他方面的用途可能還有掙獎學金和出國交換機會,不過跟本題關係不大了。

有一些不會在簡歷上體現,但是同樣/更加重要的:

用心學習專業課和數學課,尤其是希望未來能在技術領域深耕的同學。太重要。不想談為什麼了,顯然的事情。

訓練信息檢索能力。大犇也不會記住所有的知識和技能,他們會在大腦中記錄索引,然後掌握快速把答案搜索出來的能力。

找個女票/男票,真心實意善待對方,珍惜在一起的時光。重要性大於前文所述一切。

// 有人對此條有疑惑,做點補充。並非抖機靈,是嚴肅誠懇的建議。我從小就對編程有著近乎痴迷的熱愛。曾經同 ex 分手後,沒日沒夜的寫代碼做研究靠沉浸其中來消解痛苦。如今也時不常會寫碼而廢寢忘食。甚至一度覺得寫碼快感爽於啪啪啪(笑)。雖說發自內心的熱愛是很不錯的特質,但如果完全的放縱自己深陷其中,很容易忽略了生活中許多美好、珍貴的事物。也許回身一看發現,有人在一直默默關心著你,如果合適,便攜手前行,也是很浪漫的事。(再寫就又是許多或青澀或遺憾的小故事了,偏題太遠,打住打住

『完』


普通二本院校,計算機科學與技術專業,15年畢業,目前在YY工作。

題主在學歷上比起很多普通院校有優勢多了,如果想豐富簡歷,我認為做好以下這些事情會對你有所幫助。

  1. 學好計算機基礎課程。如:數據結構與演算法、操作系統、編譯原理、計算機網路原理等,這些都是計算機基礎課程,能夠較好的掌握理解,對於你掌握其他應用技術都有很大幫助,而且面試時這些基礎知識是百分之百會問的。
  2. 選擇一個應用方向一門語言進行深入學習。專業是一個非常大的範圍,落實到工作應用層面,往往是一門實際的應用技術。應用方向非常多,如:移動端(Android/iOS),後端,Web,演算法,大數據,AI等等,選擇一個方向後再選擇一門語言進行開發學習,如做服務端,可以用Java、C++、Python、Go等等。
  3. 做筆記,寫博文。學習的過程中,一定會碰到各種問題,可以記錄到自己的學習筆記中,方便的時候整理成邏輯清晰的博文發布出來。日積月累,你的博客里會沉澱不少東西,方便自己回顧,和他人交流。在寫簡歷時附上自己的博客地址,技術面試官也會眼前一亮。
  4. 做項目,開源。學完一門語言後,最好的總結方式是做一個開源項目,這樣你可以更好的接觸到各種應用場景去解決問題,做什麼類型項目?如果你有好的idea,可以自行腦洞輸出,如果你沒有什麼idea,可以模仿某些應用進行高仿,最後開源到Github上。如果做得更好,你可以把做整個項目的過程寫成一個系列的文章,這樣能在簡歷上為你添加絕對的優勢。
  5. 參加含金量高的專業比賽。參加專業比賽並獲得獎項同樣能在簡歷錦上添花,前提是參加知名的賽事,對於一些名氣不大的賽事,即使拿獎含金量也不高,不參加也罷。

總體而言,對於一個剛畢業的學生來說,如何衡量他的專業能力,除了代碼就是文字,還有面試時的基礎理論,這些東西就是日積月累出來的,在有經驗的面試官面前,基本造不了假。


學好所有基礎課先。然後有幾件事情可以嘗試:

1. 參加ACM-ICPC,成績突出,就業肯定好。

2. ICPC玩不成大神,退而玩天梯賽,成績突出,也可以一提。

3. 天梯賽也不突出,至少賺到PAT代金券,大三實習前考PAT,不論哪個級別,爭取上90分,就業穩穩的。

另一條神人走的路:做個有趣的、充分複雜的軟體,把代碼貢獻到GitHub,養成寫技術博客的好習慣,就業不會差的。


0.遠離宿舍,勤去實驗室,多和周圍的大牛交流。

1.學會用好github。

2.搭建自己的博客

3.學好演算法(這個很重要,你畢業以後校招面試演算法功底基本決定了你去哪類公司),去各種OJ刷題,如果有餘力可以去打打codeforces之類的在線演算法比賽,如果有進ACM競賽社團之類的組織嘗試去加入,得獎是其次的,主要是找到組織,近朱者赤近墨者黑,大家一起走遠比你一個人走要走的遠。

4.專業課一定要好好學:計算機網路,操作系統,計算機組成原理,數據結構之類的課好好學。另外數學也要好好學:高數、概率論和線性代數。還有一點,不要掛科。

5.嘗試找到自己的興趣點,如果對機器學習感興趣可以看看國外的公開課,做做大作業,學學python,如果對分散式感興趣可以看看hadoop之類的分散式框架,推薦MIT 6.824公開課,如果對底層內核之類的感興趣不妨自己動手寫一個簡單的內核。這些都可能成為你將來和面試官的談資。

6.自己嘗試完成一些項目,這裡的項目可以是網上公開課的大作業,可以是和朋友同學一起參加的比賽項目,甚至可以是自己一時興起寫的python小爬蟲。總之,能有一兩個小項目肯定會讓你未來的簡歷好看一些~

7.多寫代碼,打好基礎,畢業起碼最好做到代碼量在十萬行以上。

8.多搗鼓搗鼓Linux,現在用不上,以後遲早會用到的。

如果以上你都能做到,我覺得你畢業當個offer收割機應該沒啥大問題。

先想到這麼多,想到再補。


我認為可以從以下幾方面出發:

1.數據結構和演算法紮實,這個可以先跟著老師學再刷OJ。

2.參加比賽:如挑戰杯,ACM,數學建模,創新創業等。

3.開拓視野:別我只會c++,鄙視其他語言。。。,有心儀的崗位可以到網上找大公司的JD看和面試題做,爭取大二暑假可以去大公司實習,實習一次就基本夠了,留點時間沉澱總結。

4.通過總結形成知識脈絡,並分享給學習的共同體(github,blog等)。

5.貴在堅持。

我覺得計劃那麼長,還得有時間管理和自我反省的能力,不然,連陪女朋友的時間都沒有了。


大家好,按照規矩,透露一下利益相關吧:

IT培訓機構,大家叫我小U就行

首先恭喜提問的同學,你上的是華南理工大學,隸屬於985計劃的高校,平台應該是相當不錯的,一個好的學校,確實可以幫助你獲得更多面試官的青睞。

其次,小U向你透露一個小秘密,計算機行業面試官注重的學生特質,按以下順序依次排列:

  • 編程思維能力;
  • 構建代碼的能力/實戰項目能力;
  • 溝通能力/人際交往能力;
  • 成績/績點;

大一的時候,剛結束高中繁重的學業,來到大學、談戀愛、玩社團,都是你必須體驗的經歷,沒有人要求你,你也不用像高中那樣高強度的學習,所以,你不必為「虛度光陰」而感到後悔。

到了大二,既然確定好自己畢業後的方向——就業,那麼,你就應該從以下幾點著手,好好分析一下自己的缺陷不足,然後逐一改進:

1. 基礎知識:CS專業的基礎知識,涵蓋了C語言、計算機網路、資料庫表查詢等等,你目前的C++成績課是75/100,非常巧合的是,這個比例和你的績點一樣(3.0 / 4.0)。

所以我在這裡做一個不太負責任的猜測:你的各科基礎知識掌握得都不是太牢靠,對於已經上完的課程,一定要把自己看劇、玩遊戲的時間抽出來,好好花時間把這部分短板給補足。基礎知識是決定你未來職業高度的根基,無論是請教學長學姐彌補不足,還是重新複習,這個坎兒你一定要走過去。

2. 明確自己的技術發展方向。精通某一門語言是很有必要的,做某一個領域裡的專家,要比當一個什麼都懂,但什麼都不精的萬事通要強。現在比較熱門的開發語言有很多,比如:Java(Android開發/大數據)、C++(桌面Windows應用程序開發)、Swift(iOS)、PHP(後端)、HTML 5/CSS/JS(前端開發)、PHP(後端開發)、Python(數據分析/爬蟲)。

先選擇你喜歡的行業,再選擇一門你喜歡的語言,當然,如果你是因為愛上了某一門語言,從而決定入了某個行業,這樣也不錯。

3. 學練結合。一定要掌握好英語,至少達到能熟讀文檔的水平,這個重要性就不多講了,畢竟有很多前沿的技術都是從英語國家來的。

確定好某種開發語言,就可以著手學習了,知乎上有許多相關資源,在搜索框里輸入「小白入門XX」即可,教程一定要反覆看、實例一定要親自敲代碼,這樣才能有助於鞏固記憶。

當你自學收穫了一些成效後,就可以著手做一些開發項目了,這個也完全是按照你的興趣去做,可以自己建個網站玩玩,也可以試著開發一個應用。要知道,你第一次做這些,會碰到許多坑,當你可以把這些問題都解決了的時候,你就真的有成長了。

4. 溝通/合作能力,空閑的時候,混社區、混平台也是比較重要的,GitHub上有許多優秀的開源項目,你也可以把自己的小項目開源道GitHub上,然後在技術社區里和其他前輩一起探討可以改進的地方,集思廣益,讓大家一起來提意見。

合作能力方面,主要涉及了表達能力和心態方面的問題,但這方面,小U相信你一定能行,和別人交流、探討問題的過程中,相關能力就已經獲得了鍛煉和提升,總有一天,你的代碼和成長,會讓面試官刮目相看。

5. 參加比賽。這個不但對你的主動性有要求,還考察了你的信息檢索能力,你的本專業會安排一些信息專業的比賽,主要應該是和大學生相關的,值得參加,可以去向你的輔導員老師或專業老師那邊去詢問、了解。

社會上面BAT、360等巨頭們也會不定期地舉辦各種信息競賽,經常關注CSDN等國內技術論壇,保持關注,幾乎可以保證不會錯過這些機會。

不用太過盲目追求賽後名次,畢竟競賽性質的項目,是選手和選手之間直接的腦力較量,還是非常看重天賦的,當然,能拿到名次最好。

(夾帶的私貨)小U不太推薦大家參加校內老師的項目,一個是因為老師項目的操作語言,和你立志發展的可能會不太相符,另一點就是,不是作為一個主導者的身份參與進來,乾的活兒的創造性不強,自然很難提升能力。

當然,以上只是我的個人看法,不代表不跟著老師做項目就好。相反,你如果是一個沒什麼計劃和安排的人,還不如跟著老師去做呢。

相信做完了以上幾點,你一定會有一封更加漂亮的簡歷了,加油!


少上知乎,少讓別人為你規劃你的人生,多走自己的路。

該拿什麼獎,該參加什麼項目,國家級統一認證考試是否參加,需不需要考慮企業私有認證,要不要考慮參加省級國家級比賽競賽統統是需要結合自己的條件,結合自己的想法,分析是否對自己短期中期長期的技能提升,簡歷提升有幫助的。不是說今天你看到了我說寫個博客你就去寫,明天你看到了他說多用github你也就成為了面向github編程的人。cs學科要的是踏踏實實的技術和本事,隨著國內大中小院校和研究所對整個cs體系的不斷深入教育越來越需要的是掌握各種cs分支的中高端人才,絕不是一味的按照某種知乎的方法和模板「提升」和「完善」自己。


找門感興趣的語言 擼代碼 注意演算法學習 看看gayhub,寫寫博客 簡歷就貼gayhub star,和博客地址就好(#滑稽)


14年畢業,二本計科,目前在日本敲業務代碼。大學做了很多事情,除了學習,所以畢業時的成績很難看。(不過相關專業課都是90+)

幸運的是趕上了13年iOS的浪潮,報了一個培訓摸爬滾打了三個月,然後悶在宿舍里敲了幾個月的代碼。因為我當時是培訓班裡成績能力最好的,所以被培訓班順理成章的作為明星學院推薦出去了。大四在北京實習了一年。(每次一想到掛在教室的明星學員牆上的照片。。。。

畢業的時候簡歷里是這樣的。

大學期間擔任曾班長,學生會主席,編程協會會長。在組織管理能力上較為突出,有良好的溝通能力。

曾獲得C語言,彙編,演算法等單科獎學金,英語6級,日語2級。

實習經驗1年,有iOS上線應用,可獨立擔當小型項目。

熟悉xx,xx,xx語言,熟悉xx,xx,xx庫,熟悉xxxx(這裡羅列招聘簡歷上會出現的崗位要求

期望待遇4k+

這份簡歷不記得投給了北京的多少公司,反正是到我出國前沒人理過我。

不行了,伺服器出bug了,要去幹活了,最後一句,

題主你要豐富的是你自己,而不是簡歷。


課內

1. 不要好高騖遠,隨波逐流

2. 學科基礎一定要打好

3. 鍛煉編程能力

課餘

1. 學會讀英語和讀技術文檔

2. 讀一些優秀的書籍,建議從工程實用性入手,不要一上手就理論性很強

3. 學會使用git,參與一些互聯網的開源項目,了解如何貢獻代碼,如何遵循社區規範

本科還是老老實實打學科基礎,並且嘗試鍛煉你的工程能力,如果有心走半理論路線,請考研選個好方向。


難道沒人題github項目?leetcode刷題?


今年大三。廈門cs妹子一個。

如果真的喜歡做一名程序猿。就像樓上的各位說的,參加ACM,參加各種大賽。還有一個方法。是我們導師告訴我們的。可以建自己的博客。可以把自己的學習心得。或者寫過的代碼什麼的放上去。然後堅持下去嘍...反正老師說面試時有一個很多年的有東西的博客比個人簡歷上的精通技能強...emmmm...跑題了....

如果想做得更好...數據結構好好學嘍...演算法還是很重要的....講道理...演算法才是最重要的吧

如果不是真的想做一名程序猿...趁早轉型嘍...

可以學習ui啊.交互啊.產品啊.還有網路方面什麼的.

我就不喜歡做程序猿...現在在自學ui...


對計算機的學生把芝麻集中起來比較有效。

未來6個月專註一個領域:圖像處理,人工智慧之類。

作為本科學生太深入的研究不太可能,自己去找一個開源項目非常深入研究。加個界面發到網上。

比如這個:

Rochester-NRT/RocAlphaGo

然後就可以去藐視那些面試官了


既然選擇就業,大膽放棄GPA(但這並不是你不學專業課的理由,只是說不用太刻意在意成績)。

多做一些項目,可以和要好的同學一起,也可以跟著老師做。你想成為什麼樣的人需要你先去和什麼樣的人一起共事,這會讓這件事變的簡單很多。

其他的就沒啥了,唯手熟爾。


還不如問問已經工作的學長,他們的生活工作狀況,你以後是否可以接受這種生活,你是否適合這個職業,是不是很熱愛編程,是喜歡研究還是喜歡開發,考研不考研?

好好想想職業規劃,了解一下各個崗位需要的技能點,把學校的課程學好,自己課餘時間學習相關崗位所需要的技能就好了吧。

剛剛畢業的菜雞得到的教訓就是,沒有很早的做職業規劃,很吃虧。


一個字:精通!

其實不管你接觸多少東西,學過多少東西,如果不能達到熟練或者精通,不管在企業或者科研,都是很難做的。

你現在所學的專業課,個人覺得只是讓你形成對一個專業的看法,你要做的還是精通一些東西。

認識一個學長,大學四年啥也沒幹,沒事就拿著Linux的書開始啃。。然後畢業了就上天了。


這行業也看書面成績嗎 ,學的好不如用的好啊。


推薦閱讀:

去中大華工直接讀計科,還是去北航降級轉專業再讀計科or軟工?
軟體工程很難學么?
軟體工程本科畢業後直接去工作和選擇讀研,哪一個對未來的職業發展更有利?
計算機軟體與硬體結合部分的構造是怎樣的?
軟體工程專業如何選擇方向?

TAG:編程 | 軟體工程 | 計算機科學 | C | 華南理工大學SCUT |