Computer Programming for Everyone and ... How Python Helps You ? 胡崇偉 marr.tw@gmail.com In the 70s, Can We Have a Computer on Every Desk? Take It or Not? 不管你是否喜歡這個數位世界 它都已經全面影響你的工作和生活 A Follow-up Question: What will Happen if Users can Program their own Computer? Question: What will Happen A Follow-up if We have More Hackers ? 我看到的是… 人們可以 有更多機會 實現 自己的 夢想 真正的窮 不是沒有錢, 而是沒有能力去付出 是滿腔袂爽的自主貢獻者 不是佛心志工 我相信… 夢想,不分大小 實踐,贏得掌聲 天賦,有所不同 機會,應該相同 程式語言 一定要夠簡單 才能讓人 快速上手 三歲小孩也會 Python 嗎? 互動 Interactivity 直譯 vs 編譯 素描 vs 油畫 修訂詞句 vs 批改作文 History of Programming Languages 2,500+ for 50 years COBOL C Pascal C++ BASIC Java Perl PHP 1968 1978 1988 1998 Fortran IBM PC Internet Python Javascript 2008 History of Python vs Diffusion of Innovation 多數的 學習與進步 依賴 既有經驗 做為基礎 以 數學, 語言 為例 Fibonacci Numbers def F(n): if n <= 2: return 1 else: return F(n-1) + F(n-2) 縮排 Indentation 視覺式辨識 程式區塊 Block def F(n): if n <= 2: return 1 else: return F(n-1) + F(n-2) Code is Read more than it is Written Readability counts. 學習語言 是怎樣的 歷程? 口語前期 1. 開始出現字彙 2. 累積達50字彙並組合 口語期 (電報句) 3. 開始使用關連詞 (而且,可是) 精熟期 口語前期 口語期 精熟期 聽說 讀 寫 剪下 貼上 有意識地拷貝 對常見錯誤能夠反應 有意識地使用成語 能夠重構 Code is Copied and Pasted more than it is Written Repository counts. 關鍵字 Keywords Python Ruby PHP Java ~ 30 ~ 40 ~ 50 ~ 50 def F(n): if n <= 2: return 1 else: return F(n-1) + F(n-2) 簡單的東西 搬不上檯面吧? NASA Google Dropbox MIT 表面上簡單 內涵並不簡單 不斷演進的動力 來自 社群參與 形成 最佳典範或慣例 客製化運算 資料要在異質系統之間互通 資訊要在操作環境之間同步 行動要在群組之間協調 Dark Age PC Net Web Cloud 1968 1978 1988 1998 2008 通用語言 Lingua Franca A language that is adopted as a common language between speakers whose native languages are different. 語言 有什麼 用途? 數位世界的語言需求 探索 大師 腳步 Pythonic Thinking Graphical Programming Blocky Programming Riddles The Python Challenge Project Euler Community Projects Kivy, Pandas, iPython Notebook, Pygame, OpenStack IPython Notebook Code Demo Presentation Mode LaTeX, Plot Integration ArcGIS, GAE, Blender, Bonhamizer 線上課程 1. Codecademy 2. Treehouse 3. Udemy 4. Coursera 5. Udacity 社群聚會/付費課程 1. Taipei.py, PyHUG, Hualien.py, Tainan.py, Kaohsiung.py, Taichung.py, Taoyuan.py 2. PyLadies, Django Girls 3. KidsCoding, CodeKoala 4. RaspberryPi, BananaPi 5. HackerSpace, MakerBar, Maker Faire 一見如故 Python folks around the world share the same culture. 我相信… 實踐夢想 的過程 能讓我們 體驗 所有的 美好 Python Inspired Find Your Dream