如何從零開始自學程式

閱讀時間約 7 分鐘
在科技快速發展的現代,每個人都滿口大數據、人工智慧,儘管他們根本不知道自己在說什麼。而大學的資工系也變得越來越熱門,導致每個科系都有人想轉進去,學習程式也逐漸成為許多人考慮的事情。
而我在升大學的暑假開始自學python和C++,並在進到電機系以後一邊上計概學C++,一邊學習全端JavaScript,目前已經自學一年了。
在這篇文章,我會分享如何從零基礎開始學程式,給讀者開始的方向、避免你走冤枉路。

寫程式到底是什麼?


電腦透過解讀機器碼(0和1)接收指令,並執行動作。但是人類不擅長讀寫機器碼,所以發明了程式語言,用更容易理解的語法和文字表達指令。而不同的程式語言有不同的語法和常用的領域。
所謂寫程式,就是用程式語言寫出明確的指示,對電腦下指令
例如:要求電腦顯示Hello World(以python為例),我們就會寫:
print("Hello World")
學習程式語言就像是學人類的語言一樣,你會需要背單字(但很少)、語法,最後將他們組合起來,表達自己的意思給電腦。
此外,程式語言間的差別主要在於語法,實際能表達的東西都差不多,就像是中英文都有「你、我、他」一樣,只是長得不同而已。所以,不用擔心學新的程式語言需要從頭來過,你只需要熟悉它的語法就好

準備


動機

在開始之前,你要先弄懂自己的動機,才能知道自己該學什麼
而學程式常見的幾個動機分別是:
  • 學校成績
  • 找工作
  • 興趣
  • 炫耀、放履歷
動機會決定自己要學習的領域、程式語言,以及自己的目標,而目標可以是完成某個作品,或是看完某個教學

程式語言

程式語言有非常多種。舉例而言,比較熱門的幾種分別有:Python, Java, C++, JavaScript等,每種都有自己擅長的領域。
常用的領域大致如下:
  • Python:機器學習、數據分析
  • C++:作業系統、程式語言
  • Java:Android應用程式
  • Swift:iOS應用程式
  • JavaScript:網頁
  • C#:遊戲開發
當然,還有很多程式語言我沒有講到,而且上述的列表僅供參考,做某件事不一定要用特定的語言,這只是我根據自己的認識整理的清單,所以歡迎讀者留言指正、補充。
我認為大致可以這樣根據動機決定要學什麼:
  • 如果是要準備大學電機、資工系課程:可以先學C++(大多會教C++)
  • 找工作可以看職缺上的要求,再自己決定
  • 如果只是為了興趣就找自己喜歡的
  • 如果要做東西放在履歷上,可以嘗試網頁開發或應用程式

開發環境

在知道了自己要學什麼以後,就該準備寫程式的工具,也就是IDE
IDE是讓寫程式更有效率的工具,就像是寫報告用的Word、算財務的Excel一樣。主要的功能有凸顯關鍵字、方便測試程式等。
其中,比較常見的IDE有Visual Studio Code, Visual Studio, Vim等,可以根據學習的程式語言與需求選擇適合的IDE。
所以,在尋找程式語言的教學前,可以先找看看安裝IDE的教學,加快寫程式的速度。

教學資源

自學意味著沒有老師的幫助,只能依靠教學資源,而常見的教學資源有:
  • 文章
  • 影片
  • 書本
我認為上述的資源都能有很好的效果,只不過挑選書本的時候要注意:
某些書並不適合當作入門教學
我曾經想透過讀《C++ Primer》加強C++,只不過我發現書中提到的東西對我來說不是太難懂就是用不到。後來我只讀了一半就放棄了。
仔細思考後,我得出一個結論:
某些書是寫給想深入研究的人看的,不是給想學程式的新手。
所以,如果要透過書本開始學習程式的話,我建議不要挑「經典」、「磚頭書」來讀,而是要選擇簡單的書,最好是寫給國中生、高中生程度的書。
至於要怎麼找到教學,答案很簡單:Google搜尋就找得到了。免費的教學到處都是,你只需要用對的關鍵字,就能找到你想要的教學

推薦教學

我主要看過的兩個教學:
  • Learn C++
    這個網站很詳細的介紹C++語言的語法、背後的運作原理,並比較版本之間的差異。內容非常豐富,可能會有點難讀,但是會有很多收穫。
  • The Odin Project
    由一群網頁工程師架設的網頁教學網站,有各種程度的教學,從最基本的HTML、CSS到後端的Node JS都有,適合各種程度的人學習網頁開發。

行動


安排進度

