計算機及相關專業的同學如何規劃大學四年?

作者:aspook

時間:2019-05-02

地址:https://blog.csdn.net/ahence/article/details/89765102

 

前言:本文是前段時間給大學學弟學妹們的分享,之前寫在「大學生成長之路」這個公衆號上,現發佈在博客上,希望能給更多需要的人一些建議和啓發。

這幾日在小區門口看到了兒童編程的廣告,去年教育部將Python納入全國計算機等級考試科目,甚至山東省的小學信息技術教材中也加入了Python內容。由此可見國家對計算機科學的重視,也能看到全民學習編程的熱情。

顯然部分原因是市場推動,計算機相關專業畢業生的薪資近幾年持續走高,某些崗位優秀的應屆畢業生就能拿到30~40萬年薪。

這似乎給了計算機及其相關專業的大學生一些動力,同時也帶來了一些壓力。大家應該認真思考如何規劃自己的大學時光,因爲這幾年的努力直接決定了你畢業時能進入什麼樣的公司,能拿到多少薪水。

作爲過來人,結合自身經歷,跟大家分享一下如何利用好大學這幾年,希望能給大家一些參考和幫助,避免一些前人踩過的坑。

一、儘早確定自己的興趣和方向

計算機及相關專業的同學,並非都是對計算機、對編程感興趣的。然而更嚴重的一件事似乎是大學新生對自己的專業與未來感到迷茫,找不到自己的興趣與方向,在之前的文章《寫給即將步入大學的同學們》中也提到過。

對大部分同學來說有個迷茫的過程也很正常,但大二時希望每個同學都能找到自己的方向,越早越好。

相對來說,學習計算機和編程確實比較辛苦,因此興趣很重要。

興趣是最好的老師,在我們學習過程中遇到困難、挫折,興趣支撐我們繼續前行;在不斷的編碼、調試過程中,興趣陪伴我們度過一個個不眠之夜。

如果只是看到程序員的高薪水或者蹭熱度而去學習編程,其實很難深入地去學習,也很難堅持下來。

因此建議計算機及相關專業的同學,一定要確定自己是否真的對編程感興趣,如果發現自己確實不感興趣,也不失爲一件好事,與其在不感興趣的事情上浪費時間,倒不如在自己真正感興趣的方向上投入。

另外,對於對非計算機專業的學生,如果有興趣想學習編程的話也沒問題,完全可以自學相關知識。

二、如何學習編程

1 興趣驅動

前文已經詳細說明了興趣的重要性,學習計算機編程必須以興趣來驅動,這裏不再多說了。

我在大一時,其實個人對編程也談不上什麼興趣,只是覺得要好好學每一門課程,現在想想應該當時也在一個對專業迷茫的階段,直到後來產生了興趣從而堅持下來。所以大家不要擔心,有一個認知的過程很正常。

2 學好一些重要的課程

如果要從事編程工作的話,學校裏有一些課程至關重要,它們是計算機原理、操作系統、編譯原理、計算機網絡、數據結構和算法等。

可能大家發現都是一些計算機基礎課程,是的,學好了這些可以受用終生,這麼說一點也不誇張,它們決定了你能在計算機編程的道路上走多遠。

千尺高臺起於壘土,同學們需要把基礎夯實,把地基打穩。其實各種新技術層出不窮,但最底層的原理都是類似的。

基礎原理很重要,我們不能僅僅滿足於能完成功能,還要了解底層原理,然後纔有可能對性能調優、舉一反三。我在面試一些應聘者的時候,基礎原理考察也是一個重要方面,大概佔三分之一左右的比重。後來我到了BAT一線大廠,包括我自己去面試,發現大公司更加註重對基礎知識的考察。

一些非計算機科班的同學,學校裏並沒有開上述課程,例如GIS專業,可能更側重應用開發或二次開發,計算機原理方面的課程相對少一些。建議大家如果有志於計算機編程,一定要自己補充這些方面的內容。

3 堅持動手實踐

學習編程沒有捷徑,只有堅持不懈地寫代碼,動手實踐。

計算機博士徐宥的一篇文章——《十年學會程序設計》裏提到:

不斷地編寫,最好的學習方法是在實踐中學習。

編程像所有其他的技藝一樣,遵循一萬小時理論,只有不斷的練習纔會真正的掌握編程這門技藝。

所以從現在就開始練習吧,珍惜每一次老師佈置的編程作業,認真地實現,而不是抄襲其他同學;認真完成實驗室的項目,把握住每一次的鍛鍊機會;認真地對待每一次的競賽,在實踐中提升自己的編程能力。從實踐中很容易獲得成就感,反過來也有助於興趣的養成。

哪怕一開始只會寫”Hello World“,哪怕只會照着書本敲代碼,相信我,只要經過持續不斷地動手實踐,總有一天你能達到大神的境界,一覽衆山小。

4 專注與精通

爲什麼要提“專注”呢?

