大多數的人還沒學程式語言時, 就開始學寫程式了, 這是無可厚非的, 事實上能夠多學幾種不同的語言之後, 在來學程式語言說不定是好的, 畢竟有寫過不同種語言的程式後, 會更了解語言的共通性與不同性, 此時可以歸納與理解更多有關語言的許多事.
但這些學程式語言或者有在寫程式的人, 真正學過程式語言 Programming Language 或學進去, 可能是寥寥可數, 這才是最大的問題, 因為若沒有對電腦語言能夠更深刻的體會與體認, 有時程式的感覺是很難進步的.
雖然說學習語言最好的方式就是下去寫就對了, 但若了解其架構, 邏輯是會更容易上手, 更能夠知道其特性, 這也是我期望的結果, 就像是從 BNF (Backus Normal Form) 來學習語言, 先了解 Operator 與 Identifier, 先了解 Object-Oriented 的概念之後再來寫程式, 或是寫完程式再來體會, 這才是我認知如何學好程式的要素.
這些並不是所有人都可以全面碰得到的, 但若透過這樣的體驗與學習, 會對語言有更進一步的了解, 尤其現在每一種語言都是相當有趣, 都有其特色與時空背景, 了解這部份, 就會很容易上手與精通了.
組成程式有很多基本元素:
學習系統程式與程式語言, 不是個教你如何寫好程式的科目, 要寫好程式, 要達到下面幾個目標:
當然最後還是以結案及達到目標說不定就是個好 Programmer?
有時學習 Programming Language 或許須要從一個語言開始, 就像是較有名的:
除了透過虛擬語言來學習外, 不然就是透過 BNF, 而最有名的例子就是透過 BNF 來學 BNF:
這個在 RFC 很多都有類似的對通訊協定或語言是用這種方式來定義, 所以了解 BNF 不是只是為了學寫程式, 更重要的是拿來做為溝通的工具.
語言不是只有拿來寫程式用的, 現在的角度, HTML 也越來越接近一些語言了, 雖然 ML 指的就是 Mark-up Language, 在未來, 每一個人應該都須要會不只一個電腦語言, 因為不是只有拿來跟電腦溝通, 而是能夠更了解語言的思維.
建議電子書:
開放課程:
關鍵字: