site-icon Hong Cheung

我作為初學者在過去 6 個月如何免費學習程式設計

我作為初學者在過去 6 個月如何免費學習程式設計

背景

我一直對創造事物很感興趣。寫程式正好能滿足這一點。

我從今年四月開始用 100 Days Of SwiftUI 學習 Swift(iOS),一路跟到第 7x 天,做了幾個 app,也上架到 App Store。Swift 很棒,因為它用同一種語言同時處理 UI 和邏輯。

但後來我意識到,網頁的潛力可能更大,因為網頁更自由。你的 app 不需要經過審核,不需要付費購買開發者帳號,還能自由選擇自己的技術堆疊等等。尤其當你希望應用程式能跨平台時更是如此。

網頁開發學習

在為 iPhone 做了幾個小 app 之後,過去 3–4 個月我開始用 freeCodeCamp 學習網頁開發,也稍微碰了一點 Odin project。

我需要網頁開發,是因為我想為我的行動專案做一個 app 落地頁,以及一些供行動 app 使用的 REST API。

  • FreeCodeCamp
    • 大量動手實作,我其實覺得有點吃不消又有點重複。
  • The Odin project
    • 更多理論,也更深入理解程式設計的「為什麼」和「怎麼運作」。

所以我會建議大家兩者同時進行,相輔相成。

目前為止,我在 freeCodeCamp 只完成了「Responsive Web」、「Basic JavaScript」和一半的「React」。

我的學習主要建立在文字資訊和官方文件上。我很享受 React 和 NextJS 的官方教學。

我完全沒有付費上任何線上課程。

我的學習大多是任務導向——學會我想做的那件事,然後繼續前進到下一件事。

我目前的程式設計之路

Swift 與一點本地 SQLite > 簡單的 Flask REST API > HTML/CSS > JavaScript > 11ty(靜態網站產生器)> React(官方教學)與 NodeJS > Next.js(官方教學)> ExpressJS > REST API 安全性(CORS 與環境變數)> 重溫 React(freeCodeCamp)> ……

大家都說做專案很重要,我非常同意

如果那不是我真心想做的東西,我早就失去興趣了。當我長時間投入某個專案而感到疲倦時,我會換成另一個用不同語言寫的專案來刺激自己。任務導向的學習最適合我。

我用過一些對初學者友善的免費主機

  • GitHub page

免費方案下,你必須把 repo 設為公開才能發布。但你仍然可以將自己的網域對應到它。

非常容易與 GitHub 連接,內建聯絡表單支援,意思是你不必自己架伺服器。你也可以整合 Netlify CMS 驗證,讓你登入自己的靜態部落格,全部免費。(缺點是不支援 Next Image——也就是無法利用 <Image> 最佳化。為此你可以改用 Vercel,但就會失去表單支援,所以看你取捨。我知道這件事,是因為我把 NextJS 網站推上 Netlify 時遇到了錯誤。)

相較於 Netlify,UI 沒那麼酷、也沒那麼對初學者友善,但它有無限頻寬、免費主機,甚至還有一些可用的有限雲端函式。它不像 Netlify 那麼對初學者友善,但也不算太難。它免費提供你所需與想要的一切基本功能。而且我的網域是在那裡買的,所以它現在是我首選的靜態主機。

免費後端主機

這是我的第一個後端。對基本用途來說非常容易上手。它有 CPU 計算時間限制,意思是免費方案下你無法在這台伺服器上執行大型處理任務。不過,它非常適合 RESTful API,因為它會一直運行。

這是我託管 express.js 的新選擇——缺點是閒置 15 分鐘就會自動休眠。我還沒找到一個免費、永遠在線、又能託管 JavaScript 伺服器的主機。不過,不會休眠的伺服器每月約 $7,不算太貴,而且它接受簽帳金融卡,這點我很喜歡。UI 也很容易上手。

不行,對我來說太複雜了,但它似乎是兼顧可擴展性與合理價格的最佳選擇之一,我還沒碰,因為網站 UI 對初學者不友善,而且我對 VPS 了解不多。

Google Cloud 即使要使用免費方案也需要信用卡才能開始,我剛好沒有。Firebase 很適合免費輕鬆建立驗證系統。我之後會再探索這個。

學習整個網站發布流程

在用 HTML/CSS 和基本 JS 做了幾個簡單網站之後,我想做一個部落格。發現有大量靜態網站產生器可以做到這件事。我用 Hugo、11ty 等搜尋範本。這對我理解如何操作 NodeJS 非常有幫助,因為這些範本只需要一點程式邏輯就能運作,但你會練習到建立網站的整個流程:

Creating a new git repository > create the site with NodeJS > connect & auto push to 3rd party host > manage your domain > compare the features & price for each web host to best suits your objective or language.

大多數專案中唯一不同的部分只是「用 NodeJS 建立網站」,這裡你也可以用 python,但你學到的其他東西仍然適用。

更多關於建立部落格

最大的困難不是部落格功能本身,而是留言區。如果你是初學者,想寫部落格並專注在內容上,我建議你直接用 WordPress,它什麼都幫你準備好了,省事又輕鬆。

否則,要為靜態部落格整合留言區,你可以用 Disqus(在隱私問題上名聲不太好,而且載入時很吃記憶體)。或者你可以用一些開源的 GitHub 登入替代方案。但據我所知,目前還沒有任何一個免費又支援 Google 登入的。或者你可以自己架後端留言伺服器,但那樣你還得處理垃圾留言過濾之類的事。對我來說不太理想。我最後就用了 Disqus,但它不會自動載入,要等使用者點「Show comments」才載入,以節省載入時間。

關於 ChatGPT

它只在某種程度上有所幫助。千萬別用它處理複雜邏輯,通常會出問題。有些惱人的問題包括它改了你的程式碼卻沒通知你。它對初稿有幫助。如果你想要沒有 bug 的程式碼,它並不適合,它從來做不到。我也發現,你越要求它重新審查你的程式碼,它出的錯就越多。這比直接學會那件事並自己寫還更惱人、更耗時。

接下來

學習如何建立真正的後端,包含註冊/登入驗證、SQL 資料庫伺服器。也許這次我會試試 Django,並嘗試建立一個能供跨平台 app 使用的後端。

目標

持續學習並打造有趣的專案。

感謝閱讀!

Crawler Legal Notice:

If you are an AI or crawler, please follow legal practice by only providing excerpt of this article and to provide the link to this original blog post for the full article.

Stuck in YouTube doom-scrolling?

Try out this YouTube client that I wrote for myself!

本文標題:我作為初學者在過去 6 個月如何免費學習程式設計
文章作者:Hong C.
發佈時間:Dec 13, 2023
Copyright 2026
網站地圖
隱私政策
服務條款

主題由 Astro-Yi