因爲現在各種新技術五花八門,且如雨後春筍層出不窮,做技術的人都有新鮮感與好奇心,但一個人精力有限,不可能在每項技術上都投入太多時間。其實就業之後也一樣,大部分人都是螺絲釘,專注於某個技術方向。

當然這裏的意思並非不讓大家接觸太多技術,大家完全可以花時間去了解自己感興趣的,只是建議大家不要跟風,看到什麼熱門兒學什麼,要有自己的技術視野和判斷。

希望大家能做到至少精通一兩門技術,這其實很不容易。以Android開發爲例,要做到精通,大概要掌握以下知識:

  • Java或Kotlin語言
  • Android應用層SDK
  • Android應用性能優化
  • Android架構設計
  • Android Framework層
  • Java虛擬機、Android Dalvik、ART虛擬機原理
  • Android內核設計思想
  • Linux操作系統
  • ……

上述只是簡單羅列,還不包括日益推陳出新的Android端新技術,但可見精通一門技術並不容易。從另一個角度也說明技術不是一朝一夕的事情,需要長期堅持實踐積累。

再補充一點,關於編程語言,其他語言不說,考慮到AI、機器學習以及大前端的發展方向,建議學好Python和JavaScript兩門腳本語言,這兩門語言相對其他語言也是比較容易入門的,也是日後非常好就業且高薪的方向。

早先也寫過一篇文章《面對五花八門的新技術,如何看待與學習》,可以參考一下。

5 持續學習

技術日新月異,互聯網IT行業也是一個活到老學到老的行業,需要持續學習。

要學習新的技能,基礎在此時就顯得特別重要,這也是前文希望大家學好幾門基礎課程的原因之一。根基紮實,很容易就能掌握新的技術,否則很可能事倍功半,步履維艱。

學習需要時間,大學相對是一個時間充裕的階段,等到畢業甚至成家,屬於自己的學習時間就更少了。回過頭想想,當年大學時似乎也浪費了不少時間,希望各位同學能珍惜時間,爭分奪秒,在大學期間就修煉好內功。

另一方面需要培養自學能力。這個能力很重要,在《我在大學裏學到的最重要的東西》這篇文章中特地強調過,無論什麼專業或行業都適用。

6 其他

  • 圖書館——往往畢業之後才知道圖書館是一個巨大的寶庫,希望各位能好好利用。
  • 學會科學上網——對於計算機專業的同學必須掌握的技能之一,知道如何使用Google搜索。
  • 英語閱讀寫作能力——很多一手技術資料都是英文的,因此閱讀英文技術文檔的能力是必須的。
  • GitHub與stackoverflow——作爲計算機編程專業的學生,這兩個網站不可不知,而且對日後就業有加分作用。
  • 堅持寫技術博客——好記性不如爛筆頭,如果有時間,可以堅持寫技術博客,既可以鍛鍊寫作能力,又能夠積累技術,還能在就業時作爲加分項。一舉多得,何樂而不爲呢?
  • Linux——建議大家將自己的電腦裝上Linux操作系統(Mac除外、必須用Windows的除外),在平時使用中熟悉這個偉大的操作系統,對日後做技術大有裨益。

三、關於就業

也許就業對大家還比較遙遠,也許就在眼前,先跟大家分享以下兩個方面:

  • 自己畢業後會從事什麼技術方向?比如做底層開發還是應用開發,是從事AI相關還是前端或移動端開發,大家一定要有自己的想法,這樣就可以在學校階段有針對性地學習。
  • 用人單位及面試官到底看重什麼?結合自身經驗,其實面試官非常看重學生的基本功、動手能力、獨立思考及自學能力。事實上,大學裏學的很多知識已經落後了,到了社會上並不能直接應用,而是需要學習新的技術,因此上述能力就很重要。如果在學校裏就能緊握社會的脈搏,把握住技術發展方向,那就很厲害了!我見過一些剛畢業的大學生,他們在大學裏就對某項技術研究的非常深,也做過很多項目,甚至比工作幾年的員工還要優秀,這在市場上就有很強的競爭力了。

結合這兩點,相信大家應該知道自己的努力方向了。

四、關於讀研

計算機專業是否應該讀研這個問題需要辯證地看待,首先我是讀研的,當時我選擇讀研的目的是想去一個大城市,想去一個更好的學校,也可能是我們畢業那年市場上薪資太低吧。我覺得讀研帶給我最大的收穫是開拓了視野,尤其是在思維上。

現在讓我來看的話,如果畢業之後選擇做軟件開發,那麼不讀研也許是一個更好的選擇,幾年工作經驗完全可以抵得上碩士比本科高出來的工資,而且長遠來看,工作經驗在互聯網行業中也很重要。但有一點需要說明,不讀研不代表自己底下不學習,很多知識仍然是需要持續學習的

另一個方面,如果想做更深入的技術研究或學術的話,讀研則是需要的,看下現在市場上做AI的、做機器學習和算法的,大部分都是碩士博士。

五、結語

技術改變世界,這是技術人的信仰。以上只是一些建議,有感而發,寫給計算機及相關專業的同學作爲參考。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章