[從零開始的程式生活-2] - 學程式的意義?

點此看影片版

鼬~~~哩賀,我是寫程式的山姆老弟,今天是我們的 從零開始的程式生活-第二篇,爺~

上一篇跟你聊到「什麼是程式、怎麼挑選你的第一個程式語言、寫程式有什麼好處」,今天我要跟你聊聊一個很重要的心法:「學程式的意義」,其實我也很想趕快帶你體驗寫程式的樂趣,不過因為這點太重要了,不然你可能會迷失在程式語法的大海中

那事不宜遲,我們就出發囉~

Low-Code or No-Code 時代

近幾年有個發展趨勢,也就是線上工具越來越多,而且他們越做越方便,能讓不會寫程式的人,也能很快的做出屬於自己的部落格、做出自己的網站、做出自己的 App,你所需要做的,就只是在網站上點一點、拉一拉,而這就是 Low-Code 時代的來臨,也有人叫做 No-Code 時代,字面上的意思就是你不需要自己寫程式碼,或者你只需要懂一點點程式碼,就能做出「原本要用程式碼才能做出來」的東西

這一兩年內,還有一個顛覆性的工具出現,叫做 Copilot,這個工具由著名的 GithubOpenAI 一起做出來的,Github 擁有全世界多數公開的程式碼,很適合提供訓練人工智慧的素材,OpenAI 則可以透過這些成億成兆的程式碼來訓練出,「能夠 自動生成程式碼 的人工智慧」,你能想像普及之後,未來的工程師已經不再需要去記憶很細節的程式語法,只要告訴 AI 我這段想要完成什麼功能,AI 就能在「啪」的一瞬間,就產生你想要的程式碼,而且可能還比工程師自己敲下來的程式碼還要好看、沒有 bug

那麼,在這種時代的浪潮之下,你該怎麼辦呢?

你要學習的是 運算思維或叫做 計算思維 (Computational Thinking)

(說文解字時間~)

Computational 計算的、運算的,Thinking 思維、思想,你可能會想說,每個字我都懂,但兩個字合起來我就不懂了,沒錯,這個詞就是這樣子的

誒,先別急,我想先問你個問題:「現在你身旁的同學還有人在學珠算、心算嗎?」,會問這個問題是因為,現在的電腦、手機的運算能力已經遠遠超越人腦,每個人隨手拿起手機按一按,幾乎沒有手機算不出來的,只差在我按不出來公式而已

舉例來說,我想問有學珠心算的你,97 * 123 等於多少? 對你來說可能很簡單,那下一個問題是 2 的一千次方等於多少?這問題可能有點麻煩了,但對於電腦來說,這兩個問題沒什麼差別,因為人的大腦不應該拿來做這些無意義的運算,這是電腦擅長的領域,就交給電腦來做吧,我不是說學珠心算沒用,這些技能在日常生活中還是很好用的

所以學習的重點不在怎麼運算,而是在於怎麼思考轉換思考模式 不是一件容易的事,所以是需要一點時間培養跟習慣的,至於學習「使用程式」相當於是學習一種「工具」而已,透過這個「工具」搭配「運算思維」來解決各種技術問題,甚至是生活問題

記住,這是一套思維方法,不是專門用在程式領域而已,學得好的話,是可以應用到生活上的各個領域的,當然,你如果是在這個時代要成為或轉職軟體工程師,程式語法還是很重要的,畢竟這些語法還是你日常吃飯的工具

什麼是 運算思維(Computational Thinking)?

運算思維的目標,是要透過一系列方法,找出通用的解決方案,其中包含

  1. 拆解問題 (Decomposition)
  2. 用模式或資料來表達問題 (Pattern Recognition / Data Representation)
  3. 將問題通用化或抽象化 (Generalization/Abstraction)
  4. 最後找出可以解決這一類問題的通用解決方法 (Algorithm)

這樣講實在是有點太學術了,簡單來說就是你

  1. 怎麼表達問題
  2. 怎麼分析問題
  3. 怎麼拆解大問題變成多個小問題
  4. 這個問題是屬於哪一類大問題
  5. 怎麼解決每個小問題
  6. 評估哪一個解法最好
  7. 這一類的問題是不是已經有最佳解法

再講下去我猜你就要睡著拉,學習一種新的思維模式,不是光看一部影片或是聽我講就可以學會,這是一個淺移默化的過程,需要你自己參與到這個過程中來慢慢體會

最後,幫你總結一下

  1. 你如果是 「想學程式但沒有要當職業」

    • 學習重點:表達問題、分析問題、拆解問題、解決問題、學習程式用語
    • 語法:程式語法能記多少算多少,可以幫助你練習程式的時候,更順暢、自信度也比較高
  2. 你如果是 「想學程式來當職業」

    • 學習重點:除了上述要的技能之外,需要熟練語法、熟練常用的工具或套件,完成日常工作需求
    • 語法:那程式語法該記的還是要記,基礎語法跟常用套件至少都要到熟練等級

你如果是「想學程式但沒有要當職業」的人,你的學習重點應該在「怎麼表達問題」、「分析問題的方法」、「怎麼拆解大問題變成多個小問題」、「怎麼解決每個小問題」、「學習使用程式的用語來溝通」,這幾個能力不是 0 跟 1 的差別,而是一個無法量化的級距,永遠都可以繼續精進這些能力

這讓我想到我的前同事跟我說過一句話,讓我印象很深,他跟我形容一位神人同事的「邏輯異常清晰」,我現在懂這句話的意思了,他想表示的是這位邏輯異常清晰的同事,能夠在任何情況下,都能「清楚分析現在團隊所遇到的問題、並且很清楚的切分問題、找到問題的所在,並且帶領團隊去找到解決真正的問題的共識」,這大概就是將運算思維訓練到極致的程度了吧

有一點需要強調,就是 「怎麼表達問題」,換句話說就是 「怎麼問對問題」,很多人常常在解決問題的時候卡住,原因是因為他們會「問錯問題」,導致他們無論怎麼向別人求救,別人都很難直接給他們實質的幫助,在程式的世界裡,你常常會需要到某網站上問問題,通常當你問對問題,解答就會出現,所以寫程式是很適合用來訓練你「怎麼問對問題」的方法

至於在語法層面,你能記多少算多少,這些語法的熟練程度,會決定你未來在自主練習寫程式的時候的順暢度跟自信度

好的,你如果是「想學程式來當職業」的人,那麼你的學習重點就有兩條主線了,第一條主線就是 培養剛講的運算思維,第二條主線就是要 熟練你的生財工具,也就是程式語言語法、常用的工具或套件,你可以想辦法找到「正在從事你未來想從事工作」的人,簡單來說,你想學前端,就去找現在已經是前端工程師的人,問一下他的工作日常都在解決什麼問題,把這些當作情境題,看自己是否能夠勝任這些日常挑戰,來當作你能否轉職的一種評估方式

以上就是今天這篇的所有內容拉,講完這篇,我覺得有點欣慰,如果有人在我還是學生的時候,就告訴我這些事情就好了,做完這一集,算是滿足了自己的遺憾,希望對你有所幫助,有幫到你的話,別忘記按讚、把這部片分享給你那位也想學程式的朋友哦~ 如果還想看到更多這系列的內容的話,可以訂閱 Youtube 頻道、追蹤我們的 FBIG,還有訂閱我們的電子報,我們下次見,掰掰~


延伸閱讀

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2021-2022 Sam Ho
  • Visitors: | Views:

請我喝杯咖啡吧~

支付宝
微信