在瀏覽我的blog的,除了專業的程序員,也有部分是在校大學生,還有兩位同學通過QQ問我怎么
學習編程技術,我為這些同學的好學而感動;又因為自己曾經做過兩年計算機大專老師,可能天生
喜歡教育人,興趣一來就開始寫這篇blog,其實自己認識也不夠。
現在的大學生面臨的環境,用英國著名的小說家狄更斯的名言來形容:
“這是最好的時代,這是最壞的時代。”
好時代在于,現在大學里資訊特別發達,電腦、網絡、書籍,他們很容易得到,現在網絡上的
教程、blog、技術新聞等等多得是,各種開發工具、開發平臺都可以免費獲得,這不是最好的時代嗎?!
想想我們九十年代讀書時,操作系統是win95/win98,學習的語言就是Fortron(都不知道怎么拼寫了)
和c語言,反正我從來沒有上機實習,去機房就是玩電腦版的超級瑪麗,四年下來什么都不會。
壞時代在于,東西太多了,都不知道學什么,很多快餐等著他們,很容易就去學習那種21天能精通的
東西。大學老師要么厲害的自己去開公司賺外快,要么根本不懂軟件開發在那里誤人子弟。而現在
的網絡游戲卻一款款引誘著他們,把身體都搞跨了。所以他們現在比我們那時更迷惘。
那么在校大學生到底怎么學習才好?其實沒有標準答案,我只能自己從我現在的觀點來談我的看法。
總的看法還是要學好基礎課程,雖然是老生常談,但真正理解的人不多。
具體到課程,數據結構和算法,操作系統,匯編語言,計算機組成原理,編譯原理,數據庫系統原理。
這些基礎知識,我現在還時不時地學習,就是因為當年沒有學,或者沒有學習好。這些基礎的東西學得好
不好,就意味著一個普通技術人員在技術上能走多遠,當然有開創性的天才另當別論。
很多人問到我應該學c還是c++, 還是java,
或者是c#等等,這個問題我用去年底美國一位教授的
文章里的觀點回答,他說現在美國大學基本上全是開java課,而把c語言放棄了,這樣是害得學生學不到
真正的編程技術,將降低美國在基礎研究上的能力。很多人不以為然,可能說他是老糊涂了,其實我認為
這是老教授的高明啊,美國是操作系統的發源地,是各種技術標準的制造者,是各種平臺的制造者,它在
計算機領域能領導全球,就是在基礎研究啊。
數學這個老學科,依然是那么重要,還是拿例子來說明吧。北京時間3月12日消息,據國外媒體報道,
微軟主席比爾·蓋茨(Bill
Gates)將懷揣多年來的夢想重返美國國會——為高熟練的技術工人簽發更多簽證;
在學校中開展更多的數學、科學和工程教育;以及加大科技投資等。注意到沒有,比爾·蓋茨把數學單獨
提出來,數學有多重要就不用說了。其實學數學最終目的就是鍛煉自己的抽象思維能力,很多非數學專業
出生的人,也沒有專門學數學,但他的設計和開發非常好,你可以發現他的抽象思維能力天生就很強,碰
到一些數學估算,時間/空間復雜度的分析,他很快就估算出來了。
有同學問到學什么開發工具或平臺好,工具和平臺不是很重要。學c/c++的話,你在vc上或者gcc上都
可以。學java的話,你用esclipse或jbulider,或者其它開發工具,反正稍微流行一個就可以編譯你的代碼
了。數據庫也一樣,反正是學習好sql語句,因為你們不可能現在就學習到oracle優化這么高級的東西。
注重學習基礎知識,養成看書的好習慣。在現在的部門里,很多年輕人都是不看書的,滿足于項目
開發得來的那點有限的知識,有了點錢就知道搞股票,最后也沒見他賺錢,一兩年下來,技術還是沒有長足
的進展,做管理就那么一個位子,還遠遠輪不到他們呢。
還有,很多大學生可能希望有項目經驗,這是沒必要的。大學四年,本來時間相對就不長,這些理論的
東西都沒有時間學好,你還要求有一個很好的項目經驗,而把最重要的東西放到那里沒有接觸,這不是得了
芝麻丟了西瓜嗎。
一些大四的學生,可能出去面試過,碰到一些小公司,或者是做外包的公司,特別是對日本外包的,
這些公司就想要你一下子會他們所用的開發工具,至于你的基礎扎實不扎實,他根本不希望,因為他們就是
準備把你搞成白癡,能看著別人設計好的文檔和例子,把代碼寫出來就是了,這個就是高中畢業生就能做的,你讀大學四年干什么,不如高中畢業就去算了。
總之,在大學時代,基礎、基礎、還是基礎,走上社會了就在實際開發中用好曾經學習過的東西。