西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁(yè)業(yè)內(nèi)動(dòng)態(tài) IT人生 → 想當(dāng)一名程序員那在大學(xué)時(shí)候究竟應(yīng)該學(xué)習(xí)什么?

想當(dāng)一名程序員那在大學(xué)時(shí)候究竟應(yīng)該學(xué)習(xí)什么?

相關(guān)文章發(fā)表評(píng)論 來(lái)源:西西整理時(shí)間:2012/12/24 8:38:03字體大小:A-A+

作者:西西點(diǎn)擊:0次評(píng)論:0次標(biāo)簽: 程序員

如果讓我大學(xué)再來(lái)一遍,我也還是想做軟件,那我應(yīng)該在大學(xué)里學(xué)點(diǎn)什么?

最終我決定把想到的東西寫(xiě)下來(lái),希望能對(duì)在校的人有點(diǎn)幫助。

首先我們得知道這問(wèn)題的答案是個(gè)變量,他依賴于你的目標(biāo)和天資能力,絕不唯一。當(dāng)然大學(xué)的課程設(shè)置往往是唯一的,所以會(huì)有點(diǎn)矛盾。

這里最關(guān)鍵的東西是目標(biāo),大學(xué)學(xué)習(xí)只是達(dá)成最終目標(biāo)高度的一個(gè)環(huán)節(jié),他應(yīng)該為最終目標(biāo)服務(wù)。

當(dāng)然大學(xué)生很難清楚的知道自己的目標(biāo)究竟在那里,但要總歸要大致知道自己的方向。

這個(gè)之所以關(guān)鍵是因?yàn)�,這直接決定你應(yīng)不應(yīng)該學(xué)習(xí)某個(gè)東西。我是在做了很多年軟件后,才發(fā)現(xiàn)軟件和軟件的差別其實(shí)比馬和牛的差別還要大。

用流行的分類方法比如:前端開(kāi)發(fā)、后端開(kāi)發(fā)、.net開(kāi)發(fā),Java開(kāi)發(fā)等會(huì)讓人迷失焦點(diǎn),

所以我一直覺(jué)得Barry W Boehm在《軟件成本估算:COCOMOII模型方法》里的分類方法對(duì)學(xué)習(xí)更有幫助。

在這個(gè)分類方法里軟件被分了三層:最底層是基礎(chǔ)結(jié)構(gòu)型(平臺(tái))軟件的開(kāi)發(fā);中間層次是開(kāi)發(fā)工具、系統(tǒng)集成、中間件;最上層是終端用戶編程,也可以理解為一般應(yīng)用的開(kāi)發(fā)。

同時(shí)作者還補(bǔ)充了份數(shù)據(jù)說(shuō):在2005年95%的美國(guó)程序員是在做終端用戶編程。

這似乎把話題扯開(kāi)了,但其實(shí)不是,關(guān)鍵要大致定位下自己的方向。因?yàn)閷?duì)于目標(biāo)是基礎(chǔ)結(jié)構(gòu)的程序員和目標(biāo)是一般應(yīng)用的程序員,他們要學(xué)習(xí)的東西差別很大。

Donald Knuth的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》不是沒(méi)用,但如果你花了2年把他啃了一遍回頭專門做應(yīng)用開(kāi)發(fā),那它真的用處不大。

至少和一個(gè)精通具體語(yǔ)言、框架、設(shè)計(jì)模式、面向?qū)ο蟆ML的人比只是鉆研了《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》的人反倒是在劣勢(shì),雖然可能后者更花時(shí)間。

反過(guò)來(lái)講則是在算法密集型的工作里,那優(yōu)劣情形就會(huì)掉過(guò)來(lái)。

無(wú)疑的什么都精通最好,但人的時(shí)間是有限的,而軟件相關(guān)的知識(shí)是無(wú)限的,所以把學(xué)習(xí)聚焦在自己的目標(biāo)上非常關(guān)鍵。

而目標(biāo)是什么則要根據(jù)自己的實(shí)際情形來(lái)定。