最理想的狀況是,每天花一些時間看教學、寫程式,而不是集中在周末然後連續學幾個小時。如果很久才寫一次,就很可能會忘記自己以前學過的東西。
此外,自己規畫學習的進度也很重要,最好訂下截止期限,避免自己在簡單的事情上拖太久。

從做中學

如果只是看過教學,而沒有實際打程式,是不會記得東西的
舉例來說:在C++要輸出Hello World
#include <iostream>
int main(){
  std::cout<<"Hello World"<<'\n';
  return 0;
}
如果讀者只是看過去,而沒有實際把這串字打出來過,那可能幾分鐘後就忘記了。所以親自把程式打出來很重要。
此外,在不知道該怎麼做的時候尋找答案,也是很有效的學習方法,自己提問題、Google搜尋找到的答案,會讓自己更有印象。
所以,如何提問也是學程式很重要的一個能力,所以我接下來會介紹如何提問。

提問題

假設你遇到了一個問題,像是:
num=1
if num=='1':
  print('equal')
else:
  print('not equal')
結果輸出了not equal,然後你不知道為什麼一不等於一。
這時候,你就會需要提問題,但是在問其他人之前,永遠要先Google搜尋,這是因為你遇到的問題,很可能其他人已經遇過了。尤其是很容易找到答案的問題,更應該先自己搜尋,以免浪費其他人時間。
如果你已經搜尋過了,卻還是找不到答案,那就可以向他人求助。問問題最好的格式如下:
我想做{目標},然後我試了{自己的方法}(附上程式碼)
結果{輸出和想的不一樣}(附上結果)
我查到了{相關資訊},但是沒有效果
請問我該怎麼做
提供所有有用的資訊可以幫助別人更快的解決你的問題。
在自己搜尋解答的時候,可以優先參考可信的網站,例如Stack Overflow、或是與問題相關的教學網站。

面對挫折

我學程式最挫折的時刻是C++寫不出Hello World的時候(原因是我把單引號和雙引號搞混,這件事現在看起來非常可笑),那時候我確實很懷疑自己。
不過我後來發現失敗其實沒那麼可怕,因為程式會一直有bug,遇到挫折是常態,一次就成功才是例外。
所以在遇到bug時,不需要太過擔心,也不用懷疑自己的能力,只要試著解決問題就好。每次遇到問題時,都是進步的機會

建議


下列是我自己的和其他人的一些建議:
寫程式,不用在意還有什麼沒學,而是要在意把需要的東西學起來就好。
不必有什麼知識焦慮症,覺得這個沒學、那個沒學。
— 機械系的同學
一開始的一些用語解釋可以講得更簡單明瞭一點會比較好理解,
不然一開始我看那些什麼printf、 include、 int main ()什麼的完全不明所以,
用更具體的方式去譬喻、表達應該會對新手友善一點。
— 土木系的同學
  • 我並不推薦去外面花錢上程式課,如果只是要學基本語法,我相信網路上都有足夠的資源。不過如果你比較偏好有人教學或是要學習比較困難的領域,我覺得還是可以考慮。
  • 我覺得並不是每個人都需要學程式,因為有些人的生活就是用不到,不過我覺得這件事還是值得嘗試。

