https://blog.csdn.net/hhx0626/article/details/83182023
https://blog.csdn.net/hhx0626/article/details/83506712
我没有分析问题的能力了
我学习编程以来,遇到很多bug,也解决很多bug。我会把这些bug记录下来,下次再遇到,我会有备无患。但久而久之,我发现,我变蠢了,我没有分析问题的能力,我遇到问题,直接百度,这让我剩下思考的时间,因为问题基本都出现过,也被解决过。但是,所有我遇到的问题,不会进入我的脑子,我不会思考,这个问题是怎么出现(复现)的,而是为了解决问题而百度答案,我觉得,如果一直这样,我会永远获得不了经验,我只会成为代码的搬运工,无法成为高级程序员。
我该如何调整遇到问题后的心态
首先,我们要确认产生问题可能的原因,然后把这些原因根据经验排列优先级,然后再去逐一解决
那如何确认问题产生的原因:首先确认一条线,问题会经过哪些环节,每个环节需要注意的地方是什么,一步步添加有可能出现的范围,然后再去根据优先级解决,看日志,亲自debug,最后不行就百度,问老大。
我没有经验,如何排序:没有经验,开始只能全部都试试,解决一个问题,这个问题解决方案就是经验,下次就优先级给他
当你解决完一个问题,你还要想,如何解决这一类问题,那我们需要一个方法论,比如下面这个:
遇到一个问题B,学习知识B,通过百度,博客,经验相传等方式,解决问题B。然后,会去找到知识B的官方文档,更多的学习,获得类B知识,以及B的细化内容
从解决问题的方式到学习新知识的方法
从我解决问题的思路来看, 我是更倾向于知道这个问题出现的总体原因到底有什么的,所以,我在学东西的时候,会更倾向于先掌握宏观体系,再优化细节内容。
具体的例子: 如果我要学习redis,我会怎么学?
前提是:我为什么要学redis,是我自己单纯好奇,就是想了解一下,还是我遇到了什么问题,需要深入学习redis去解决? ——定义好这个问题, 会更容易的让我自己在钻牛角尖的时候,钻出来!
然后,当我决定,我就是要学redis的时候,我会怎么去学习呢?
- redis从哪里来,要到哪里去? redis的历史过程是什么,它是怎么诞生的,它的发展历程是什么......
- redis要找谁? redis究竟是要解决什么问题
- redis携带了什么?redis到底是什么,它的定义,功能特性,优缺点等等
- redis的最佳实践?别人都是怎么用redis的
- redis的可替代方案是什么?如果我不用redis,我还可以用什么?
- 细化分支4,我怎么去用redis,细化到某一行具体编码,细化到redis的源码实现,去具体的解决一个问题——这一点也很重要啊,要是漏了这一点,就特么成PPT程序员了,会死的比较难看!
- 总结分支6,常见的bug有什么,注意点有什么等等
将redis塞到我自己的知识节点上
最后,我希望,自己能养成一套解决问题的方法论,逐步累积经验,走得更远。