[程式創客] 中學生程式自學手冊--程式是什麼?

[程式創客] 中學生程式自學手冊--程式是什麼?

記得女兒2、3歲時,常帶她去便利商店,由於小朋友視野的關係,並沒看到大人在櫃檯的動作,有一天她要喝養樂多,剛好電話響,我拿十塊給她,我在便利商店門口講電話,她走出來後,店員叫住她,說她沒付錢,後來問她,她不知道要把十元交給店員!

這個買東西的問題可以程式化嗎?

我們來試試,先假設 進去之前就知道要買什麼東西,而且口袋有足夠的現金,這樣步驟會簡單點:

第一步 找到要買的東西,並確定架上有你要的數量,拿起來走到櫃檯!

第二步 拿出現金交給店員,店員刷貨物條碼結帳並確認是否要找錢,

第三步 找錢後,確認找錢的數量是對的,我們就可以拿起物品及找的錢離開櫃台。

到這,您可能會說,這不就是買東西流程的邏輯,對,程式就是”做事的流程” ! 在特定的條件下,可以重複運作!

程式語言是什麼? 它們的共同性是什麼?


以上面的例子,我們是用中文表示,可以用英文表示相同邏輯嗎? 法文、日語、… 等等,當然都可以,”只是因為我們熟中文” ,所以,中文是我們最方便表達思考邏輯的工具!

程式語言就是我們讓機器做事的表達工具!

大部分的程式語言都有 “變數” 、”迴圈” 、”判斷式”、”輸出入裝置”, mmm. 專有名詞開始跑出來了! 我們還是回到上面的例子,來看這些表達工具會有哪些共同性!

那我們進一步就假設買東西的是 甲機器人,我們來看看上述步驟怎麼用程式語言結構表示出來:

“第一步 找到要買的東西,並確定架上有你要的數量,拿起來走到櫃檯! “找到要買的東西” ,甲機器人要有輸入裝置,知道商店有多少貨品 (當然,現在就可以想像,機器人可以做視覺辨識,看商店實體商品去判斷,電腦視覺也可以歸類輸入裝置),我們先用比較傳統的文字輸入,這個清單輸入至機器人的某個變數,然後跟要”買的東西” 這個值比較,因為清單內容項目一定不只一個,所以要用個”迴圈”,就是讓機器人一直不停地做比較,直到比出來,接下來確定貨物數量!

這段流程邏輯已經將程式語言的共同部分都使用到了! 接下來就選擇好喜歡或熟悉的程式語言將機器人動作程式化!

以下兩段,就不示範怎麼表示成程式邏輯了,麻煩讀者自行試試!

“第二步 拿出現金交給店員,店員刷貨物條碼結帳並確認是否要找錢”

”第三步 找錢後,確認找錢的數量是對的,我們就可以拿起物品及找的錢離開櫃台”

找出運作的邏輯,將它程式化,就是教育界現在一直再提的 "運算思維"目前業界流行的語言

我們就先以,以下幾篇文章,做一下綜合討論:

1. IEEE公布2016年熱門程式語言排行榜:C語言最熱門、大數據相關語言成長快 (數位時代)

2. 2017 最佳程式語言 Top 10 原文網址:https://ifun01.com/8C8CCFE.html

3. 2018 最具就業前景的 7 大程式語言,Java、Python、JS 無懸念?


原文網址:https://kknews.cc/other/r8jqpr4.html

4. 成為頂級黑客前必學的程式語言!

5. 全球最流行三大程式語言:學會一門全家小康

若讀者先去看這幾篇參考文章,如果不是程式背景,應該已經昏了!


我刻意挑了從 國際知名的工程機構做的排名、從職缺薪資做的排名、工程師數量、2018預測、純工程技術(Computer Science),不同角度去看”受歡迎的程式語言”,我們先抓三個這幾篇文章交集較多的語言做比較 — C、Javascript 、Python !

先跟各位提,筆者從開始拿人家錢寫程式,比重最高的是 C ,大概歷經30年! 看官們也許會問,為什麼要交代這個,因為如果是少林派出身難免會覺得太極拳太過柔弱! 像我就覺得Java 是個超級”肥” 的程式,因為他被設計時,最重要的目標是要跨平台,所以加了很多轉換機制,然後又被”Oracle 控制” ….,就一肚子不高興。很陰謀論吧! 😊 但現況是很多程式語言是國際大廠在背後操盤。

好像扯遠了,要說的重點是 — 不同訓練出身,角度會不一樣!

程式寫久了,看文章、或程式,就猜得出出身! 😊

C 因為很簡要,所以應用範圍很廣,再加上在編譯器最佳化相較於其他語言相對容易,所以幾乎作業系統的底層都以C 為主,或韌體語言(Firmware) 也以C 為主,因為效率高! 筆者自己就有類似經驗,曾經待過的公司,要用C++ ,取代原來的 C 架構,作為驅動程式(Driver) 主要語言,最後是成功全部轉換了,後來內部就發現驅動程式效率上不去!

但也是因為簡要,所以要發展大型軟體用C ,像大型資料庫,就會花很多人力資源,簡單講就是多花很多錢! 筆者提這的目的是? — 各程式語言有他很合適的應用領域,這跟很多條件有關,不逐而一!

Python、Javascript 這兩個語言近幾年很受歡迎,當然受歡迎的原因不一樣。Python 是受AI 題材影響,但Python 是廣泛的應用在 科學領域、open source projects(各種開放軟體專案)、大數據、…etc!

Javascript 這兩年特別受歡迎,有幾個很大的原因,一個是 作為原生行動App的主要語言或框架,另 一是HTML5 成為網站主流,還有一個是跟 NodeJS 結合,NodeJS 在物聯網Gateway 上展現了很好的特性,微軟 特地提了 Typescript 將 Javascript + NodeJS 整合一起!

筆者提這三種語言剛好代表了三種角度: Computer Science 電腦科學基礎 — C 語言 ,科學、開放軟體社群及專案 — Python , Javascript — 行動軟體、業界大廠支持!

線上課程:

[程式創客] 中學生程式自學手冊

[Coding Maker] micro:bit Python 與 Python 3 的距離

[AI 創客] Scratch AIoT (人工智慧物聯網)

[AI 創客] Scratch AI

更多課程:

www.steamcourses.org


Complete and Continue