學習程式第一週心得回顧 feat. ALPHA Camp程式設計入門|30歲up學程式行不行 2

Jerry Liu
Be-A-Learner
Published in
9 min readSep 14, 2023
Photo by Philippe Bout on Unsplash

學了一週的程式語言,進度可以到哪呢?

在上一篇「ALPHA Camp程式設計入門Day1」開啟了我的 Coding 旅程,以我而言,我比較喜歡先知道大概的架構及 roadmap 好讓自己可以隨時客觀審視自己的進程。而 ALPHA Camp Dev C1入門課程就有提供每週預計進度,並透過各個「指標作業」來確認每週的學習。

好處就是即便沒有任何人盯你的學習,你還是可以跟著他安排好的路程一步一步走,也會比較知道自己現在在哪裡。

ALPHA Camp Dev C1程式設計入門進度表
Image credit: ALPHA Camp

若有人覺得沒人盯就哪裡怪怪的?ALPHA Camp這邊也有提供「進度制-進度列車」供學員們報名,只要報名了,每週一開始就會先請學生提供預計進度,隔週也會有助教確認上週進度以及這週要完成的項目。

若你真的還是很沒動力,想要有人一起打拼的感覺。在 ALPHA Camp的線上社群裡,也會有「線上飛航學習室」

就我這週觀察,每天都會有人一起掛在線上。如果想要實體的,每週五也有舉辦「Co-working Space」,讓需要的人可以報名後前往 ALPHA Camp的辦公室。

ALPHA Camp每週五 Co-working Space 活動
Image credit: ALPHA Camp

所以到底一週進展可以到哪呢?

先說結論~我在第一天完成了 Week 1 的指標作業,而在一週結束時,進度大概是到 Week 3 的指標作業「打造你的英雄頁面」後面一些些。

Dev-C1-Week 1

之所以可以這麼快,我覺得主要是由於才剛接觸程式語言,所以在課程安排上不會那麼複雜,很容易吸收,也讓我從以往看到程式語言,就好像一堆小蝌蚪,明明都是英文卻有看沒有懂,到開始覺得,喔~其實只要有人跟你講解,你就可以開始了解,跟學習英文一樣。

Dev-C1-Week 2

到指標作業大概就花了兩天的時間,他是延伸了第一週 JavaScript 的邏輯訓練,從原本投骰子,到變成 10 次內要猜對數字。

過程中學習了:

1. 透過運算思維(Computational Thinking,CT)去解決問題,包含

< 1 >「拆解問題」:
任何大問題,都可以透過拆解成許多的小任務,去解決
・「規律辨識」:
觀察每個小問題是否有相同的規律或趨勢
< 2 >「抽象化」:
找出產生規律的公式
< 3 >「演算法」:
這就真的很酷了,以前看到這名詞都會覺得是一個深奧難懂又很厲害的東西😂
但他本質就是我們給電腦的一系列指令,課程中就有比喻,如果你完美的複製食譜,或完美的執行樂譜,那出來的結果就會一樣,演算法就是那個食譜或樂譜。

2. 如何畫一個流程圖

3. 虛擬碼 (Pseudocode)
在 Coding 前,先用自己看得懂的語言,順過一遍。如果沒有這樣做,可能會在刻到一半時發現自己少了什麼,或邏輯不通順。

接下來就進入到指標作業「10次內要猜對數字」

以下分享我遇到的問題:

< 1 > 拆解問題:
先思考我們一般猜數字會是怎樣的玩法

< 2 > 規律辨識:
玩法「每猜一個數字後,會給出一個新的範圍」,這樣就不會一直亂槍打鳥

< 3 > 抽象化:
因此開始思考要怎麼在每產生一次結果後,就能產生新的範圍
我是先去畫個大概流程圖
再透過之前的小作業「經典猜數字:讓電腦猜到飽」去測試

發現結果不如預期
過程中發現雖然可以跑得出結果,但無法保證在10次內一定會完成
如第一次測試結果:
Repl (多測幾次會如下圖右邊,有時會超過 10 回合)

第一次測試結果不如預期,有時會超出 10 回合
第一次測試結果不如預期,有時會超出 10 回合

後來上網查資料發現大家心得都是在講 (max + min) / 2 這概念
又透過「助教思考提示」確認是要用上面這觀念
所以做了第二次的修正,結果:
Repl

透過修正公式 (max + min) / 2 後,讓結果可以在 10 回合內達成
透過修正公式 (max + min) / 2 後,讓結果可以在 10 回合內達成

Dev-C1-Week 3

這週就從 JavaScript,換到 HTML/ CSS 的世界,有趣的是,在最一開始課程設計師還有花一整篇的篇幅在跟我們建立「學習期待」。反覆強調:

