解決問題bug的思路:解決一個問題—>一類問題—>未知問題—>發現問題

https://blog.csdn.net/hhx0626/article/details/83182023程序員

https://blog.csdn.net/hhx0626/article/details/83506712redis

我沒有分析問題的能力了

我學習編程以來,遇到不少bug,也解決不少bug。我會把這些bug記錄下來,下次再遇到,我會有備無患。但長此以往,我發現,我變蠢了,我沒有分析問題的能力,我遇到問題,直接百度,這讓我剩下思考的時間,由於問題基本都出現過,也被解決過。可是,全部我遇到的問題,不會進入個人腦子,我不會思考,這個問題是怎麼出現(復現)的,而是爲了解決問題而百度答案,我以爲,若是一直這樣,我會永遠得到不了經驗,我只會成爲代碼的搬運工,沒法成爲高級程序員。編程

我該如何調整遇到問題後的心態

首先,咱們要確認產生問題可能的緣由,而後把這些緣由根據經驗排列優先級,而後再去逐一解決學習

那如何確認問題產生的緣由:首先確認一條線,問題會通過哪些環節,每一個環節須要注意的地方是什麼,一步步添加有可能出現的範圍,而後再去根據優先級解決,看日誌,親自debug,最後不行就百度,問老大。優化

我沒有經驗,如何排序:沒有經驗,開始只能所有都試試,解決一個問題,這個問題解決方案就是經驗,下次就優先級給他編碼

當你解決完一個問題,你還要想,如何解決這一類問題,那咱們須要一個方法論,好比下面這個:spa

遇到一個問題B,學習知識B,經過百度,博客,經驗相傳等方式,解決問題B。而後,會去找到知識B的官方文檔,更多的學習,得到類B知識,以及B的細化內容.net

從解決問題的方式到學習新知識的方法

從我解決問題的思路來看, 我是更傾向於知道這個問題出現的整體緣由到底有什麼的,因此,我在學東西的時候,會更傾向於先掌握宏觀體系,再優化細節內容。debug

具體的例子: 若是我要學習redis,我會怎麼學?日誌

前提是:我爲何要學redis,是我本身單純好奇,就是想了解一下,仍是我遇到了什麼問題,須要深刻學習redis去解決?     ——定義好這個問題, 會更容易的讓我本身在鑽牛角尖的時候,鑽出來!

而後,當我決定,我就是要學redis的時候,我會怎麼去學習呢?

  1. redis從哪裏來,要到哪裏去? redis的歷史過程是什麼,它是怎麼誕生的,它的發展歷程是什麼......
  2. redis要找誰? redis到底是要解決什麼問題
  3. redis攜帶了什麼?redis究竟是什麼,它的定義,功能特性,優缺點等等
  4. redis的最佳實踐?別人都是怎麼用redis的
  5. redis的可替代方案是什麼?若是我不用redis,我還能夠用什麼?
  6. 細化分支4,我怎麼去用redis,細化到某一行具體編碼,細化到redis的源碼實現,去具體的解決一個問題——這一點也很重要啊,要是漏了這一點,就特麼成PPT程序員了,會死的比較難看!
  7. 總結分支6,常見的bug有什麼,注意點有什麼等等
    將redis塞到我本身的知識節點上

最後,我但願,本身能養成一套解決問題的方法論,逐步累積經驗,走得更遠。