我自己在學習編程的過途中有的幾個疑問,1)什麼編程語言我需要學. 2)學多少種才算可以.最后通過我自己學習感受和對其他編程高手(主要是新聞組)的請教,我認為找到了滿意我的答案.拋磚引玉,做個參考吧.
對於初學者,我建議從 python 開始學.
它在語言設計上很整潔,幫助文件也很全面.
也是 object-oriented (O-O),儘管我把它作為一個初學者開始的語言,並不代表它的用處和功能不強大.實際上它是個功能強大,可以用來做大的編程工程的語言.
我知道國內對 python 可能還不了解,
它相對來說也比較新(1990),到現在有12年的歷史了,但是它在國外已經被廣泛接受和認同,快速發展.不過我知道郵電出版社最近剛出了一本介紹 python 編程的書,大家可以查詢.python 的主頁 www.python.org
Java 也是個很好的語言來開始學編程.不過它比 python 複雜.國外的大學現在都採用 java 作為電腦專業的凱時語言.總之我覺得除了 python 之外,它也可以作為一個極好的初學者語言.
不過,會了這兩種語言,並不代表你就是一個編程員了.學會編程的關鍵就是 -- 「 編程思想「 . 學會怎樣用一種很「 廣泛的思維「 去考慮「 編程問題 「,也就是這種思維是可以放之於任何一種編程語言都可以解決問題的,而不是局限於單純的一種語言.這樣當你需要學習一種新的語言時,你只要學習他的語法等等就可以了,至於怎樣用這種語言解決編程問題不是早就在你的腦子裡了嗎.
,這也就是為什麼很多程序員可以拿到一種語言,一兩個星期就可以使用的很熟練了.這,也同樣要求你去學幾種完全不同的語言.
C 語言是非常有效率的,很多時候你都需要考慮內存的管理等底層的東西.很可惜這些都需要你去花很多的時間去做,問每一個 C/C 的程序員,用 C/C 編程是不是一個很頭疼的事.好消息是,現在的機器都已經很高級,運算的很快,在很多時候我們是不用考慮用 C/C 去做,忽略它所帶來的好處,當然除非這個工程真的很需要處理底層的東西(象 內核的編輯,3-D 圖形等).很多時候 python, java 等都可以實現.另外在現在很多工程所要求的時間都不是足夠充裕來用 C/C 去做,
在商業上時間就是金錢,這個代價誰也付不起.
我這裡並沒有說 C/C 不好,你不應該學.相反我覺得我們應該學,但不是作為一個初學者的語言來學.在 C 和 C 之間,我推薦先學 C ..
它相對來說較小,簡單.作為一種底層編程語言,C,你可以學到很直接的內存管理,指針,等.另外,很多語言都是用 C 來設計的, 比如 perl , java, python
其它語言值得一學的有 perl , Lisp(當然你也很一說 effile, proflog),提到 perl 是
它的實用性,廣泛的應用在網路和系統管理,perl 提倡 "There is always more than one way to do it" 這主要是從 perl 的語法以及它的獨特設計上來獲得,記得用幾行code 你就可以寫出很有效率的程序?這也就是為什麼我很喜歡perl 了.但是perl 的語法著實讓很多人頭疼
對於用 perl 寫的大型程序,維護性不是很好,python 就沒有這方面的問題,這也是為什麼很多 perl 的用戶轉向了 python .很多人用 perl 的目的和用 python 一樣,避免在不要求 C 的效率時 使用 C.
Lisp 據說是很有啟迪性的語言,會讓你成為一個更好的程序員.(我還沒有到達那個程度 :-)
我個人推薦 (python, java, C ,perl, 和 Lisp),
他們使用不同的方法來編程,每一種都會在某種程度上交給你些很有價值的東西.
談到學習編程,單純的上課和看書只會讓你學習語言的特性等,只有學會用編程的思想來思考才是你終生受用的.這些只能依靠 「 練習 「 具體就是 1) 讀程序 2) 寫程序 看似簡單,但堅持下來你才會真正體會到,這裡沒有其他可以投機取巧的方法學習編程了.
至於學多少種,是越多越好吧.但並不是指每個都精通,我想大家也沒那麼多時間和精力.但在你有了堅實的編程經驗和基礎,了解其它語言的設計方法、構造會開闊你的眼界,沒準什麼時候你也可以編出自己的語言(咱中國人編的!!) :-)
要提醒大家的是,如果每種語言總是略學皮毛,然後又急匆匆的跳到另外一種語言,那你就會一事無成,永遠彷徨在初學者的門檻邊.我想這句話不只是對程序員,對我們來說也是生活中的一個道理.
--------------------
Qiang easyya.com