很多人認為 HTML 和 CSS 的學習不是寫抽象邏輯,它應該比較簡單,但其實因為語法量大、組合變化多,反而需要更多次的反覆練習,才容易掌握。

強調實作中學習,不要一下子被這麼多新的單字、語法、用法給淹沒,很怕你一碰到就直接崩潰。

實際執行也是如此,在 Week 3 的過程中,課程是手把手一步步的帶你做,就像上面運算思維 — 拆解問題,把下面這個履歷頁面,透過非常多的步驟,拆分講解,學員就照著他的方式刻,練練手感,同時開始認識各語法在頁面上的呈現方式。

ALPHA Camp 第三週跟著助教刻出履歷頁面
Image credit: ALPHA Camp

在這過程,真的是只要跟著做,就能刻出一模一樣的頁面,千萬不要害怕,如同下面影片👇

看著旁邊一堆程式碼,雖然基本上跟自己沒關?但也有種莫名成就感。知道只要跟著做,至少還是能做出相同的畫面,不會按一按電腦就爆了😆

跟著刻出一樣一樣的履歷頁面
跟著刻出一樣一樣的履歷頁面

進入第三個指標作業「打造你的英雄頁面

任務是刻出與下圖一模一樣的頁面,由於前面我們已經跟著流程走過一次,所以這次的任務相對沒有上一個指標作業「 10 次內要猜對數字」那麼燒腦。

Image credit: ALPHA Camp

在這過程中不僅學到 HTML / CSS 的相關語法,還學到先分析並繪製 wireframe 去構思等等要用的畫面架構,同時將自己的思考流程寫下來👇

wireframe 思考流程:
透過由上而下、大到小、左到右去思考

  • 需要一個主框 main 把所有東西包起來
  • 裡面有兩個區塊,分別用 section.avatar 與 section.portfolio 做出區隔
  • 左邊 section.avatar 裡包含一張 img
  • 右邊 section.portfolio 由上而下包含了
    - h1.portfolio-name
    - h2.portfolio-title
    - p.portfolio-description
嘗試將英雄頁面透過繪製 wireframe 去釐清他的畫面架構,wireframe示意圖
嘗試將英雄頁面透過繪製 wireframe 去釐清他的畫面架構

實際發現自己刻得出來還是滿開心的,最有趣的地方在於,題目並沒有給你相關數據像是長寬比例、字體大小、顏色等。所以你需要自己去調參數讓他接近甚至跟上面的圖一模一樣,這時候就要發揮以前學設計排版的知識,去滿滿拆解分析,就跟 Computational Thinking 一樣?

英雄頁面的 HTML / CSS 畫面展示

上面整體看起來都不錯,有個小缺點是我覺得比較可惜的,那就是指標作業的助教檢閱反饋相對來說沒那麼快,大概都要等 3 天左右。這部分倒是讓我比較有壓力,畢竟作業交了以後,得等到批閱才知道自己是否有正確學習到該週的知識點,但我已經繼續下面的課程了,如果要等待回饋再開始後面就會拖到自己的進度,而直接往下走,又會一直擔心萬一之前的作業有錯,影響到之後的學習,就會耗費多餘的心力。

以上就是我這一週的學習進度,必須說每個人的學習進程肯定不一樣,畢竟每天需要做的事情及外務一定都不相同。像我這週看起來好像很快,搞不好下一週遇到一堆事情,整體就會慢下來許多。

我對自己的期許是可以持續精進學習!學到新的事物時,有時會很興奮,有時會很痛苦,每天就是這樣起起伏伏,我覺得挺有趣的。

整理到現在真的花了不少時間,過程中還發現有的地方沒太多印象,要不是有寫心得回顧,不然根本記不住?🤣

這說明了 review 的重要性,他幫助我了解到這一週大概的學習狀況,也讓我能大致記錄遇到作業時的相關問題及心理狀態。未來回看時肯定會很有趣,我們下次見!

我終於開始學習寫程式了!
現在還在蜜月期,所以還算是滿快樂的,但在 ALPHA Camp的一篇文章「學習教練團隊,如何透過數據優化學生學習成果 ?」有提到,學習語言很快就會碰到混亂跟絕望期。

當我遇到時,希望我能堅強持續地走下去,之後會如何我們拭目以待!

Image credit: why learning coding is so damn hard

如有任何想法或遇到什麼問題也歡迎在下面留言,若有時間也歡迎幫我拍滿50下或多多分享~

Be-A-Learner 分享所見、所學

成就更好自己,同時帶動他人一同成長

謝謝你讀完這篇文章,希望你可以給我拍手鼓勵(claps)😁,最多可以50下喔!

延伸閱讀

--

--

Jerry Liu
Be-A-Learner

分享所見、所學,不斷學習,只為成就更好的自己