SlideShare une entreprise Scribd logo
1  sur  39
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?
A Follow-up Question: 
What will Happen 
if We have More 
Hackers ?
我看到的是… 
人們可以 
有更多機會 
實現 
自己的 
夢想
真正的窮 
不是沒有錢, 
而是沒有能力去付出
是滿腔袂爽的自主貢獻者不是佛心志工
我相信… 
夢想,不分大小 
實踐,贏得掌聲 
天賦,有所不同 
機會,應該相同
程式語言 
一定要夠簡單 
才能讓人 
快速上手 
三歲小孩也會Python 嗎?
互動Interactivity 
直譯vs 編譯 
素描vs 油畫 
修訂詞句vs 批改作文
History of 
Programming 
Languages 
2,500+ for 50 years 
Fortran 
COBOL 
1968 
C 
Pascal 
1978 
C++ 
BASIC 
1988 
Java 
Perl 
PHP 
1998 2008 
Python 
Javascript 
IBM PC Internet
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 
1968 
PC 
1978 
Net 
1988 
Web 
Cloud 
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

Contenu connexe

Similaire à Computer Programming For Everyone

Open Source and Linux introducion
Open Source and Linux introducionOpen Source and Linux introducion
Open Source and Linux introducionBSEC
 
151107 物聯網教學應用發表會-開場
151107   物聯網教學應用發表會-開場151107   物聯網教學應用發表會-開場
151107 物聯網教學應用發表會-開場CAVEDU Education
 
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdfssuserded2d4
 
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorMakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorFred Chien
 
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 National Cheng Kung University
 
Prototyping:以 WEBOWEBO網站為例 by 張克平
Prototyping:以 WEBOWEBO網站為例 by 張克平Prototyping:以 WEBOWEBO網站為例 by 張克平
Prototyping:以 WEBOWEBO網站為例 by 張克平悠識學院
 
Social Game
Social GameSocial Game
Social Gameematrix
 
OpenAI ChatGPT techtalk .pptx
OpenAI ChatGPT techtalk .pptxOpenAI ChatGPT techtalk .pptx
OpenAI ChatGPT techtalk .pptxSimmy41
 
Introduction to python and programming
Introduction to python and programmingIntroduction to python and programming
Introduction to python and programmingimetliao
 
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」linshanleearchive
 
Why linux?
Why linux?Why linux?
Why linux?junstrix
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期51CTO
 
20141030 ntustme computer_programmingandbeyond_share
20141030 ntustme computer_programmingandbeyond_share20141030 ntustme computer_programmingandbeyond_share
20141030 ntustme computer_programmingandbeyond_shareTing-Shuo Yo
 
The meaning of open - osdc.tw 2011
The meaning of open - osdc.tw 2011The meaning of open - osdc.tw 2011
The meaning of open - osdc.tw 2011John Lee
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗政斌 楊
 
邏輯思考與第三語言
邏輯思考與第三語言邏輯思考與第三語言
邏輯思考與第三語言Wingly Shih
 

Similaire à Computer Programming For Everyone (20)

Open Source and Linux introducion
Open Source and Linux introducionOpen Source and Linux introducion
Open Source and Linux introducion
 
151107 物聯網教學應用發表會-開場
151107   物聯網教學應用發表會-開場151107   物聯網教學應用發表會-開場
151107 物聯網教學應用發表會-開場
 
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf2023-12-07加速你的研究量能:以ChatGPT為例.pdf
2023-12-07加速你的研究量能:以ChatGPT為例.pdf
 
MakerBoard: MT7688 Emulator
MakerBoard: MT7688 EmulatorMakerBoard: MT7688 Emulator
MakerBoard: MT7688 Emulator
 
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
 
Prototyping:以 WEBOWEBO網站為例 by 張克平
Prototyping:以 WEBOWEBO網站為例 by 張克平Prototyping:以 WEBOWEBO網站為例 by 張克平
Prototyping:以 WEBOWEBO網站為例 by 張克平
 
