寫代碼沒幾天,遇到一堆報錯,我該怎麼辦

大家好,在之前我們已經詳細講過了在剛開始學習Python面對衆多IDE該如何選擇,今天我們接着聊聊在新手期最頭疼的問題,遇到代碼報錯該如何解決,希望能幫到正在學習Python的你。

 

正確認識報錯

 

首先你要明白,在新手期不論你是配置環境還是調試代碼出現的錯誤,不論你是直接複製粘貼執行別人代碼報錯還是按照別人的教程一步一步操作突然報錯,都是很常見的情況,而這些問題:

  • 一定有很多人碰到過

  • 一定有很多人在網絡上提問

  • 一定有人分享解決方案

所以在遇到錯誤時不要不知所措,不要立刻打開聊天框諮詢別人,而是需要冷靜下來相信你的問題一定能通過簡單的搜索找到答案,接下來我們就聊聊如何搜索。

 

正確識別並搜索你的問題

 

現在,我們嘗試使用搜索引擎來搜索自己的報錯,其實這並不簡單。我們需要從一堆報錯提示中找到關鍵的部分去搜索,我們既需要自己搜索的代碼段不長,但是又要保留關鍵的報錯提示。

 

所以第一步就需要正確識別你的問題,在一般情況下在報錯的最後一段都會給出具體的提示,我們只需要直接百度這一行即可,對於新手來說大多數是SyntaxError、KeyError、AttributeError、ModuleNotFound等常見錯誤,而這些搜索得到的前三個結果基本就能搞定!

 

但是有時複製這行提示直接搜索並找不到有效的方案,這大概率是由於對應代碼中包含了一些你特有的信息,所以這就需要你從一堆提示中識別這大概是什麼類型的錯,有哪些單詞是你所特有的需要排除之後重新檢索,而這其實是一項很重要的技能,只有在不斷的搜索中才能磨練出來。

 

也有時你怎麼搜索都找不到有效的解決辦法,可能就需要將你的具體問題/報錯抽象出來,搜索你想實現的功能或者與這段報錯類似的提示,學會從差不多的問題中找到自己解決問題辦法也是一門技能。

 

最後要說的是除了搜索引擎搜索,我們還需要學會閱讀官方文檔,很多問題你可以從開發者編寫的文檔找到解決方案,而這些就需要你學會使用GitHub,並且一些疑難雜症也可以在issue中參考,其實通常情況在issue中提問得到的回覆還是比較快,並且可以直接與開發者交流。

 

所以小白們在獨立解決問題時可以這麼做

  • 相信自己的問題一定能在網上找到答案

  • 從一堆報錯中找到恰當的檢索關鍵詞

  • 百度/CSDN/知乎/博客園等網站搜索

  • Google/Stack Overflow等網站搜索

  • 優化/調整關鍵詞尋找類似問題

  • GitHub/開發者社區嘗試尋找答案

 

插一句,其實獨立解決報錯是一項非常重要的技能,並且在自己獨立嘗試解決的過程中會學到很多遠超問題本身的知識,這會讓你的編程能力飛速提升!你的每一次搜索都能讓下一次程序出現問題時更快的找到答案!

 

勇於嘗試

 

在我收到的很多問題中,有很大一部分問題是類似於:

  • 這個變量是什麼意思

  • 這個函數有什麼作用

  • 這個框框能不能選中

  • 我這樣做行不行

  • ······

這樣的問題會讓人很無語,變量什麼意思函數什麼作用你執行一遍就能看明白,如果看不明白就再執行一遍檢查結果觀察變化。這個框框要不要選中,你就選中點確定看看會發生什麼,如果不是你想要的結果就回去反選,如果操作不可逆的話就備份一下再嘗試,如果只能嘗試一次大不了就是重新安裝。


對於我這樣做行不行的問題,一般我都會建議你試一下,不要問別人行不行,行不行copy一份數據你試一試就知道行不行。如果是配置環境你就按照你的思路或者網上找到的答案去試一下,最壞的結果就是把環境搞崩了,大不了重頭來一遍,而這之前的操作你已經輕車熟路了。

 

你不可能遇到問題永遠都會有人迅速給你拋出一個正確答案,所以我十分鼓勵在遇到問題時有自己的想法並且大膽的按照自己的想法去嘗試,在嘗試的過程中很大概率會接着碰到問題,你會接着解決,編程能力就是在不斷的自我嘗試中,不斷的折騰中慢慢提升,錯誤的方法試多了之後,再次遇到同類型的錯誤你就能迅速找到一條相對正確的道路。

 

如何提問

 

好了,我們終於來到這裏,在你遇到一些問題自己嘗試去解決了很久都沒有搞定之後,肯定要拿着問題/錯誤代碼去諮詢別人。但是提問也不是隨便發個錯誤代碼就OK,一定要讓你的提問非常有效率,所以在提問時一定要注意避免:

  • 不搜索/不嘗試解決就提問

  • 不提供完整的報錯代碼

  • 不提供與報錯代碼有關的代碼片段

  • 直接發個報錯並不進行任何解釋

  • ······

以上只是我不喜歡的提問方式,當然包括上一節中提到的幾種問題還有其他的比如上來就問我的代碼報錯了怎麼辦/代碼等,這些都是效率非常低的提問方式,你問我一個問題我再問你具體哪裏出問題/你想實現什麼之類的好幾波交流之後才能大致弄明白你想問的。

 

所以一定在提問的時候:

  • 說清楚自己想實現什麼或者這段代碼在做什麼

  • 完整的報錯代碼與對應代碼段

  • 確保百度報錯代碼的第一頁沒可用教程

  • 最好能說一下自己已經做了哪些嘗試

一個優秀的提問至少要滿足上面的兩條,爭取一次性讓別人定位到你的問題所在之處,我不討厭花太多文字或者圖片描述你的問題,反而對很多直接發個報錯截圖就問怎麼辦的問題很反感。不要浪費彼此的時間就是對別人最大的尊重。

 

所以除非是非常緊急的需要立刻處理bug的情況,其他不做任何思考、自己不做任何嘗試、不提供相關代碼的提問都是耍流氓!當然如果百度報錯提示得到的前三個結果就能解決問題的提問更是耍流氓

 

 

以上就是我想對很多新手朋友們說的,我是以Python、以報錯來示例,事實上對於其他語言、對於編程中除了報錯之外的任何疑問都可以參考。簡單來說就是請不要不做思考不要做伸手黨、不要將別人當成搜索引擎、不要提出低效率的問題。可能對於新手村的你獨立解決疑問有點困難,但新手絕不能成爲你隨意提問的理由,至少看完本文能夠有所感悟!並且當你踏入寫代碼的大門時這就是走向高手的一項必備技能,祝各位都能在報錯的戰場上磨練出一套屬於自己的方法!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章