iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
Software Development

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

【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-10.如何問出好問題?

  • 分享至 

  • xImage
  •  

寫Code的過程難免會遇到錯誤、寫不出來、不知道問題在哪裡的情形,但該如何提問才能得到好的解決答案呢?好的提問可以分成以下步驟:

  • 釐清自己卡在哪裡
  • 將狀況描述清楚
  • 得到關鍵字後查詢相關資料
  • 嘗試自己排除問題

釐清自己卡在哪裡

簡單來說就是「自己先想過再提問」。
前一篇有講到「拆解問題步驟」的例子,可以把問題拆分如下步驟:

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

假如已經可以打出Console.WriteLine("請輸入消費金額: ");,但不知道如何將讀取輸入內容轉成int變數,那這就是卡關的地方,也是提問的關鍵字。
但如果是拆解問題步驟就有困難,那麼「如何拆解步驟」就是提問的所在。不過這種情況建議還是先用腦袋再想想,真的想不出來再發問會比較好。

描述狀況

比較下面兩種提問方式:

  • 我的程式執行的時候出現錯誤了,怎麼辦?
  • 我在程式輸入完數字出現System.FormatException: '輸入字串格式不正確。的錯誤,程式碼內容如下:
            ...
            //2.將輸入的數字儲存在變數以供使用
            int money = int.Parse(Console.ReadLine());

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

https://ithelp.ithome.com.tw/upload/images/20230910/201605921TJd7DmsNe.png

很明顯地可以看出,後者的提問有明確描述錯誤狀況,包含錯誤訊息、發生時機、程式碼、截圖等等。而第一種提問什麼資訊都沒有,讓人無從判斷錯誤可能發生原因,大概也得不到理想的解答。

用關鍵字查詢解法

初學者要能學好程式,訓練查資料的能力很重要。
學習寫程式很多時候是靠自我學習,現在比起10年前真的太好查資料了。靠著智慧型手機的崛起,加上Google、Youtube、FB社團、Line社群以及最近火紅的ChatGPT,這些資源在我學習與工作階段都幫上許多忙,如果我是大學生時期就開始學寫Code可能會失敗吧~因為沒有太多地方可以問問題,而且還只能用筆電或是去學校的計算機中心用電腦。

嘗試自己排除問題

除了Live上課可以請老師看自己電腦畫面以外,其他時間寫Code發生問題一定得靠自己修正解決,培養排除問題的能力才能快速進步。
當透過關鍵字搜尋找到可能的解法時,接下來就是不斷地Try & Error,直到解決問題為止。

另外寫Code用的開發工具通常會有偵錯功能,語法一寫錯就會提示錯誤訊息,或是透過下中斷點逐步執行程式碼,就能發現執行結果不如預期的地方。對於初學者來說,一些開發工具好用的功能後面再來分享吧!

下篇先繼續講本人學習與求職的經歷好了~GoodBye!


上一篇
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-9.高效學習方法-步驟拆解
下一篇
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路-11.前端 VS 後端選擇
系列文
【30歲學Coding轉職心法】從0到1的C#軟體工程師之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
Eazy
iT邦新手 4 級 ‧ 2023-09-10 15:02:21

問問題很重要,但是問對問題更重要。這真的是一門學問!

尤其像您提到的關鍵字要下對,還有耐心一步一步來。

真的要先釐清問題,再去拆解問題。

有時候在這反覆的過程不知不覺就天亮了呢/images/emoticon/emoticon01.gif

確實!遇到問題不斷的試錯有時很花時間,但找到解答後也代表自己多具備解決一個問題的能力,就有動力繼續寫Code了/images/emoticon/emoticon08.gif

我要留言

立即登入留言