【入門自學程式語言必看】學程式最重要的東西是甚麼?

更新 發佈閱讀 4 分鐘

最近很多人私訊我他們自學程式遇到的瓶頸,有些人覺得自己學了很久,看範例或別人的解答可以看懂,但要自己面對問題並用程式來解決,卻無從下手。

想起自己從自學程式到創業這段過程,也遇過同樣的問題,那時詢問過許多高手的意見,他們會說【程式語言只是工具,更重要的是程式邏輯】,學會了邏輯才做得到自己用程式解決問題。我再追問程式邏輯是甚麼?高手給我的回答【程式邏輯就是解決問題的那個算法,只是用程式語言實現出來】。

當時聽到只覺得是在講幹話,現在回想終於懂這句話的涵義。因為這個邏輯是抽象的概念,不像程式語言所見即所得,很難描述到底怎樣能學會所謂的邏輯。


不過,學會邏輯其實是有步驟可循的,而且有個更貼切的名詞【運算思維Computational Thinking,簡稱CT】,美國知名電腦科學家Jeannette M. Wing,曾經寫了一篇很有名的文章:<Computational thinking and thinking about computing>,詳細敘述了何為運算思維。而 Google 針對CT提出了四個核心能力:

1.拆解: 將一個任務或問題拆解成數個步驟或部分。

2.找出規律: 預測問題的規律,並找出模式做測試。

3.歸納與抽象化: 找出最主要導致此模式的原則或因素。

4.設計演算法: 設計出能夠解決類似問題並且能夠被重複執行的指令流程。


以計算等差級數的程式為例,設計一個讓使用者輸入首項、末項、公差,最後計算出這個等差數列的總和

1.如何拆解?

這個題目構造很簡單,輸入三個數字,然後由這些數字計算出總和

所以整個題目可拆解成【輸入數字組】、【計算總和】

2.如何找出規律?

這裡因為輸入數字組是使用者隨機填寫的,所以只需要去找【計算總合】的規律,也就是假定幾個數字組去預測總和結果是多少

例如:

首項=1,末項=11,公差=2,這樣等差數列會是1、3、5、7、9、11,總和為36。

首項=2,末項=32,公差=3,這樣等差數列會是2、5、8、...、32,總和為187。

3.如何歸納與抽象化?

就是不帶入值,而是把首項、末項、公差當作變數來算出總合

第1項=首項

第2項=首項+公差

第3項=第二項+公差

...

最後1項=末項

所以總和=首項+(首項+公差)+(第二項+公差)+...+末項

4.如何設計演算法?

以【總和=首項+(首項+公差)+(第二項+公差)+...+末項】來思考怎麼轉化成重複執行的指令流程,也就是演算法,這時候才開始寫程式碼

首先,需要使用者輸入首項、末項、公差,把這三個存成變數

再來,用迴圈來完成重複執行加總的動作,迴圈初始值=首項,迴圈執行判斷則是<=末項,迴圈遞增=公差

這樣迴圈的index就會產生我們想要的等差數列,第1圈index=首項,第2圈index=首項加公差,第3圈index=首項加2*公差=第二項+公差...最後1圈index=末項

最後只需要初始值設零的暫存器隨著迴圈每次加總index就可以得到總和


雖然這個題目用這樣的方式去解題變得有點麻煩,可我的用意在於解釋運算思維的步驟而不是解題,希望說大家之後遇到更難的問題能更有概念與方向去分析並解決

免費1對1線上諮詢

我正在籌備【程式學習的精髓:運算思維】的課程,如果對學習感到困難或對課程感興趣,我提供免費1對1線上諮詢

我除了提供個人免費諮詢服務,也會將你遇到的問題融入我的課程製作

所以現在預約諮詢的朋友,之後我的課程做出來,你對課程有興趣的話,我會給予最優惠的早鳥價作為協助課程製作的回饋

請點連結選擇你方便的時間我們線上聊聊,現在預約還可以得到一份【自學程式非懂不可】簡報喔!

