本文作者列舉了一些Python特性,並認為Python是最適合入門的程式語言,一起來看一下。
偉大的入門程式語言有什麼特徵呢?或者換一種方式問,「當我們教他們編程時,應該給予他們什麼?」對於成年人和青少年學生,我認為以下五點非常重要。
學生從入門語言獲得的五樣東西
非常棒的首次體驗,就像一本書的第一頁,首先需要「入迷」,學習新知識不可避免的會遇到挫折,但要有持續的熱情和好奇心,這對於那些從未接觸過編碼的年輕人來說是至關重要的;
Web編程的能力,對於職業發展和程序工藝來說,Web編程越來越重要,學生有機會就應當掌握一定的Web架構基礎;
桌面編程能力,儘管將來趨勢將更多的轉移到Web應用上,但沒什麼能比開發和運行一個本地程序來的直接;
有市場的職業技能,儘管在學術和業餘編程中已經非常出色,但教授學生的技能在職業環境中也應該能派上用場;
社區支持和輕鬆的語言環境,這裡再一次強調,對於那些從未接觸過編碼的年輕人來說是至關重要的。
一些老師或者學生可能不同意這些作為入門語言的必要條件。但我的觀點和經驗是,沒有任何一門語言能像Python一樣做到以下五點。
1.非常棒的入門體驗
按照慣例,用戶寫的第一個程序是列印「Hello World」。在所有實現「helHello World」程序的語言中,Python可以說是最簡單的。只需要在Python編譯器中簡單的輸入以下這些,然後按下回車。
Interactive Python Console>>> print("Hello World")Hello World>>>
這個互動示例值得嘗試!
Python代碼的可讀性使它成為入門語言的最佳選擇,尤其是當它與語法冗長明顯的Java語言對比時:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World"); }}
編寫以上Java代碼後,還需要進行編譯,然後在命令行運行。這些不可避免的流程讓學生覺得編程困難。而那些輸入 print(「Hello World」) 然後按下回車就能實現的學生,會有機會和信心學習更多。
2.Web編程
Web上Python廣為熟悉,不同於C.Frameworks這樣的低級語言,而像Django,Pyramid和Flask,可以讓學生創造出真正的Web應用程式,這類應用程式與他們每天使用的網站一樣強大。Flask是我個人非常喜歡傳播的語言,因為它與免費的Heroku帳號組合,能讓學生在一個小時之內部署他們自己的簡易博客。添加一條web應用的響應路徑也是如此簡單。
@app.route("/about")def about(): return render_template("about.html", now=datetime.datetime.now())
這幾行代碼並不簡單,但幾次課程之後學生便可以自己理解。在信心和好奇的驅使下,學會以最基本的方式響應Web應用請求,也是巨大的進步。
3.桌面應用
專為Web設計的PHP和JavaScript語言限制了學生對Web的開發,然而Python在本地計算機開發同樣廣為熟悉。Pygame,wxPython和其他為桌面程序使用的開發庫,讓學生勇於建立和運行他們自己的桌面應用。Katie Cunningham寫了一本我認為是 關於Pygame教學的權威指南 的書。我使用Pygame教青少年和畢業生開發桌面應用,樂趣多多。下面是一款被稱為Starpusher的遊戲,強烈推薦教學開發。
這款遊戲可以從 pygame.org 下載 ,或者從我Github的倉庫 獲取 ,它也可以在Raspberry Pis平臺上預裝。
4.專業技能
不同於Scratch或者Logo語言教學,Python在專業和學術界有更廣泛的用途。它是一門可以伴隨學生開始和成長的語言。如果學習低級語言會發現Python與C緊密融合,而探索如Ruby的更高級語言會發現也能平滑過渡。如果想對Web應用程式進行更緊湊的控制將發現Javascript技術能與Python Web框架很好地結合在一起。倘若要探索像函數式編程的範例,會發現可以在不學習一門新語言的情況下實現。
然而最重要的是,開始編程時有更好體驗的學生,會有足夠的意願和好奇心去發展最符合自己目標的專業技能。
5.社區支持
我之前寫過如何讓代碼有內涵。學生參加社區交流會就是再明顯不過的方法,我也常去參加(更多信息 點擊這裡 )。Python社區交流會必然最受歡迎,因為那是開始探索事物真相和接觸未來挑戰的絕佳場所。
樣例實際發揮作用的部分是內置於Python的Turtle組件,它提供了簡單有效的方式去教授抽象的Python基礎知識。Turtle組件第一次被MIT’s Seymour Papert採用,後來到了1960年在設計Logo語言中得到進一步推廣。 這裡 可以看到2009年關於組件的最新特徵介紹。Trinket使得Turtle組件更易使用和學習。更多信息可以查看 我們主頁 上的交互示例。