1. 程式人生 > >給有從事軟體研發想法的在校大學生的一絲建議

給有從事軟體研發想法的在校大學生的一絲建議

        最近曾經大學的老師希望我們這些已經畢業多年的“過來人”為在校的學弟學妹提一些建議或推薦一些書籍。恰好也參加了公司今年的校園招聘,有一些感觸,考慮到本人文字水平有限,遂結合網路資料整理一篇建議。所謂建議,只是建議,認可的人吸收有益的東西為自己所用,不認可人一笑而過。

        首先宣告的是,本人既不是技術牛人,也不是管理達人,更非成功人士,只是一個工作年限長一些的IT工程師。

         參見多個城市多個大學的校園招聘,收到簡歷不少。從軟體開發工程師崗位來看,即使來自x11的院校的學生,很多的水平都處於一個極低的位置,主要表現在——無想法、基礎較差、無動手能力。所以作為過來人,並結合企業需求來看,給各位在校小夥伴們一些建議。

一、擴大視野,鍛鍊自身綜合能力

        這一點比較虛,但是很實在,理解的人能夠理解,不理解的人很難理解。但是想說的是,這一點很重要很重要,看悟性了。在這個方面有兩點建議

1. 多讀書,多思考,多總結

        關於這一點,不想多說,網上有很多文章,都是比較正確的。這裡只說一點。

        書是指課外讀物(但非快餐書籍,可以是史書、傳記、哲學、管理學、美學、心理學等等),想讀什麼就讀什麼。可以形成自己的知識體系和世界觀、方法論、思考方式,成為一個有想法的大學生。

        大學生畢業了,更多的時間會花在專業技能和專業書籍上。

2. 建議參加一些社團和實踐活動

        此處的建議是參加“一些”,而非很多。

        只要是有意義的活動,都會有合作、有分工,有溝通,有交流表達等等。鍛鍊自己的這些能力是非常重要非常重要。

        比如:做到能把事情說清楚,把問題描述清楚。

注:在中學時代,天天為高考努力,很少與人打交道;在大學四年中,經常泡圖書館,走馬觀花地地看過哲學、史學、心理學、美學等、也看過演義、武俠等。實踐方面,做過家教,兼職網站推廣,做過班幹。對於自己而言,雖然沒有做的很好,但也有所收穫——有了自己的想法,也提升了溝通能力、說話的能力等(雖然只是比自己的以前好了一些),做總比不做強。

二、軟體技能方面

1. 基礎要紮實

     也是網傳李開復建議中“練內功”,內功包括:C/C++語言,資料結構、演算法、作業系統原理、計算機體系結構、計算機網路等。但對於“Donald Knuth的Art of Computer Programmin”,能夠解決其中大部分題目的學生,可以稱之為優秀了,絕大部分人事很難做到。卻是可以考慮將教科書中小程式全部實際練習一遍

     基礎是任何公司的技術面試中必問的內容,基礎是“必殺項”。基礎不好,再高深的專業書籍也只是建在沙灘的高樓。

     重要的說三遍:基礎,基礎,基礎

     相關的基礎技能

linux基礎 《鳥哥的私房菜》或
《linux命令列與shell指令碼程式設計大全》
軟體技術人員加分項,shell是必備項
C語言 教科書或者
Brian W. Kernighan<C程式設計語言>
基礎,很重要,如果學不好C語言,那麼什麼高階語言都學不好。
資料結構 教科書<程式設計與演算法語言>或諮詢網際網路 軟體技術人員的必會必考
作業系統 教科書或諮詢網際網路 瞭解其基本知識和概念
網路通訊 《計算機網路》或《Windows網路程式設計》或《Unix環境高階程式設計》 瞭解其基本知識和概念
Python 《python學習手冊》或諮詢網際網路 目前很火很熱,並且可以快速上手
JAVA 請諮詢網際網路

2. 動手程式設計能力和專案能力

       軟體技術人員,程式設計能力是一項很重要的能力,技術面試官考察兩項:基礎與動手程式設計能力?動手能力代表著能幹活。

       練習動手能力的方法:看別人優秀的程式碼,自己寫程式碼,debug,寫程式碼,debug。

       練習動手能力最主要或者最讓面試官喜愛的方法——參加專案

       (1)  兼職軟體開發人員或者軟體開發實習

        如李開復所說:有策略地“打工”。在不影響學業的前提下,尋找真正有意義的暑期工作或兼職。去找一個重視技術的公司,在一個好的“老闆”指導下完成真正會被使用者使用的程式。不要急於去一個要你做“頭”而獨擋一面的地方,因為向別人學習,是你的目的。打工和找工作一樣,“不要只看待遇和職銜,要挑一個你能夠學習的環境,一個願意培養員工的企業,一個重視你的專業的公司,最後,要挑一個好老闆。

       (2)  加入開源專案或者使用開源專案練習

           實在很難找到兼職或者實習機會,可以學習使用github,其中有很多開源專案、涉及python\JAVA\C\C++,涉及ABCD(AI,Block,Cloud,Data),難易均有,找一個練手,可以作為課程設計或者畢設。

3. 常用工具

     多看看GIT,比SVN更常用。更多也可以考慮UML,VISIO、Jinkens等有助於研發效率,質量管理、設計能力的工具。

GIT 《Git學習指南》或諮詢網際網路 軟體開發必備

4. 多看技術論壇、多總結

    學生大都會經常訪問技術論壇,看看技術貼,可以擴大視野,如果能夠分析總結,收穫會更大。

   通過上面的實踐後,可以多輸出自己的部落格。比如csdn,cnblog等

三、關於學習

      成績可能是加分項,學分績點超過3的面試官可能會更為關注,但也只是“可能”。

      記住一點,儘量不要掛科,切忌降級或不能按時畢業,不能按時畢業會導致簡歷篩選都無法通過。

      在沒有更有意義實踐的情況下,還是要把學業做好,畢竟考研還是一條出路。

四、其他方面

     就不在班門弄斧了。

五、參考