計算機專業學生必備技能
身為計算機專業的學生,我在看過好多同學找工作的經歷後,開始思考,到底什麼樣的學生才能很好的契合公司的需求,才能很容易的拿到offer。
我認為,計算機專業的學生,在大學四年裡,要學的東西很多。
第一、程式設計能力。
以國內計算機的發展狀況來看,大多數人剛去公司就職時都是程式設計師。身為程式設計師,第一要義就是程式設計。如果一個畢業生有比較強的程式設計能力,那麼找工作很容易。比如,那些搞ACM競賽的,很容易就去了百度。
我認為程式設計能力包括三方面內容:
1、熟練使用一種語言。程式設計首先要會一種語言,當前環境下,這種語言是面向物件的會比較好一些,C++、Java等。當然,想=比較古老的C語言,也是有用武之地的。但是現在公司一般都是用面向物件的思想來開發軟體。
什麼叫熟練使用呢?
首先你應該瞭解這種語言的語法,比較常見的、用的多的語法一定要非常瞭解,比如迴圈語句,控制語句,陣列,字串,指標(C/C++)等;
其次,有將想法變成程式的能力。如果你能想到這個問題如何解決,那麼你就應該能用程式寫出來,即使這種想法很笨,耗時很長,你也應該有把它寫出來的能力。比如最大公約數,不懂模運算的時候,你會用試除法,再比如矩陣乘法。
2、掌握資料結構。資料結構是很重要的,幾種常用的資料結構,連結串列、佇列、棧必須信手拈來,很隨意的就寫出來了。二叉樹、圖也要會,要到什麼程度主要還是看以後工作型別。
3、掌握一些基本演算法。有一些演算法,應該成為一種必備技能,可能你用不到,但是必須會。最典型的就是排序演算法了,很多人都會氣泡排序,但是快速排序比氣泡排序用的更多,其它的7種排序演算法也要會,能夠迅速的說出這種演算法的優劣,是否穩定,複雜度什麼的。據說很多公司的技術牛人,快排對他們來說已經成為一種本能反映,只要用到快排,很快就把程式碼寫出來了。還有動態規劃、回溯等,必須要會寫。
總之,提升自己的程式設計能力需要多程式設計,一段時間不編,手就生了。
第二、基礎知識
在公司面試的過程中,比較注重專業基礎知識。良好的專業基礎知識表明你有良好的專業素養,這樣學習一些專業內的東西會比較快。
基礎知識涵蓋的內容很多,反映了你對專業的系統認識。
計算機組成原理。必須懂馮諾依曼結構、記憶體、快取、指令系統、CPU、中斷等。它讓你對計算機有比較系統的認識。
作業系統。必須懂程序、執行緒、記憶體管理、頁面替換等。它讓你對作業系統有比較系統的認識。
計算機網路。必須懂網路模型、HTTP協議、路由演算法、IP協議等。它讓你對計算機網路有比較系統的認識。
這三門是計算機考研的課程,由此也可以看出它的分量。還有編譯、計算機體系結構等,也也描述基礎知識的。
總之,大學時期開的課程,基本上都是計算機的基礎知識,涉及範圍很大,學好十分不易,要盡力掌握。
第三、擴充套件技能
除了上面兩個能力以外,我們還需要一些擴充套件能力。
英語。這個擴充套件能力十分重要。良好的英語閱讀能力可以使你獲得第一手的資料,良好的口語,可以使你更容易的進入外企。
小語種。除了英語,必要的時候可以會一些小語種語言,比如日語、德語。日企的待遇還是挺不錯的。
軟體工程。之所以把它列到這裡,是因為有時候這個東西不是很必要,當然如果去很大的IT公司,這個能力就十分有用了。如何寫註釋,如何寫文件,如何畫類圖等等,都非常有用。
還有其它的能力,視工作環境而定。計算機這一行業,分的很細,不可能什麼都學到。所以只能選定一個方向,一條路走到底。
恩,就寫這麼多,這些都是我自己的看法,也是我在未來的一段時間內要學習的東西。這些東西本來應該是大學四年時候學的,可惜玩過去了,現在儘量補回來。