Kelp-Space 是記錄一些生活雜事的Blog
如有任何程式設計的問題歡迎到 飛特技術論壇 討論

2008-10-25

如何學習程式設計

筆者從接觸程式到現在已經有五年了,這段期間碰過很多學習程式設計的人,大部分的人經過五年後還是差不多,但有一些人已經會做很危險的東西。功力的強弱不是看接觸多久,主要是看進步的速度,就像剛剛所說的,大部分的人花了五年的時間,卻達不到少數人一年所成長的功力。就科技產業而言,時間是很重要的,等到你龜速成長完畢後其他人不知道已經賺多少錢了,而且這些已經在賺錢的人不會成長嗎?很多人會問"學程式設計的秘訣是什麼?",其實筆者也不太清楚,如果硬要說的話天分是其中的一環。但光有天分是沒用的,這些成長速度很快的人一定有段時間是花大量時間在程式設計上,而成長速度很慢的人這時候通常在打電動,因為網路遊戲實在太令人著迷了。



第一代語言 - 機器語言
第二代語言 - 組合語言
第三代語言 - 程序導向語言 (ex:C語言)
第四代語言 - 物件導向語言 (ex:.NET)
第五代語言 - 問題導向語言或其他語言 (尚未普遍化)
最終語言 - 自然語言

目前這個世界已經進入第四代語言,物件導向語言。但在學術界還有很多老師停留在第三代語言。即使老師有跟上世界的腳步,教的是第四代語言,但是等到學生畢業後,主流語言還是第四代嗎?程式語言的最終目標就是自然語言,也就是要將程式簡單化,要讓開發時間縮短,目前軟體設計的難度跟以前比起來是簡單很多的。新一代語言一定有上一代語言的優點,如:撰寫容易、維護容易......等。這就是舊的語言一直在淘汰的原因,人們發現了更好用的語言後放棄了先前使用的語言。在學生階段,修了一堆語言,如:C、C++、JAVA、Basic......等,有很多人還會說"學了一堆語言,可是樣樣不精通",修了這麼多語言重點不是要你精通他,因為這些語言要成為吃飯工具的機會不高,學術界使用的語言很多都是過時的,學習這麼多語言的目的是要讓你學會"如何使用新的語言",這就是為什麼有人說"老師教的只有皮毛而已"。"這個語言我沒學過,所以沒辦法寫"大大們可能有聽過類似的話吧,如果學會如何使用新語言的人可能會說"這個語言我沒學過,可能要花一些時間",有些人使用新接觸的語言來設計簡單的木馬花不到兩星期就完成,筆者認為這才是真的"會寫程式"。


每種語言都有他的優缺點及限制,因此會有人說學某某語言才是對的,筆者認為學什麼語言都沒關係,因為你要做的事情不一定跟其他人一樣,而且對於會寫程式的人而言換語言的速度是很快的,所以慣用語言選擇能完成你想做的軟體即可,另外盡量挑選比較多人用的語言,這樣找資料會方便一點。


對於程式學習者來說,做一個自己想要的軟體是進步最快的方法,在做之前要謹慎的選擇適當的語言,這時候不要受限於學校教的語言。做3D遊戲的話盡量不要使用VB6,做木馬的話可以考慮VB6或delphi。


最近看到有人問說要學什麼語言所以才打這篇文章,希望本文能給想學程式設計的人一些解答,IT這條路是很累的......
迷:考試都快搞不定了還打文章

6 則留言:

k3nny 提到...

"學了一堆語言,可是樣樣不精通"<=我

Kelp 提到...

是是.....
只精通農場技術 Orz....

匿名 提到...

大大我想請教您
我假如想要像大可,KLOER大 他們寫的那些魔獸的小程式
需要學習哪種語言
可以的話能推薦我一本書嗎

我的基礎
VB6 會寫計算機 和一很小的東西 不知道能不能

Kelp 提到...

大可慣用語言是delphi,Kloer是C# (僅供參考,真的想知道的話可以找他們聊聊)

書的話建議使用Google,現在很流行Google coding的說 XD。
很多寫程式都是抄來抄去的,善用搜尋引擎會很有幫助。

天亮damody 提到...

學長要all pass呀!

Kelp 提到...

我也是有all pass過的!!!

張貼留言