之前跟大家分享過【設定目標】和【目標分解】的訣竅,設定好你的目標,做好目標分解,接下來就是學習與實作了。在過程中,肯定會遇到各種問題需要debug,這應該是剛入門自學程式的人最痛苦的部分了。可能你看到bug要google可不知道要下甚麼關鍵字,也可能搜出一堆文章看得頭昏腦脹,看完卻不知道是否能幫你解決bug
所以想跟大家分享我在自學製作封鎖電商黑名單chrome插件賺取被動收入過程中,是怎麼面對這種狀況的,希望對剛入門自學程式的朋友有幫助
像我自己一開始自學的時候有個毛病,看到bug只想用最少的時間解決,總是很沒耐心地隨便瀏覽網上的教學急著去試錯,結果越試越錯,差點就放棄了。幸好,我反省了一下,覺得這樣的心態根本不行,因為在初學階段甚麼都不熟的狀況下,很難馬上找到正解。反而應該學會耐心閱讀資料,幫助自己熟悉語法和了解問題發生的原因,之後遇到更難的問題會更清楚解決的方向也會更有效率找出關鍵,這樣做我發現在debug過程中學到的東西會比快速解掉bug學到的還要多很多。
特斯拉執行長馬斯克曾說,「很多時候,問題比答案難找。如果能問對問題,答案就呼之欲出了。」,那具體要怎麼做呢?可能大家都聽說過【5W1H法則】,但只知道字面意思,實務上也不知道怎麼用,我以之前自己在製作封鎖電商黑名單chrome插件時的狀況當作例子來說明
假設在執行封鎖過程中,出現了錯誤
。什麼(What)
發生了什麼?console沒有出現error,但實際上沒有封鎖資料庫裡的名單
。何時(When)
甚麼時候出錯的?在按下封鎖之後到畫面顯示出完成封鎖動作之間
。哪裡(Where)
在哪段程式碼?從When可判斷,在這個時間段裡,只有讀取名單和執行封鎖兩大功能,所以可能是讀取資料庫名單的部分出錯,也可能是成功讀取名單之後開始執行封鎖的部分出錯
。誰(Who)
誰使用的?我的電商賣家帳號
。為何(Why)
從前面得到的線索盡量列出可能原因?是讀取資料庫名單沒讀到,或是讀到之後被覆蓋,還是封鎖功能迴圈邏輯有問題導致執行時跳出?
。如何(How)
如何確認可能原因?利用log去確認名單是否在執行封鎖前都正常,還有檢視迴圈邏輯
經過多次這樣的練習,之後再遇到bug,其實很自然就會知道怎麼去揪出真因了
【課程籌畫協助】
我正在籌備【如何自學程式語言】的課程,想訪問幾個人來了解個人需求,做市場調查。
請放心,這不是銷售,畢竟課程產品還沒有做出來,但如果幾個月後你對課程有興趣的話,我會給予【早鳥優惠】作為協助的回饋。
請點連結選擇你方便的時間我們線上聊聊,或是加入臉書社團先私訊我,讓我知道你現在自學面對的困難,現在諮詢可以得到一份【自學程式非懂不可】簡報喔!