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

更新於 發佈於 閱讀時間約 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
留言分享你的想法!
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
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
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