一個快速學會新的程式語言的方法

更新於 發佈於 閱讀時間約 4 分鐘

A quick way to learn a new programming language


如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學? 採用這些方式的不便之處也很明顯,買書緩不濟急、外面課程花了錢還不一定對你的任務產生幫助,找同事來教要需要支付一筆人情債… 那有沒有更簡單有效方式可以讓我們快速幫助自己掌握一套新的程式語言的基本特性來趕快發揮戰力呢? 答案是有的,就是用 Sample Code 來學習。


前陣子我收到了要驗證 C API 功能的任務,要完成這個任務前提是會寫 C 語言,當時我正在苦惱要不要去買 C 語言程式書回來看,同時也一邊翻看著產品使用手冊,翻著翻著就發現裡面有一段教人如何這些使用 API 的 Sample Code,這次任務時間有限我決定暫時先放下書本改用 Sample Code 的方式學習 C 語言。我的目標很簡單就是先不管 Sample Code 裡面寫甚麼,先讓程式碼跑起來後再根據需求來應用修改程式碼就好。


好的輸入才有好的輸出

一個好的 Sample Code 不是書上教學用的那種,也不是在網路上隨便找一段複製貼上就可以,一定是針對你想解決的問題設計且能正常執行的一個「樣板」:

// main 是 C 語言的特殊函數是程式的進入點,這點學校都有教
int main()
{
/*
這裡用到一個 read_tag 函數,看起來是要去讀取一個叫做 "A" 的 tag?
tag 的型態應該是自定義的 tag_info 結構。暫時不知道細節沒關係
*/
tag_info *tag = read_tag("A");
/*
接下來這句話的寫法有點嚇人,大概知道是用 get_value 來取得 tag 裡面的某個值吧。
印象中沒看過 uint16_t,反正看起就像一個整數就先把它當作某種整數吧。
PS: 如果 tag_info 裡有其他的型態的資料的話,應該可以替換 uint16_t 來取值
*/
unit16_t data = *((unit16_t *) get_value(tag));
unit16_t cmd = 0;
/*
哦!! 原來 read_tag, write_tag 是一組的!!
稍微注意一下 write_tag 的用法就好,讀寫的資料型態應該要一樣
*/
write_tag("B", &cmd, sizeof(unit16_t));
/*
記得釋放用完的記憶體,才不會 memory leak.
*/
free(tag);
/*
main 宣告要求回傳一個 int, 回傳 0 通常代表程式順利結束
*/
return 0;
}

從上面的「Sample Code 樣板」你一定也發現了,為什麼說一段寫的清楚、功能正確的 Sample Code 很重要,因為它除了能節省接下來解任務時間,還能讓你站在一個 overview 的點來學習這個程式語言的基本樣貌。

假設你是只學過 python 的人,最直觀的語法差異就是 C 的程式碼區塊必須用大括號 {} 包起來,每一句話都要分號 ; 做結尾,要使用變數前就必須宣告正確型態,存取特殊的結構變數就會用到指標技巧等等,這些關鍵的語法差異之處就是我們要立即畫線特別關注的地方。另外像是釋放掉不用的變數的記憶體這種眉角,主程式也要回傳值的特性也可以順便學習到。


造樣造句,省時省力

有這個「健康」的 Sample Code 做為基礎,就算我還沒完全搞懂裡面語法的細節,我也很快就改出了符合這次任務需要的程式碼了。這種以 Sample Code 來快速學習並且馬上切入實作來完成任務的方式,滿足投資 20% 力氣達成 80% 的效果真的相當划算。如果你剛好對某一個程式語言有基本的觀念,那麼用 Sample Code 來快速學習一門你不熟悉的程式語言就是非常適合的一種方式。

avatar-img
15會員
61內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
整合測試的時候突然遇到一個突然無法登入產品網站的問題,把程式模組單獨拉出來測試又正常,觀察測試報告後發現出現發生登入異常的時間點並不固定,而且只要發生就會連續發生一段時間,程式被中斷掉。後來確認問題在...
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
整合測試的時候突然遇到一個突然無法登入產品網站的問題,把程式模組單獨拉出來測試又正常,觀察測試報告後發現出現發生登入異常的時間點並不固定,而且只要發生就會連續發生一段時間,程式被中斷掉。後來確認問題在...
當這產品的這個 API 被呼叫,再從回傳內容的某個欄位欄位來判斷,只要“這個欄位”顯示 false 就代表不支援」,雖然這樣的設計也能滿足功能需求…
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級..
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
這篇適合有基礎外文能力的讀者,學完國中英文或初級日文就可適用。有基本單字量和基礎文法概念,學外語不求人,真的有可能!但你要學會內行人在用的方法,還要挑一個你會愛死的東西!
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
在我剛開始寫程式的時候,深切地感受到要學的東西實在太多了,尤其在課堂上學的東西跟在公司要打造產品的技能非常的不一樣,有非常多需要自學的地方。 在我剛開始實習的時候,除了看書、看文章、用線上網站練習新語言的語法,我覺得幫助我最多的就是直接練習寫一個 Side project 了。
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
先學習 HTML, CSS, JavaScript 基礎觀念, 再透過實作專案,慢慢熟悉不同的語法使用方式。
Thumbnail
理解一個全新的操作環境有時候可能是一個挑戰,尤其對於那些剛開始接觸VS Code的開發者來說,即便具備一定的英文閱讀能力,可能也會對這個陌生的操作環境感到徬徨和不安。不過,沒有必要擔心,我們接下來就來一起用短短的一分鐘時間,將VS Code轉換成最熟悉的中文環境吧! 安裝繁體中文語言包 由於VS
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
這篇適合有基礎外文能力的讀者,學完國中英文或初級日文就可適用。有基本單字量和基礎文法概念,學外語不求人,真的有可能!但你要學會內行人在用的方法,還要挑一個你會愛死的東西!
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
在我剛開始寫程式的時候,深切地感受到要學的東西實在太多了,尤其在課堂上學的東西跟在公司要打造產品的技能非常的不一樣,有非常多需要自學的地方。 在我剛開始實習的時候,除了看書、看文章、用線上網站練習新語言的語法,我覺得幫助我最多的就是直接練習寫一個 Side project 了。
Thumbnail
隨著科技發展迅速,軟體職缺需求大增長,有些朋友對IT產業有興趣並想成為一位軟體工程師,但不知道從哪裡下手,透過傳統學校、培訓班或自學等不同方法,有多種學習路徑可以選擇。此外,還提供了一些額外資源教學連結,方便讀者進一步提升相關技能。