假設(shè)說(shuō)你真的感覺(jué)自己的能力挺好,就想做基礎(chǔ)結(jié)構(gòu)型的東西,去做MapReduce,去做操作系統(tǒng)等等,那首先要認(rèn)識(shí)到的是干這個(gè)的人很少,競(jìng)爭(zhēng)很激烈。

如果說(shuō)在2005年美國(guó)只有5%的程序員是干這個(gè)的,那我估計(jì)今天在中國(guó)也頂多是這么個(gè)比例。

個(gè)人感覺(jué),大學(xué)的計(jì)算機(jī)課程還真都是往這個(gè)方向培養(yǎng)人的,一旦真的走這個(gè)方向,那么大學(xué)的計(jì)算機(jī)課程還真用的上。需要好好學(xué)習(xí),天天向上。

當(dāng)然只上課也不行,把課上學(xué)的東西實(shí)踐起來(lái)也很關(guān)鍵(比如開(kāi)源項(xiàng)目)。

這里麻煩的事情是,干這個(gè)的可能只有5%,很多人即使很努力也不一定擠的上去。

那么假設(shè)說(shuō)一個(gè)人很現(xiàn)實(shí),說(shuō):國(guó)內(nèi)排名靠前的幾所學(xué)校湊湊也就5%了,競(jìng)爭(zhēng)太激烈,我不選這個(gè)目標(biāo)方向,我還是95%里做做吧,那這個(gè)時(shí)候我應(yīng)該學(xué)什么?

我個(gè)人認(rèn)為主要要學(xué)好一些比較硬的,需要大塊時(shí)間學(xué)習(xí)的東西,而不要在花里胡哨的東西上多費(fèi)時(shí)間。

硬的東西是指:

數(shù)據(jù)結(jié)構(gòu)和基本算法。

不管是不是做基礎(chǔ)結(jié)構(gòu)性軟件,基本的數(shù)據(jù)結(jié)構(gòu)和算法知識(shí)還是要有的。

很可能不太會(huì)有自己從頭寫(xiě)數(shù)據(jù)結(jié)構(gòu)和算法的機(jī)會(huì),但如果復(fù)雜度不知道怎么算,鏈表、紅黑樹(shù)、哈希表的差別都不知道,那就怎么都玄。

精通一門編程語(yǔ)言

具體是那個(gè)可以根據(jù)實(shí)際情形來(lái)選。但這里強(qiáng)調(diào)的是語(yǔ)言,不是IDE和框架。可以通俗理解為每個(gè)關(guān)鍵字背后的含義要整清楚。

這里的陷阱是學(xué)一堆語(yǔ)言,但那個(gè)都不精。

精讀一個(gè)有點(diǎn)規(guī)模的開(kāi)源項(xiàng)目(至少要超過(guò)2萬(wàn)行)

要找那種規(guī)模不太大,又比較有名的項(xiàng)目,一定要精讀,爭(zhēng)取每行都懂。

累積一定的代碼量

不算IDE幫助生成的,爭(zhēng)取也在2萬(wàn)行之上。

面向?qū)ο蠛驮O(shè)計(jì)模式

這點(diǎn)最好配合著下一點(diǎn)一起做。

從頭考察一下某個(gè)框架

考察某個(gè)框架的內(nèi)存機(jī)制、線程機(jī)制等。

整個(gè)學(xué)習(xí)過(guò)程中最常見(jiàn)的陷阱是學(xué)會(huì)操作一堆IDE和框架的使用,但實(shí)際上這事兒價(jià)值不大,程序員的價(jià)值符合反木桶原理,啥都知道一點(diǎn)的,大多時(shí)候不如某個(gè)上精通的。

同時(shí)除非很特別的公司,大一點(diǎn)的公司并不期望畢業(yè)生過(guò)來(lái)就能干活。

有上面的基礎(chǔ)后,再突擊下,應(yīng)該可以面對(duì)大部分公司的筆試和面試。

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過(guò)難過(guò)
    • 5 囧
    • 3 圍觀圍觀
    • 2 無(wú)聊無(wú)聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)
    相關(guān)下載

    名稱大小下載