留言
avatar-img
Benson老師教你程式學習技巧的沙龍
6會員
9內容數
2022/10/28
運算思維是由許多不同的解決問題的技巧構成,核心為創造演算法,其他還包含運算模型、科學方法、捷徑思考、邏輯、模式比對、表示法、抽象化、拆解、評估檢驗。 本文除了介紹運算思維是甚麼,還會說明各個問題解決技巧,希望讀者不只了解各個技巧,更學會以豐富且彼此連結的方式組合使用這些技巧。
Thumbnail
2022/10/28
運算思維是由許多不同的解決問題的技巧構成,核心為創造演算法,其他還包含運算模型、科學方法、捷徑思考、邏輯、模式比對、表示法、抽象化、拆解、評估檢驗。 本文除了介紹運算思維是甚麼,還會說明各個問題解決技巧,希望讀者不只了解各個技巧,更學會以豐富且彼此連結的方式組合使用這些技巧。
Thumbnail
2022/08/04
最近很多人私訊我他們自學遇到的瓶頸,有些人會覺得學不會程式,是自己太笨沒天分,或從小數理能力就差,才學不起來。但以我自己這些年自學程式並創業的經驗,我認為可能原因是自己操之過急了,因為想要快速達到像是轉職或是創業等等目標,所以覺得得學得越快越好。但這個領域需要的是長時間的磨練,慢慢一點點累積
Thumbnail
2022/08/04
最近很多人私訊我他們自學遇到的瓶頸,有些人會覺得學不會程式,是自己太笨沒天分,或從小數理能力就差,才學不起來。但以我自己這些年自學程式並創業的經驗,我認為可能原因是自己操之過急了,因為想要快速達到像是轉職或是創業等等目標,所以覺得得學得越快越好。但這個領域需要的是長時間的磨練,慢慢一點點累積
Thumbnail
2022/08/03
設定好你的目標,做好目標分解,接下來就是學習與實作,在過程中,肯定會遇到各種問題需要debug,這應該是剛入門自學程式的人最痛苦的部分,可能看到bug不知道google要下甚麼關鍵字,也可能搜出一堆文章看得頭昏腦脹,所以想跟大家分享我在自學製作封鎖電商黑名單chrome插件過程,是怎麼面對這種狀況的
Thumbnail
2022/08/03
設定好你的目標,做好目標分解,接下來就是學習與實作,在過程中,肯定會遇到各種問題需要debug,這應該是剛入門自學程式的人最痛苦的部分,可能看到bug不知道google要下甚麼關鍵字,也可能搜出一堆文章看得頭昏腦脹,所以想跟大家分享我在自學製作封鎖電商黑名單chrome插件過程,是怎麼面對這種狀況的
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
介紹邏輯運算的觀念,包含布林值、運算子與運算式的介紹。並說明如何使用 Python 撰寫這些觀念。
Thumbnail
介紹邏輯運算的觀念,包含布林值、運算子與運算式的介紹。並說明如何使用 Python 撰寫這些觀念。
Thumbnail
  程式中很常會看到千奇百怪的運算式,這些運算式都隱藏著各種運算元和運算子,這些是什麼呢?讓我們來一探究竟。   運算元是指變數、常數這類(如:A、B、C、Data、123等),運算子是指運算符號(如:+、-、*、/、%、==、<、&&等這類型),這邊就要介紹C#的運算子以及怎麼使用。
Thumbnail
  程式中很常會看到千奇百怪的運算式,這些運算式都隱藏著各種運算元和運算子,這些是什麼呢?讓我們來一探究竟。   運算元是指變數、常數這類(如:A、B、C、Data、123等),運算子是指運算符號(如:+、-、*、/、%、==、<、&&等這類型),這邊就要介紹C#的運算子以及怎麼使用。