回顧 GNU/Linux 中文資訊化進展與未來機會
回顧 GNU/Linux 中文資訊化進展與未來機會回顧 GNU/Linux 中文資訊化進展與未來機會
回顧 GNU/Linux 中文資訊化進展與未來機會
 
Social Game
Social GameSocial Game
Social Game
 
OpenAI ChatGPT techtalk .pptx
OpenAI ChatGPT techtalk .pptxOpenAI ChatGPT techtalk .pptx
OpenAI ChatGPT techtalk .pptx
 
Introduction to python and programming
Introduction to python and programmingIntroduction to python and programming
Introduction to python and programming
 
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」
2021《芝麻開門——語音的聲音開啟人類文明的無限空間》台大科學教育中心「探索科學講座」
 
Why linux?
Why linux?Why linux?
Why linux?
 
《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期《Linux运维趋势》2012年5月号 总第19期
《Linux运维趋势》2012年5月号 总第19期
 
20141030 ntustme computer_programmingandbeyond_share
20141030 ntustme computer_programmingandbeyond_share20141030 ntustme computer_programmingandbeyond_share
20141030 ntustme computer_programmingandbeyond_share
 
The meaning of open - osdc.tw 2011
The meaning of open - osdc.tw 2011The meaning of open - osdc.tw 2011
The meaning of open - osdc.tw 2011
 
教學
教學教學
教學
 
Python 入門初體驗
Python 入門初體驗Python 入門初體驗
Python 入門初體驗
 
Whatisagile
WhatisagileWhatisagile
Whatisagile
 
邏輯思考與第三語言
邏輯思考與第三語言邏輯思考與第三語言
邏輯思考與第三語言
 
Python 庫簡介
Python 庫簡介Python 庫簡介
Python 庫簡介
 

Plus de TsungWei Hu

Odoo Development
Odoo DevelopmentOdoo Development
Odoo DevelopmentTsungWei Hu
 
開源教 教我 Odoo 管理 ERP 和 CRM
開源教 教我 Odoo 管理 ERP 和 CRM開源教 教我 Odoo 管理 ERP 和 CRM
開源教 教我 Odoo 管理 ERP 和 CRMTsungWei Hu
 
Ten Years After: An Integrator's Tale
Ten Years After: An Integrator's TaleTen Years After: An Integrator's Tale
Ten Years After: An Integrator's TaleTsungWei Hu
 
ElasticSearch Introduction
ElasticSearch IntroductionElasticSearch Introduction
ElasticSearch IntroductionTsungWei Hu
 
Open Source Technologies for Contents and Maps
Open Source Technologies for Contents and MapsOpen Source Technologies for Contents and Maps
Open Source Technologies for Contents and MapsTsungWei Hu
 
The Zen of Language Choice
The Zen of Language ChoiceThe Zen of Language Choice
The Zen of Language ChoiceTsungWei Hu
 
Diazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersDiazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersTsungWei Hu
 
CMS Showdown For NPO
CMS Showdown For NPOCMS Showdown For NPO
CMS Showdown For NPOTsungWei Hu
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone WayTsungWei Hu
 
Python for Application Integration and Development
Python for Application Integration and DevelopmentPython for Application Integration and Development
Python for Application Integration and DevelopmentTsungWei Hu
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMSTsungWei Hu
 
World Plone Day 2012 Taipei
World Plone Day 2012 TaipeiWorld Plone Day 2012 Taipei
World Plone Day 2012 TaipeiTsungWei Hu
 
Workteam with oDesk
Workteam with oDeskWorkteam with oDesk
Workteam with oDeskTsungWei Hu
 
Proud Plone on Cloud
Proud Plone on CloudProud Plone on Cloud
Proud Plone on CloudTsungWei Hu
 
