寫Code的過程難免會遇到錯誤、寫不出來、不知道問題在哪裡的情形,但該如何提問才能得到好的解決答案呢?好的提問可以分成以下步驟:
簡單來說就是「自己先想過再提問」。
前一篇有講到「拆解問題步驟」的例子,可以把問題拆分如下步驟:
1.顯示"請輸入消費金額:"
2.將輸入的數字儲存在變數以供使用
3.計算折價券數量
4.根據規則,判斷折價券是否超過最高上限
5.顯示折價券數量
假如已經可以打出Console.WriteLine("請輸入消費金額: ");
,但不知道如何將讀取輸入內容轉成int
變數,那這就是卡關的地方,也是提問的關鍵字。
但如果是拆解問題步驟就有困難,那麼「如何拆解步驟」就是提問的所在。不過這種情況建議還是先用腦袋再想想,真的想不出來再發問會比較好。
比較下面兩種提問方式:
System.FormatException: '輸入字串格式不正確。
的錯誤,程式碼內容如下: ...
//2.將輸入的數字儲存在變數以供使用
int money = int.Parse(Console.ReadLine());
//3.計算折價券數量
int count = money / 5000;
...
很明顯地可以看出,後者的提問有明確描述錯誤狀況,包含錯誤訊息、發生時機、程式碼、截圖等等。而第一種提問什麼資訊都沒有,讓人無從判斷錯誤可能發生原因,大概也得不到理想的解答。
初學者要能學好程式,訓練查資料的能力很重要。
學習寫程式很多時候是靠自我學習,現在比起10年前真的太好查資料了。靠著智慧型手機的崛起,加上Google、Youtube、FB社團、Line社群以及最近火紅的ChatGPT,這些資源在我學習與工作階段都幫上許多忙,如果我是大學生時期就開始學寫Code可能會失敗吧~因為沒有太多地方可以問問題,而且還只能用筆電或是去學校的計算機中心用電腦。
除了Live上課可以請老師看自己電腦畫面以外,其他時間寫Code發生問題一定得靠自己修正解決,培養排除問題的能力才能快速進步。
當透過關鍵字搜尋找到可能的解法時,接下來就是不斷地Try & Error,直到解決問題為止。
另外寫Code用的開發工具通常會有偵錯功能,語法一寫錯就會提示錯誤訊息,或是透過下中斷點逐步執行程式碼,就能發現執行結果不如預期的地方。對於初學者來說,一些開發工具好用的功能後面再來分享吧!
下篇先繼續講本人學習與求職的經歷好了~GoodBye!
問問題很重要,但是問對問題更重要。這真的是一門學問!
尤其像您提到的關鍵字要下對,還有耐心一步一步來。
真的要先釐清問題,再去拆解問題。
有時候在這反覆的過程不知不覺就天亮了呢
確實!遇到問題不斷的試錯有時很花時間,但找到解答後也代表自己多具備解決一個問題的能力,就有動力繼續寫Code了