Thumbnail
程式語言只是工具,更重要的是程式邏輯 【運算思維】 1.拆解: 將一個任務或問題拆解成數個步驟或部分。 2.找出規律: 預測問題的規律,並找出模式做測試。 3.歸納與抽象化: 找出最主要導致此模式的原則或因素。 4.設計演算法: 設計出能夠解決類似問題並且能夠被重複執行的指令流程。
Thumbnail
程式語言只是工具,更重要的是程式邏輯 【運算思維】 1.拆解: 將一個任務或問題拆解成數個步驟或部分。 2.找出規律: 預測問題的規律,並找出模式做測試。 3.歸納與抽象化: 找出最主要導致此模式的原則或因素。 4.設計演算法: 設計出能夠解決類似問題並且能夠被重複執行的指令流程。
Thumbnail
本篇文章將會記錄Microsoft關於數字計算相關的知識,以及紀錄這些計算的專有名詞,補足闕漏的知識。
Thumbnail
本篇文章將會記錄Microsoft關於數字計算相關的知識,以及紀錄這些計算的專有名詞,補足闕漏的知識。
Thumbnail
這篇文章為介紹C#基礎知識的一部分,如果你是直接開始寫程式的C#程式員,可以看看這篇文章補足一些基礎知識。
Thumbnail
這篇文章為介紹C#基礎知識的一部分,如果你是直接開始寫程式的C#程式員,可以看看這篇文章補足一些基礎知識。
Thumbnail
但就筆者個人經驗,數學在二下像自然一樣爆掉的狀況反倒少見,應該是二上已經被洗禮過,該炸的都炸了,剩下的是持續,以及慢慢習慣步調追上的差別。前半的第一部分是數列,目前只剩下等差數列,等比只有講一點概念,複雜運算都沒有了。筆者看過的學生在這邊出事的,大多是題型看太少,導致卡住抓不到解題辦法。
Thumbnail
但就筆者個人經驗,數學在二下像自然一樣爆掉的狀況反倒少見,應該是二上已經被洗禮過,該炸的都炸了,剩下的是持續,以及慢慢習慣步調追上的差別。前半的第一部分是數列,目前只剩下等差數列,等比只有講一點概念,複雜運算都沒有了。筆者看過的學生在這邊出事的,大多是題型看太少,導致卡住抓不到解題辦法。
Thumbnail
恭喜各位同學進入國中二年級,或者說要恭喜家長,小孩終於進入正規課程了。就跟高一會有銜接課程,大學也有一樣,國一課程基本上也算是有很強烈的銜接意味,但也有不少打底的意思。這也代表,各種綜合運用的技術會在國二的課程中出現。
Thumbnail
恭喜各位同學進入國中二年級,或者說要恭喜家長,小孩終於進入正規課程了。就跟高一會有銜接課程,大學也有一樣,國一課程基本上也算是有很強烈的銜接意味,但也有不少打底的意思。這也代表,各種綜合運用的技術會在國二的課程中出現。
Thumbnail
時輪是甚麼? 這是統全數理自創概念,用於確定所有算法的商數時使用 且能夠讓程式碼設計師「逐步檢查計算過程」
Thumbnail
時輪是甚麼? 這是統全數理自創概念,用於確定所有算法的商數時使用 且能夠讓程式碼設計師「逐步檢查計算過程」
Thumbnail
統全數理功用: 1.方便計算機計算過程直觀化,透過時輪系統,一步一步地理解計算過程 2.數理語言的統一規則化 3.可能方便初學者逐步理解   算法案例   二元算法 統全數理法化   次方/平方/立方.次方根,如何計算對數?   算法案例:加法與減法   算法案例:乘法除法
Thumbnail
統全數理功用: 1.方便計算機計算過程直觀化,透過時輪系統,一步一步地理解計算過程 2.數理語言的統一規則化 3.可能方便初學者逐步理解   算法案例   二元算法 統全數理法化   次方/平方/立方.次方根,如何計算對數?   算法案例:加法與減法   算法案例:乘法除法
Thumbnail
家長真的要記得,小學數學多半脫離不了算術的範疇,但進入數學就有數學語言的概念,無法運用數學語言,怎麼可能進入科學、工程的領域?就算勉強考進去,多半也只會是半調子。 能夠早點熟悉數學邏輯的思考,以及數學語言的運用,絕對是好事。
Thumbnail
家長真的要記得,小學數學多半脫離不了算術的範疇,但進入數學就有數學語言的概念,無法運用數學語言,怎麼可能進入科學、工程的領域?就算勉強考進去,多半也只會是半調子。 能夠早點熟悉數學邏輯的思考,以及數學語言的運用,絕對是好事。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News