Sahana Taiwan Development
Sahana Taiwan DevelopmentSahana Taiwan Development
Sahana Taiwan DevelopmentTsungWei Hu
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguageTsungWei Hu
 
Plone - A Comprehensive Content Management Solution
Plone - A Comprehensive Content Management SolutionPlone - A Comprehensive Content Management Solution
Plone - A Comprehensive Content Management SolutionTsungWei Hu
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python ProgrammingTsungWei Hu
 
Developing with pyGTK in EeePC
Developing with pyGTK in EeePCDeveloping with pyGTK in EeePC
Developing with pyGTK in EeePCTsungWei Hu
 

Plus de TsungWei Hu (20)

Odoo Development
Odoo DevelopmentOdoo Development
Odoo Development
 
開源教 教我 Odoo 管理 ERP 和 CRM
開源教 教我 Odoo 管理 ERP 和 CRM開源教 教我 Odoo 管理 ERP 和 CRM
開源教 教我 Odoo 管理 ERP 和 CRM
 
Plone Zwiki
Plone ZwikiPlone Zwiki
Plone Zwiki
 
Ten Years After: An Integrator's Tale
Ten Years After: An Integrator's TaleTen Years After: An Integrator's Tale
Ten Years After: An Integrator's Tale
 
ElasticSearch Introduction
ElasticSearch IntroductionElasticSearch Introduction
ElasticSearch Introduction
 
Open Source Technologies for Contents and Maps
Open Source Technologies for Contents and MapsOpen Source Technologies for Contents and Maps
Open Source Technologies for Contents and Maps
 
The Zen of Language Choice
The Zen of Language ChoiceThe Zen of Language Choice
The Zen of Language Choice
 
Diazo: Bridging Designers and Programmers
Diazo: Bridging Designers and ProgrammersDiazo: Bridging Designers and Programmers
Diazo: Bridging Designers and Programmers
 
CMS Showdown For NPO
CMS Showdown For NPOCMS Showdown For NPO
CMS Showdown For NPO
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
Python for Application Integration and Development
Python for Application Integration and DevelopmentPython for Application Integration and Development
Python for Application Integration and Development
 
Plone -- Evolving Python CMS
Plone -- Evolving Python CMSPlone -- Evolving Python CMS
Plone -- Evolving Python CMS
 
World Plone Day 2012 Taipei
World Plone Day 2012 TaipeiWorld Plone Day 2012 Taipei
World Plone Day 2012 Taipei
 
Workteam with oDesk
Workteam with oDeskWorkteam with oDesk
Workteam with oDesk
 
Proud Plone on Cloud
Proud Plone on CloudProud Plone on Cloud
Proud Plone on Cloud
 
Sahana Taiwan Development
Sahana Taiwan DevelopmentSahana Taiwan Development
Sahana Taiwan Development
 
Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming Language
 
Plone - A Comprehensive Content Management Solution
Plone - A Comprehensive Content Management SolutionPlone - A Comprehensive Content Management Solution
Plone - A Comprehensive Content Management Solution
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
Developing with pyGTK in EeePC
Developing with pyGTK in EeePCDeveloping with pyGTK in EeePC
Developing with pyGTK in EeePC
 

Dernier

1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书jakepaige317
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 

Dernier (6)

1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
泽兰应用科学大学毕业证制作/定制国外大学录取通知书/购买一个假的建国科技大学硕士学位证书
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 

Computer Programming For Everyone

