我的經(jīng)驗(yàn):編程高手幾種必學(xué)的編程語(yǔ)言
發(fā)表時(shí)間:2024-05-30 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我自己在學(xué)習(xí)編程的過(guò)途中有的幾個(gè)疑問(wèn),1)什么編程語(yǔ)言我需要學(xué)。 2)學(xué)多少種才算可以。最后通過(guò)我自己學(xué)習(xí)感受和對(duì)其他編程高手(主要是新聞組)的請(qǐng)教,我認(rèn)為找到了滿意我的答案。拋磚引玉,做個(gè)參考吧。 對(duì)于初學(xué)者,我建議從 python 開(kāi)始學(xué)。因?yàn)樗谡Z(yǔ)言設(shè)計(jì)上很整潔,幫助文件也很全面。而且也...
我自己在學(xué)習(xí)編程的過(guò)途中有的幾個(gè)疑問(wèn),1)什么編程語(yǔ)言我需要學(xué)。 2)學(xué)多少種才算可以。最后通過(guò)我自己學(xué)習(xí)感受和對(duì)其他編程高手(主要是新聞組)的請(qǐng)教,我認(rèn)為找到了滿意我的答案。拋磚引玉,做個(gè)參考吧。
對(duì)于初學(xué)者,我建議從 python 開(kāi)始學(xué)。因?yàn)樗谡Z(yǔ)言設(shè)計(jì)上很整潔,幫助文件也很全面。而且也是 object-oriented (O-O),盡管我把它作為一個(gè)初學(xué)者開(kāi)始的語(yǔ)言,并不代表它的用處和功能不強(qiáng)大。實(shí)際上它是個(gè)功能強(qiáng)大,可以用來(lái)做大的編程工程的語(yǔ)言。
我知道國(guó)內(nèi)對(duì) python 可能還不了解,因?yàn)樗鄬?duì)來(lái)說(shuō)也比較新(1990),到現(xiàn)在有12年的歷史了,但是它在國(guó)外已經(jīng)被廣泛接受和認(rèn)同,快速發(fā)展。不過(guò)我知道郵電出版社最近剛出了一本介紹 python 編程的書(shū),大家可以查詢。python 的主頁(yè) www.python.org
Java 也是個(gè)很好的語(yǔ)言來(lái)開(kāi)始學(xué)編程。不過(guò)它比 python 復(fù)雜。國(guó)外的大學(xué)現(xiàn)在都采用 java 作為電腦專業(yè)的凱時(shí)語(yǔ)言�?傊矣X(jué)得除了 python 之外,它也可以作為一個(gè)極好的初學(xué)者語(yǔ)言。
不過(guò),會(huì)了這兩種語(yǔ)言,并不代表你就是一個(gè)編程員了。學(xué)會(huì)編程的關(guān)鍵就是 -- “ 編程思想“ 。 學(xué)會(huì)怎樣用一種很“ 廣泛的思維“ 去考慮“ 編程問(wèn)題 “,也就是這種思維是可以放之于任何一種編程語(yǔ)言都可以解決問(wèn)題的,而不是局限于單純的一種語(yǔ)言。這樣當(dāng)你需要學(xué)習(xí)一種新的語(yǔ)言時(shí),你只要學(xué)習(xí)他的語(yǔ)法等等就可以了,至于怎樣用這種語(yǔ)言解決編程問(wèn)題不是早就在你的腦子里了嗎。所以,這也就是為什么很多程序員可以拿到一種語(yǔ)言,一兩個(gè)星期就可以使用的很熟練了。這,也同樣要求你去學(xué)幾種完全不同的語(yǔ)言。
C 語(yǔ)言是非常有效率的,很多時(shí)候你都需要考慮內(nèi)存的管理等底層的東西。很可惜這些都需要你去花很多的時(shí)間去做,問(wèn)每一個(gè) C/C++ 的程序員,用 C/C++ 編程是不是一個(gè)很頭疼的事。好消息是,現(xiàn)在的機(jī)器都已經(jīng)很高級(jí),運(yùn)算的很快,在很多時(shí)候我們是不用考慮用 C/C++ 去做,忽略它所帶來(lái)的好處,當(dāng)然除非這個(gè)工程真的很需要處理底層的東西(象 內(nèi)核的編輯,3-D 圖形等)。很多時(shí)候 python, java 等都可以實(shí)現(xiàn)。另外在現(xiàn)在很多工程所要求的時(shí)間都不是足夠充裕來(lái)用 C/C++ 去做,所以在商業(yè)上時(shí)間就是金錢(qián),這個(gè)代價(jià)誰(shuí)也付不起。
我這里并沒(méi)有說(shuō) C/C++ 不好,你不應(yīng)該學(xué)。相反我覺(jué)得我們應(yīng)該學(xué),但不是作為一個(gè)初學(xué)者的語(yǔ)言來(lái)學(xué)。在 C 和 C++ 之間,我推薦先學(xué) C 。.因?yàn)樗鄬?duì)來(lái)說(shuō)較小,簡(jiǎn)單。作為一種底層編程語(yǔ)言,C,你可以學(xué)到很直接的內(nèi)存管理,指針,等。另外,很多語(yǔ)言都是用 C 來(lái)設(shè)計(jì)的, 比如 perl , java, python
其它語(yǔ)言值得一學(xué)的有 perl , Lisp(當(dāng)然你也很一說(shuō) effile, proflog),提到 perl 是因?yàn)樗膶?shí)用性,廣泛的應(yīng)用在網(wǎng)絡(luò)和系統(tǒng)管理,perl 提倡 "There is always more than one way to do it" 這主要是從 perl 的語(yǔ)法以及它的獨(dú)特設(shè)計(jì)上來(lái)獲得,記得用幾行code 你就可以寫(xiě)出很有效率的程序?這也就是為什么我很喜歡perl 了。但是perl 的語(yǔ)法著實(shí)讓很多人頭疼 而且對(duì)于用 perl 寫(xiě)的大型程序,維護(hù)性不是很好,python 就沒(méi)有這方面的問(wèn)題,這也是為什么很多 perl 的用戶轉(zhuǎn)向了 python 。很多人用 perl 的目的和用 python 一樣,避免在不要求 C 的效率時(shí) 使用 C。
Lisp 據(jù)說(shuō)是很有啟迪性的語(yǔ)言,會(huì)讓你成為一個(gè)更好的程序員.(我還沒(méi)有到達(dá)那個(gè)程度 :-)
我個(gè)人推薦 (python, java, C ,perl, 和 Lisp),因?yàn)樗麄兪褂貌煌姆椒▉?lái)編程,每一種都會(huì)在某種程度上交給你些很有價(jià)值的東西。
談到學(xué)習(xí)編程,單純的上課和看書(shū)只會(huì)讓你學(xué)習(xí)語(yǔ)言的特性等,只有學(xué)會(huì)用編程的思想來(lái)思考才是你終生受用的。這些只能依靠 “ 練習(xí) “ 具體就是 1) 讀程序 2) 寫(xiě)程序 看似簡(jiǎn)單,但堅(jiān)持下來(lái)你才會(huì)真正體會(huì)到,這里沒(méi)有其他可以投機(jī)取巧的方法學(xué)習(xí)編程了。
至于學(xué)多少種,是越多越好吧。但并不是指每個(gè)都精通,我想大家也沒(méi)那么多時(shí)間和精力。但在你有了堅(jiān)實(shí)的編程經(jīng)驗(yàn)和基礎(chǔ),了解其它語(yǔ)言的設(shè)計(jì)方法、構(gòu)造會(huì)開(kāi)闊你的眼界,沒(méi)準(zhǔn)什么時(shí)候你也可以編出自己的語(yǔ)言(咱中國(guó)人編的!!) :-)
要提醒大家的是,如果每種語(yǔ)言總是略學(xué)皮毛,然后又急匆匆的跳到另外一種語(yǔ)言,那你就會(huì)一事無(wú)成,永遠(yuǎn)彷徨在初學(xué)者的門(mén)檻邊。我想這句話不只是對(duì)程序員,對(duì)我們來(lái)說(shuō)也是生活中的一個(gè)道理。