2011年7月8日

你用什麼 IDE 學習 C語言 程式設計呢?有比學 C語言 更好的選擇嗎?

上一個週末逛誠品書店時,我發現李家同教授的一本新書「人人都能學會寫程式:李家同教你用邏輯思考學程式設計(行銷分紅連結)」。隨手翻閱了一下,這本書的定位應該是寫給剛接觸程式設計的初學者,書裡面試圖將寫程式的觀念,講解給不懂的讀者認識。

那時候心裡只閃過一個想法,李教授出書,應該又會引起網友熱烈的討論吧!

果然今天在 Facebook 就看到「軟體開發團隊工具心得分享」發佈一則訊息:「李家同是我尊敬的長輩, 還買過他寫的一本書"讓高牆倒下吧", 還有一本他寫的書評 , 但是從最近幾年看了許多網路對他的評論...」。

這個訊息寫了什麼不重要,它提供了一篇文章的連結,「程式設計遇上小提琴」部落格的一篇「李大師您多久沒寫程式了 ? 一百個你不應該繼續用Dev C++的理由」。作者 Victor 是位目前喜歡 Python 的資深程式設計愛好者。

這篇文章對這本書不滿的地方,是一本 2011 出版的新書,居然建議讀者使用 Dev C++。因為 Dev C++ 專案已經長時間缺少維護,上一個正式發行的穩定版本已經距今 10 年,而測試版(beta)也在 6 年前停止開發。對初學者來說,容易因為工具本身設計的缺陷造成「鬼打牆」。
(但這本書只是一開始提到可以用 Dev C++,後續的章節以教觀念、畫流程圖為主,程式語言和開發環境,應該只算是學習過程使用的工具。)

(為什麼許多網友要去撻伐李家同教授?不清楚的人可以從這段影片這段影片開始追根究底:D)

略過那些針對李教授的看法,這篇文章(包括底下的網友回應)其實整理出不少「現代」的 C語言 整合開發工具。

Modern C/C++ IDE
  1. Code::blocks
  2. Visual C++ Express
  3. Eclipse (+CDT)
  4. wxDev-C++
  5. NetBeans (for C/C++)
  6. CodeLite

也有網友分享了一個很適合初學者的編譯器「TCC (Tiny C Compiler)」,使用 tcc 指令,可以很方便地「執行」C語言程式碼。
`tcc -run a.c'
Compile `a.c' and execute it directly

如果是第一次接觸程式設計,或是推薦程式語言給初學者,可以再參考 Victor 的另一篇「李大師教初學者用C語言? MIT使用Python」。

同樣略過那些針對李教授的看法,把 Python 當作「第一個程式語言」其實是很不錯得選擇。

學習  Python 的初學者,比起 C 或 Java 這類「台灣正統課程」程式語言,更快就能寫出自己覺得「有趣」或「有用」的程式,不管未來是否要從事軟體開發行業,懂這種簡單易用、很容易找到機會派上用場的程式語言,對每個從事電腦工作(已經很少行業不需要電腦了吧?)的人,都能用來幫助自己更有效率地使用電腦工作。

並非每位學習程式設計的人,日後都要從事相關的行業。對於一個還不知道自己未來要從事什麼工作的人,如果就教他一個艱澀難懂的程式語言,除非他本身就有高度的興趣,否則根本是在他的程式設計發展之路砸下一塊擋路的巨大石頭。
(但是說不定這對他是好事,對於執業中的程式設計師少了競爭飯碗的對手,也是件好事!)

而對於就讀資訊科系,未來也準備從事軟體開發工作;但是很不幸地,學校只能照著課程大綱教你 C語言;沒關係,你還是可以靠著自己多學一種程式語言。

請別把眼光放在「如何拿到學分順利畢業」、或者「學什麼才能方便找到工作」這種階段性的目標上;程式設計之路是一條漫長、充滿樂趣,也需要不斷接受挑戰的職業生涯,若這條路要走得久遠,需要極大的熱情支持你。你需要發展出「專屬於你的程式設計之路」,而不要盲從成為「大眾程式設計師」的一份子。

如果熟悉 C 或 Java 程式語言能幫助你找到一份程式設計工作,那多懂一些如 Python 或其他 hacker 等級程式設計師也喜愛的程式語言,讓你有更多的機會和高手一起在優秀的軟體公司工作。

以 Python 程式語言來說,學習的管道其實相當多,例如國外知名大學 MIT、Stanford 都有教 Python ,這些課程的影片(含中文字幕)也可以在「網易公開課」或 YouTube 找到。



延伸閱讀:

1 則留言:

lyhcode by lyhcode
歡迎轉載,請務必註明出處!