如果有任何建議或是想分享自己學習的經歷,都歡迎在文章下方留言。
為什麼會看到廣告
收錄所有讀書心得,書的主題可能是行銷、生產力、心理學、科學,也可能是小說。讀書心得會大致介紹書中的概念,並提出我學到的東西,或是可以運用在生活中的方法。
留言0
查看全部
發表第一個留言支持創作者!
感恩日記,你可能聽過某些人談過,你也可能看過其他人寫,但你可能不知道具體該怎麼開始,以及它的功能是什麼。 我將在這篇文章介紹這個讓人更快樂的工具,並回答一些常見的問題。
感恩日記,你可能聽過某些人談過,你也可能看過其他人寫,但你可能不知道具體該怎麼開始,以及它的功能是什麼。 我將在這篇文章介紹這個讓人更快樂的工具,並回答一些常見的問題。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
有很多人會想要自學平面設計,不管是想要從事相關工作、興趣、協助自己工作等等,雖然網路資源越來越多,但對於剛想入門的人卻因為選擇太多反而不知道該如何入門。 這邊分享我自己詳細學習設計的經驗,希望可以提供給大家一些幫助。
Thumbnail
追求夢想的行程規劃與裝備準備非常重要。本文分享了從行程規劃到裝備準備的相關經驗和建議,包括挑選目的地、準備行李和必備小物等。
Thumbnail
在現今的自媒體世界,建立和擴大粉絲群對企業家和創作者而言極為重要。從確定目標群體、創建具有價值的內容、真誠地與粉絲建立連接,到充分利用社交媒體的推廣,每一步都是成功的基石。雖然從零開始的孌現可能會遭遇挑戰,但正確的策略和持續的努力將帶領你走向成功。本文分享了如何從無到有地在自媒體上孌現的心得與策略。
Thumbnail
更新日期:2021.12.13 作者:FAHAHA|翁順法 如果你是簡報初學者,不知道怎麼開始學起,這篇文章非常適合你先讀過,會幫助你掌握方向,並且省略很多摸索的時間。 我很喜歡一句話:學習(動詞)學習(名詞),再學習(動詞)。 先花心力學習如何學習,才是最有效的學習。
Thumbnail
隨著時代的發展,理財投資已經逐漸成為了大眾生活當中不可或缺的一部分,尤其近兩年的通脹水準不斷飆升,要想保證生活的品質不下降,就得學會正確的理財觀念。如何從零開始學理財?對於新手來說,首先需要做的就是先搞懂理財的宗旨和目標,因為這會影響到我們投資產品的選擇,這是理財之路走向成功的必要前提。
Thumbnail
常常聽到有人問起如果要從零開始學習AI相關技術的話,會不會很難?中間會不會真的要付出很多的代價? 為了提供也是像我一樣原本文科或商科背景的朋友,之後想要轉換跑道去學AI機器學習的建議,我想要整理並分享一下個人覺得非常有用的學習網站還有學習方法。
Thumbnail
「我不會畫畫」、「我好羨慕會畫畫的人」。這些話我聽過無數次,對多數人來說,網路上那些真實的畫作、充滿個人風格的插圖總是離自己很遠,但是相信我,沒有人是天生就不會畫畫的。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
AI 相關的內容每天都非常多,有聽過很多人因此感覺到焦慮,怕錯過了最新資訊就會趕不上,這篇內容會跟大家詳細的分享我自己的學習方法和經驗,並且會在最後分享一些我的學習資訊來源。
Thumbnail
文章講述了作者如何利用c++寫程式做貼圖,包括製作貼圖的構思過程、實際步驟和上傳貼圖的過程。這個故事不僅分享了作者的創作心路歷程,也提供了實際的操作步驟,讓讀者對於用c++做貼圖有更深入的瞭解。
Thumbnail
有很多人會想要自學平面設計,不管是想要從事相關工作、興趣、協助自己工作等等,雖然網路資源越來越多,但對於剛想入門的人卻因為選擇太多反而不知道該如何入門。 這邊分享我自己詳細學習設計的經驗,希望可以提供給大家一些幫助。
Thumbnail
追求夢想的行程規劃與裝備準備非常重要。本文分享了從行程規劃到裝備準備的相關經驗和建議,包括挑選目的地、準備行李和必備小物等。
Thumbnail
在現今的自媒體世界,建立和擴大粉絲群對企業家和創作者而言極為重要。從確定目標群體、創建具有價值的內容、真誠地與粉絲建立連接,到充分利用社交媒體的推廣,每一步都是成功的基石。雖然從零開始的孌現可能會遭遇挑戰,但正確的策略和持續的努力將帶領你走向成功。本文分享了如何從無到有地在自媒體上孌現的心得與策略。
Thumbnail
更新日期:2021.12.13 作者:FAHAHA|翁順法 如果你是簡報初學者,不知道怎麼開始學起,這篇文章非常適合你先讀過,會幫助你掌握方向,並且省略很多摸索的時間。 我很喜歡一句話:學習(動詞)學習(名詞),再學習(動詞)。 先花心力學習如何學習,才是最有效的學習。
Thumbnail
隨著時代的發展,理財投資已經逐漸成為了大眾生活當中不可或缺的一部分,尤其近兩年的通脹水準不斷飆升,要想保證生活的品質不下降,就得學會正確的理財觀念。如何從零開始學理財?對於新手來說,首先需要做的就是先搞懂理財的宗旨和目標,因為這會影響到我們投資產品的選擇,這是理財之路走向成功的必要前提。
Thumbnail
常常聽到有人問起如果要從零開始學習AI相關技術的話,會不會很難?中間會不會真的要付出很多的代價? 為了提供也是像我一樣原本文科或商科背景的朋友,之後想要轉換跑道去學AI機器學習的建議,我想要整理並分享一下個人覺得非常有用的學習網站還有學習方法。
Thumbnail
「我不會畫畫」、「我好羨慕會畫畫的人」。這些話我聽過無數次,對多數人來說,網路上那些真實的畫作、充滿個人風格的插圖總是離自己很遠,但是相信我,沒有人是天生就不會畫畫的。