iT邦幫忙

2023 iThome 鐵人賽

DAY 9
0
Software Development

【30歲學Coding轉職心法】從0到1的C#軟體工程師之路系列 第 9

【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-9.高效學習方法-步驟拆解

  • 分享至 

  • xImage
  •  

如何有效學習一門程式語言?我的理解是程式語言也是語言,就像學英文一樣。學英文的目的是可以和外國人溝通交流,學程式語言的目的是可以和電腦溝通,請它執行我們想要的功能。所以我把學習程式語言的過程分成幾個步驟:

●記憶語法、關鍵字

就像學英文一樣,一開始一定先從單字、文法開始學,然後可以使用簡短的句型表達意思,例如以下:

(主詞 + Be動詞)
I am / You are / He is /This is /There are....

(單字)
pen / book / happy

(句型)
This is a pen.
There are books on the table.
I am happy.

同理,學程式也是從關鍵字、基本語法開始,然後寫成一行行的程式碼,例如:

(關鍵字)
int //整數型別
string //字串型別
decimal //小數型別
bool //布林型別
if //條件判斷
for //迴圈
return //回傳

(基本語法)
int num = 1; //宣告變數num為整數型別,並賦值為1
string msg = "Hello!";//宣告變數msg為字串型別,並賦值為Hello!
if(num == 1) //當num的值為1,將msg賦值為Hello!World!
{
    msg = "Hello!World!";
}

所以剛開始學程式的人,必須記憶基本的語法並瞭解意義,才有辦法寫出一行一行的程式碼,聽起來很合理也很像廢話對吧!但對初學者來說,記得語法如何使用就是個關卡。這裡我的建議是不要強記Code,而是要著重在瞭解每行語法的用途,如果忘記該怎麼寫,再查就好了。

●拆解問題

對於基礎語法有認識後,就可以來處理簡單的問題需求,範例題目如下:
百貨公司周年慶活動,每消費滿5000元即送500折價券,最高上限可送2000折價券,試寫一程式可輸入金額後,顯示送的折價券張數。

這是個簡單的題目,要說明的是如何拆解問題寫出功能,這邊用ConsoleApp專案示範。當開啟一個新的專案後畫面如下:
https://ithelp.ithome.com.tw/upload/images/20230909/20160592sCL54D6jPo.png

根據題目說明,我們預期的功能是,跳出一個視窗提示輸入消費金額,輸入後按Enter會顯示送幾張折價券。所以希望執行程式後的畫面如下:
https://ithelp.ithome.com.tw/upload/images/20230909/20160592Xb3ACv5gL8.png

接著將執行步驟拆解:

1.顯示"請輸入消費金額:"
2.將輸入的數字儲存在變數以供使用
3.計算折價券數量
4.根據規則,判斷折價券是否超過最高上限
5.顯示折價券數量

上述的步驟可能是邊寫Code邊思考,不見得是想完每一步才開始寫,但重點是要將需求拆解到能寫成程式碼的地步。

●拼湊程式碼

拆解完就開始要將步驟內容轉化成Code,範例如下:

        static void Main(string[] args)
        {
            //1.顯示"請輸入消費金額:"
            Console.WriteLine("請輸入消費金額: ");

            //2.將輸入的數字儲存在變數以供使用
            int money = int.Parse(Console.ReadLine());

            //3.計算折價券數量
            int count = money / 5000;

            //4.根據規則,判斷折價券是否超過最高上限 (2000/500 = 4)
            if (count > 4)
            {
                count = 4;
            }

            //5.顯示折價券數量
            Console.WriteLine($"可送折價券張數: {count}");

            //避免程式執行完自動結束,新增一行等待使用者讀取
            Console.ReadLine();
        }

程式執行畫面如下:
https://ithelp.ithome.com.tw/upload/images/20230909/201605923owK8JnhLG.png

初學者看完上面Code可能會感到頭痛,例如不懂int.Parse()用法,或是if邏輯如何寫,但這就是初學時該去查詢理解的部分。
理解用法之後,可以嘗試不看Code僅依步驟說明,看是否能自己寫出程式碼,可以的話就算大致上掌握了。初學階段可以多練習這樣的題目,訓練語法熟練度與拆解問題能力。

●Code優化與整理

當能夠依練習題目給的條件完成需求後,再來就是Code優化與整理。例如解決輸入金額如果不是數字會報錯的bug,或是將Code包裝成方法(method)使用,還是說將宣告變數的Code整理到最上方區域等等。

不過我認為初學階段可以先著重在基本語法和執行的邏輯正確,等對語法熟悉以後,再來要求Code撰寫的品質,例如像是Clean Code的觀念。


上一篇
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-8.基礎易學精通難
下一篇
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-10.如何問出好問題?
系列文
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言