Notes de l'éditeur

  1. https://www.youtube.com/watch?v=euxJhgYZXL8 belief http://code.tutsplus.com/articles/the-best-way-to-learn-python--net-26288 http://www.cheers.com.tw/article/article.action?id=5061355&page=1 http://www.slideshare.net/rachelcordraysanders/django-barcamp-technical-interviews-for-beginners
  2. 70年代全錄公司的 Palo Alto 研究中心,提出一個問題,我們有辦法讓個人電腦普及嗎? 經過了40年,現在很多人的桌上不只一台電腦,有人身上要掛兩隻手機,電腦體積可以小到跟名片、手錶、眼鏡一樣,穿在身上都沒問題。所以,這個40年前的問題,答案已經清楚得很。 http://www.slideshare.net/marr/python-for-application-integration-and-development
  3. http://fundersandfounders.com/the-history-of-creating-value/
  4. 90年代,有人問了另一個問題:如果我們都能寫程式跟自己的電腦溝通,那又會變成怎樣的世界呢?
  5. 甚至到了現在,我想問,如果我們都具備動手做的習慣,追根究底的科學精神,那麼,這世界又會變成怎麼樣?
  6. 夢想需要實踐,需要時間去嘗試,去犯錯,去調整,真正偉大的夢想,要能夠感染別人,讓世界變得更好。 讓我們看些實際例子 https://www.flickr.com/photos/wildtexas/4061903846
  7. 沈芯菱:十幾歲開始自學架站協助,也因為這些早期的學習經驗,讓她更有能力實現自己的夢想。
  8. 瞿筱葳:早期是一位影像工作者,她現在是零時政府的成員,也和眾多自主貢獻者共同推動寫程式改造社會的工作。實踐夢想是那麼地不容易,如果我們多得到一些幫忙,讓心裡的小火苗能燒得更久,這世界就越有機會變得更好。 http://studyhost.blogspot.tw/2013/08/code.html
  9. 我認識許多寫程式像喝水的天才,但我不是那種人,我常常要花很多時間,有時要加上運氣,才能寫出想要的程式。 想靠寫程式賺大錢,可能要有天份,如果你對寫程式有興趣,想靠寫程式快樂地生活,我相信很多人都做得到,這是我推廣程式學習的原因。 選對工具,降低初學的門檻,以免連試都沒試,就把學習機會抹殺了。
  10. 有沒有程式語言簡單到三歲小孩都會的? 網路上真有一段影片,爸爸教了三歲小孩,寫出 hello world 程式。用「三歲 python」可以 google 找到這段影片。即使你從來沒有學過程式語言,都能在幾天內學會 Python 基本語法,把它當計算機、處理檔案、連接資料庫,都不是問題。Python 之所以容易上手,適合成為「第一個程式語言」,跟它的設計理念有關。
  11. 首先,互動性很重要。 如果你辛苦地寫了一篇500字的作文,老師評語是「文不對題」,這種情況,對雙方而言,都是很大的傷害。 初學一個語言,即時回饋很重要,你會想馬上知道,我這樣做,是否做對了。 在這個情況下,編譯式語言對初學者而言,少了直接的互動性。
  12. 另一方面,我們也可以從外在環境,檢視時代的演進,如何影響程式語言的普及度。 50年來,世界上出現超過2500種程式語言,但廣為使用的,或是最後還留下來的,仍舊是少數。 在個人電腦普及之前,是數位世界的黑暗時代,電腦知識只在科學家、工程師,少數人的圈子裡流傳,他們通常使用低階語言,或是著重牽就系統資源的技法,這類知識很專業,通用性較低。我們剛才提到簡單和互動性,八○年代的 BASIC 就是早期代表,但在進入 Internet 時代後,它被取代了。最近十年來流行的程式語言,一定跟 Web 有關,簡單地說,Python 也是跟網站開發還有雲端運算緊密相關,才造成它的高知名度。
  13. Python 早期在學術圈裡發展,後來幾個愛用的 startup 都賺錢了,打開它的知名度,最近成為美國知名大學教授程式入門最受歡迎的語言。它能吸引教育界採用的原因,跟它適合學習的設計原則有關。 http://cacm.acm.org/blogs/blog-cacm/176450-python-is-now-the-most-popular-introductory-teaching-language-at-top-us-universities/fulltext
  14. Python 在設計上,盡量以數學、自然語言為基礎,讓人盡量透過直覺來使用它的語法。所謂直覺,就是過往經驗的反射反應,目的之一,就是讓我們的大腦專注在「真正的問題」上。程式語言是協助我們解決問題的工具,它本身不該成為我們的問題。
  15. 這是數學和 Python 函式的範例,它們長得很像,至少思緒邏輯上很像,這是一種「一致性」,讓你很自然地從數學世界進入程式世界。Python 程式碼本身跟虛擬碼很像,當你用類似英文的自然語言把解題步驟寫出來後,幾乎就等於是 Python 程式碼了。
  16. 進一步來看,Python 使用縮排來建立程式區塊。 這種方式,對於習慣用括號建立區塊的程式人員,腦筋可能容易打結。 事實上,使用括號建立區塊的語言,也會建議利用縮排來提昇程式碼的可讀性,Python 則在設計上就把這項風格變成要求。甚至你硬要用括號或 endif 之類的符號來建立區塊,也沒問題,找得到 preprocessor 來完成。 http://www.secnetix.de/olli/Python/block_indentation.hawk
  17. Python 社群非常重視程式碼的可讀性,無論在邏輯上、語意上、視覺上。資深的工程師,通常都會同意,他們需要花更多時間在讀程式碼,而不是寫程式碼。難讀的程式碼,通常被稱為醜的程式碼,是一種智力虐待。
  18. 我常常思考程式語言,跟一般語言的學習,是否有怎樣的關係。我相信它們是可以相互對照,都必須歷經不同階段,是一種不斷累進的過程。 語言的主要功能是溝通,互動的對象在溝通過程裡扮演很重要的角色。
  19. 有人把語言學習分成「口語前期」「口語期」「精熟期」等三個歷程,前期只會發出聲音,未必代表特定意義,比較有趣的是口語期。它有三個特徵。
  20. 擴大來看,語言的聽說讀寫能力,也具備特定的順序。電腦就是我們的「回饋對象」,它通常能直接讓我們知道「講的話是否語法無誤」「講的話是什麼意思」。
  21. 學習語言的過程,模仿很重要,幸好搜尋引擎通常能提供不錯的範例或說明。
  22. 沒有 private 關鍵字,採用 underscore 來建立 private property,想要把 private 改成 public 很簡單,但相反操作很難。 我們是鼓勵理性創作的大人 http://pythonconquerstheuniverse.wordpress.com/2009/10/03/python-java-a-side-by-side-comparison/ http://docs.python-guide.org/en/latest/writing/style/
  23. 首先,大量使用 Python 的單位,包括 NASA, Google 這些公司,Python 是 Google 產品的三大官方語言之一,是美國知名大學最常拿來教學的程式語言,所有想要讓初學者更容易接近電腦的大規模努力,都會想到要結合 Python。 http://www.checkio.org/blog/checkio-top-american-universities/ http://techwikasta.com/wp-content/uploads/2013/10/thebenheckshow_raspberry-pi-portable-gaming-console-650x0.jpg
  24. 所謂的表面上簡單,是指「你很容易就在兩星期內學完 Python 的關鍵字、資料型態、基本語法,確實也可以完成八成的日常問題」,但如果你想更有效地應用 Python,還要是繼續學習典範和慣例。 http://computerengineeringandscience.blogspot.com/2014/08/typical-questions-answers-choose.html http://www.youtube.com/watch?v=ufmzc2sDmhs PHP vs Python http://chenglap-blog.logdown.com/posts/237486-westerners-working-lazy-power-is-very-strong 工時少卻生產力高,不斷探究和整合
  25. 在雲端大數據時代裡,客製化運算成為日常的重要需求。 也就是說,我們有機會透過 API 取得更多資料,怎樣從這些人事時地物的資訊,判斷它跟我自己有什麼關係,成為重要的生活技能。 當資料所承載的語言越複雜,溝通的門檻就越高,我相信降低語言複雜度的努力,會持續進行。 http://computerengineeringandscience.blogspot.com/2014/08/typical-questions-answers-choose.html http://www.youtube.com/watch?v=ufmzc2sDmhs PHP vs Python
  26. 就像在國際會議場合上,如果只允許大家用一種語言相互溝通,我們會發現英文常是重要的選項。 在數位世界裡,Python 成為共通語言的重要性,也會日益增加。 http://collaborativeinnovation.org/lingua-franca/ http://www.tesoltraining.co.uk/blog/sgi-cpd-club/english-as-a-lingua-franca-whats-it-all-about-part-1-of-3-english-around-the-world/ 少女時代: 愛情 科學: 數學 人文社會的共通語言是什麼呢?
  27. 不過,對於資訊專業人員而言,不可能只學一種語言。 依照需求的提昇,我們需要讓語言能力跟著提昇。
  28. 0-, 0+, 1, 2+, 10+ mother tongue is a linguistic phenomenon which will occur inevitably because no one fails at learning their first languages (with exceptions of traumatized brain damage or born disabilities). Second language is crucial depending on what your life goal is. Third / fourth language learning is you fulfilling your ambitions as an intellectual and is worth the applause of all.
  29. Pattern, Idiom 好的工程師,有何特質: 1) 看到預期結果,不代表工作結束 2) 懂得在品質與時間壓力間做出取捨 3) 懂得把巨大任務拆解成個別問題 4) 知己知彼,做出合宜抉擇 5) 善於團隊合作 6) 具備洞察力,支撐度過高潮和低潮
  30. http://digitaltechblog.weebly.com/5/post/2013/05/scratch-alternatives.html
  31. http://pythonchallenge.com/ http://projecteuler.net/
  32. http://www.youtube.com/watch?v=DUCQ_HZamhs iPython Notebook Basics http://www.youtube.com/watch?v=HBbzYKMfx5Y Super Mario Bros with PyGame http://www.youtube.com/watch?v=MkZXaDQfTSo RPG Game: The Stolen Crown
  33. 即時的程式碼示範,顯示執行結果的圖形,嵌入網頁註釋,顯示數學方程式,和其他同好交流範本檔。 擔心安裝不成功的朋友,試 http://www.pythonanywhere.com/try-ipython/
  34. http://echonest.github.io/remix/examples.html http://static.echonest.com/bonhamizer/ http://static.echonest.com/labs/ Bonhamizer http://static.echonest.com/BohemianRhapsichord/index.html http://www.youtube.com/watch?v=aV8i3mWp3hs BohemianRhapsichord http://infinitejuke.com/
  35. http://www.academia.edu/5720765/Coding_the_Python_Way http://techorange.com/2014/09/15/heres-everything-non-techs-need-to-learn-coding-and-its-fun/ https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#python
  36. http://www.30plus.com.tw/article-content_34.html Entrepreneur in Maker Campus
  37. Python 同好共享一個社群文化,它讓同好們能有一見如故的特殊情感。
  38. 吊詭的是,更多人用電腦上網後,生活變得更快樂嗎? 如果學一個程式語言,不能讓人更有效地解決問題,對世界更加認識,那我們該把時間省下來,時間就是金錢,時間就是生命。 人生苦短,如果我們意識到自己的時間有限,生命中最重要的事,就會浮現出來。 Everybody in this country should learn how to program a computer, because it teaches you how to think. – Steve Jobs 鄭人元 成功的人都在做自己想做的事情 千萬不要繼承父母不成功的思維模式 大學不僅僅只是學好專業那麼簡單 做個精緻的利己主義者對自己沒好處
  39. 你的人生就像一場線上遊戲,只是無法存檔 http://www.slideshare.net/autang/open-source-enlightenment 台灣人才培育四大困境: 孩子太晚探索性向 父母主導學習方向 學校太重視升學率 社會職場偏重學歷 – 遠見2014.7