關于編程學習的七點思索

發表于:2014-01-14來源:justjavac作者:不詳點擊數: 標簽:編程
關于編程學習的七點思索.中國古代思想家孔子(Confucius)功勞中包括對許多事物發表的見解, 從 平凡的幸運餅消息(fortune cookie messages)到明顯荒謬的笑話, 如“Man who stand on toilet is high on pot.(立于[茅]廁, 樂于[尿]壺)”。

  中國古代思想家孔子(Confucius)功勞中包括對許多事物發表的見解, 從 平凡的幸運餅消息(fortune cookie messages)到明顯荒謬的笑話, 如“Man who stand on toilet is high on pot.(立于[茅]廁, 樂于[尿]壺)”。

  他曾說過一段對人們學習編程有幫助的話:

  I hear and I forget.(耳聽為虛)

  I see and I remember.(眼見為實)

  I do and I understand.(實踐出真知)

  對大多數人來說, 坐在教室里聽課遠非學習編程的理想途徑。輔以閱讀介紹編程概念的書籍可能會有所助益, 但無法與通過有效閱讀并思考其他人的源代碼直至理解所獲得的實踐技巧相比。

  但是, 真的沒有什么方法比喜歡自己動手寫程序更能積累編程技巧。閱讀一點只能學到一點, 而動手編程則能收獲很多。找到你想簡化的事情, 并編寫一些程序代碼來通過自動化使它們更容易處理。

  不幸的是, 搞清楚什么能做有時會是編程學習中最困難的地方?;趥€人的經驗, 答案似乎是你可以一躇而就, 而不是七上八下的事情, 并能通過頓悟來找到通過編寫程序來解決問題的方法。

  在尋求這種頓悟時, 由于剛開始編程的人知識通常都非常有限, 繪制流程圖有助 于以你喜歡的方式來事先準備。請這樣來做, 至少在開始時, 包括搞清楚你每天使用電腦的流程, 把其中使用最多的部分簡化繪制出來。一旦你整理出來, 就把在那 些情況下特別有用的編程技能作為早期學習的重點。這樣的機會在一定程度上是稀缺的, 你可能要改變計算環境來提供這樣的機會。

  需要做的最重要的事情是要找到一種方法來激勵自己編寫代碼。

  下面是關于如何采取行動學習編程的建議。

  1、數據庫管理系統(DBMSes)

  諸如PostgreSQL、 Oracle、Microsoft SQL Server, 以及Informix這種專業、耐用的數據庫管理系統通過存儲過程或存儲函數提供了腳本功能。最受廣泛認可的語言選項也許是 Microsoft SQL Server和Sybase所使用的TransactSQL, 以及Oracle所使用的PL/SQL。 PostgreSQL提供了一個名為PL/pgSQL的類PL/SQL的程序擴展到SQL里, 但它也提供了包括PL/Perl、PL/Python、PL /Ruby和 PL/Tcl在內的其他語言的選擇范圍。

  這種編程機會雖然限定于一組特定的問題領域, 但如果你是一名DBA(數據庫管理員)或你的工作涉及數據庫開發報告, 將會親身體驗到這是非常有用的。

  2、插件

  許多新的電腦游戲提供了編寫和加載插件的功能。例如, “魔獸世界 (World of Warcraft)”提供了一個使用Lua腳本語言的插件系統。隨著Firefox聲名鵲起和廣泛使用, 現代網頁瀏覽器往往也提供靈活的插件系統;在最簡 單的情況下, Firefox的插件都是用JavaScript編寫的。開放源碼的瀏覽器在插件開發方面往往比封閉源代碼的瀏覽器更具吸引力, 并且 Chromium瀏覽器的插件系統, 很可能成為插件開發者們的第二大目標, 這是因為谷歌Chrome瀏覽器高調的營銷策略以及不設限的許可證 (permissive licensing)政策。

  PurpleEndurer注:Lua程序設計語言 是一個簡潔、輕量、可擴展的腳本語言。 Lua讀作/'lua/(嚕啊), 是葡萄牙語中"Luna"(月亮)的意思。詳見:http://zh.wikipedia.org/zh-cn/Lua

  其他許多應用程序具有插件和擴展系統, 可以提供充分的機會來培養這些迅速發展的編碼技能, 甚至包括一些終端仿真器(terminal emulators)和基于控制臺的文本編輯器, 如Vim。(透露一點好消息:我貢獻了一點代碼到urlpicker項目。)

  3、實踐問題

  您可以嘗試解決代碼任務中的通用清單所提供的問題, 代碼任務是特別為了給程 序員提供實習機會而專業設計的。歐拉(Project Euler)是一個比較流行的、不論編程語言的項目, 包括“一系列具有挑戰性的數學/計算機編程問題”。歐拉項目收集了上百個問題, 這些問題一般從易到難, 足以讓你忙碌很長一段時間。

  PurpleEndurer注:關于歐拉項目, 可訪問:http://projecteuler.net

  其他例子包括RubyQuiz, 它多年來一直在ruby-talk的郵件列表中廣受歡迎。另外還有CodeKata, 它是Dave Thomas的一個規模較小、壽命較短的項目。 Dave Thomas是《The Pragmatic Programmer(程序員修煉之道)》一書的合著者之一。

  PurpleEndurer注:關于CodeKata可訪問 http://codekata.pragprog.com/

  這些選項不適合用作自我激勵型探索性學習的任務, 因為它們會讓人撓破頭皮, 但如果發現其中的樂趣, 它們可以和其它方法一樣用于編程實踐教育。

  4、智能手機(Smartphones)

  應用程序開發行業中最大的新熱潮是智能手機的應用程序。這種裝置通常需要開發人員使用一種可將裝置的功能發揮到極至的特定語言作為應用平臺, 至少要以官方認可的方式進行。

  智能手機開發體系的一個新興產業正在崛起, 即允許開發人員用非智能手機平臺原生的其它語言編寫自己的代碼, 然后轉化為原生語言的應用程序。因為不需要學習任何特定的智能手機平臺的官方應用程序開發語言, Web應用程序也沾了光, 成為智能手機應用程序開發的一種方法。選擇語言甚于平臺的另一個 方案是使用像諾基亞的N900這樣的設備, 它運行Debian發行的Linux系統, 可以運行的軟件范圍很寬——包括很多不是為智能手機設計的軟件。

  側重于多種方法開發智能手機應用程序的書籍和在線教程紛紛出現, 特別是Android和iPhone的設備。一些第三方框架將可以從HTML + JavaScript 到 Ruby 或 Python編寫的代碼“編譯”為多種平臺的“本地”應用程序, 有時不僅包括智能電話平臺, 而且包括桌面系統。對這種情況也許最令人興奮的是, 這些框架和 相關的IDE不傾向于試圖解決所有的編程問題, 這與同樣出色的編程方式的主要框架, 如Visual Studio和.NET框架有所不同。這使得人們有可能通過縮小選項至一個易于管理的問題領域來顯著地簡化開發過程。其結果是軟件開發風格令初學者感到非 常易于接受。

  不足之處是, 在學習如何編程時, 你可能很難每天都編寫新的智能手機應用程序。但是, 如果您的智能手機的操作系統是類Unix系統(如N900的), 同樣的小工具開發項目在工作站和服務器中都非常有用。

原文轉自:http://justjavac.com/other/2012/07/03/seven-thoughts-on-the-programming-learning.html

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97