開啟神秘程式設計世界的大門

broadviewbj發表於2012-08-28
從 2000 年畢業,我做這行已經超過十二年了。最初接觸計算機程式,還是 DOS 下的 QBASIC ,那已經離現在有接近二十年了。最初,我只是會照貓畫虎,按照老師的程式抄個素數數列,或者列印個三角形什麼的。初步理解程式的結構和意義,要等到讀大學以後了。那個時候在老師的鼓勵下,自己買書學習 Delphi ,才開始慢慢了解一些程式語言的知識。能夠自己設計和開發出有點用途的程式,則要等到工作以後,在實戰中一邊做一邊學。
  回頭看看,這條路竟然是意外的漫長。用了至少有七八年,而其中有好幾年,完全就是在很低階的知識層面上獨自摸索。
  
  當然,對於很多天資聰明,又肯用功的同行,這個過程要短的多。就我身邊朋友的經歷,有不少人是僅僅靠大學四年的學習,就完成了從零基礎到出類拔萃的過程。
  
  大概因為我特別的愚鈍,加上後來做過半年的培訓講師。感覺對那個徘徊的過程記憶特別深刻。有時候就想,能不能為我這樣完全沒有基礎的人,設計一些非常非常容易上手的基礎教程呢?
  
  所以後來我嘗試寫過《Emacs 零基礎教程》、《Python 零基礎教程》等文章,在企業內部和網際網路上跟同行分享。但是總的來說,並不成功,其中之一的問題是,對於一個完全沒有基礎的學習者,有太多在老手看來已經天經地義的知識,需要學習和熟悉。要在一份教程裡解釋各種基礎知識,其實是一個非常龐大艱鉅的任務。回頭看過來,我自己都有點不可思議,這些問題,當初我也曾經遇到過?我如何弄懂它們的?用了多長時間?
  
  舉個例子,在 Python 中文社群,我見到過的新手問題:
  
   - 為什麼用 word 儲存的程式碼不能執行?
   - 不明白文字的編碼和字串的編碼是什麼意思,有什麼關係?
   - 如何在直譯器中執行程式碼檔案(或系統命令)?
   - 為什麼程式碼檔案拿到別人的機器上不能執行?
  
  蔡學鏞老師的《程式設計ING》就是這樣一本書,它耐心的解答了以上的這些基礎問題,以及,傳授了那些真正的程式設計需要的知識。如:
  
   - 什麼是程式語言?
   - 什麼是變數?
   - 變數的型別是什麼?
   - 基礎的程式邏輯——順序、選擇、迴圈等
   - 語境(即 Context,常見的譯法是“上下文”,但是我認為“語境”這個譯法要好的多)
   - 函式
   - 模組
  
  書裡用了一種很不常見的程式語言,REBOL——這大概會嚇跑不少讀者。《程式設計師》的老讀者應該有印象,蔡學鏞老師幾年前就開始發表一系列的文章,介紹這門語言。今天這本書,可以說是蔡老師的厚積薄發之作。在書中,使用這樣一門“小”語言作為教學工,進一步降低了學習門檻。
  
  比起最初我用來列印三角形的那個還需要寫行號的 Basic ,REBOL 倒也不失是一個實用的小工具,例如書中 43 頁,就有一個用十幾行 REBOL 程式碼寫成的十六進位制閱讀器。可不是每一本入門書,都能在前50頁教到這個程度。
  
  說到這個,這本書有個很了不起的地方。它每一頁,都有一半以上的內容是圖解——好吧,這大概又要嚇跑不少追求“文字量”的朋友。每一個知識點,都彩色的圖例非常認真清楚的解釋出來。相信常做幻燈的朋友都知道,好的圖示,工作量比同樣篇幅的文字更大。
  
  正是依靠這樣不厭其煩的詳細解說,我相信這本書真的可以在三百多頁的篇幅內,教會讀者程式設計的基礎知識,讓讀者可以用 REBOL 寫出簡單可用的東西,並且也具備進一步學習其它語言的能力。這可是三百多個詳細的圖解,等於是有一位老師手把手的教學生讀書寫字。我這十幾年的學習和工作生涯中,讀過不少專業教材,有些寫的深入淺出,有些寫的豐富翔實。但是能有耐心把所有初學入門的知識一點一點掰碎了教給讀者的,確實僅此一家,別無分號。
  
  在這份耐心面前,這本書可能給讀這的顧慮,例如 REBOL 語言是不是太冷門,學了以後沒有機會用什麼的,真的不重要了。我們這代人,還有幾個用當年的小海龜(LOGO)工作?還有多少人在用那個需要寫行號的 BASIC ?我們都成為了所謂的“業內人士”,但是不應該忘記當初起步的過程。感謝有作者還記得當初的不容易,並且致力於幫今天的學習者,找到那種簡單而有樂趣的學習過程。
  
  零基礎的程式設計學習者、想要教這樣的學習者寫程式的朋友,想要了解一下蔡老師多次推薦的 REBOL 語言到底有多神奇的朋友,值得閱讀一下這本書,這是一本另類的,有趣的程式設計教材。它解答了我的一個疑問:
  
  我們到底是怎麼學會寫程式的?那個過程,有沒有可能簡單一點?簡單到即使不是理工、宅男,僅僅是想學習一下“寫程式”,體驗一下這個樂趣,解決一些問題的人,也能學會?
  
  這本書給了我們肯定的答案。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13164110/viewspace-742054/,如需轉載,請註明出處,否則將追究法律責任。

相關文章