嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > 你解决bug的能力,暴露了你的水平

你解决bug的能力,暴露了你的水平

点击上方“嵌入式Linux充电站”,选择“置顶/星标公众号”

福利干货,第一时间送达


为什么会有很多人每天加班,还是解决不了bug?

有人一天解决,有人一周解决,有人解决不了,这就是彼此之间的差距。

找到问题,才是解决问题的第一步

很多人在遇到bug时,第一反应就是着急解决问题,想着能规避就规避,但殊不知,你连问题在哪都不知道。找到问题在哪,是解决bug的第一步也是最重要的。通常来说主要就是跟代码,但很多人跟代码,都喜欢只跟表面,稍微深一点都不愿意继续跟了。也许不是代码问题,但通过跟代码,你也能排除一些可能性。除了代码上,很多人就不会想别的可能性了,这也导致了找不到问题。例如编译有没有问题?库有没有问题?内核有没有问题等等。
要能够想到一些可能性,而不是认定就是代码问题。不愿尝试,是大多数人的毛病有些人,他也许知道这个bug有哪些原因造成的,但是就是嫌麻烦,不愿尝试。例如要跟踪代码时,如果你跟了一会还是没找到原因,再往深了跟,可能就不愿意了,因为觉得麻烦,跟这么深代码觉得费劲。再例如,如果某个程序可能是C库造成的影响,但是你发现换一个C库很麻烦时,你可能也会放弃,转头继续跟代码。
这些你不愿意干的事情,也许就是问题所在,但就是因为你嫌麻烦,不愿尝试,导致一直定位不到问题,解决不了问题。厉害的人,都有自己的知识体系有些程序员,干了几年、七八年,他们甚至都无法列举自己到底会什么,他们有的只是所谓的经验。如果你问他们调试应用程序有哪些方法,他们也许能说出一种,又或许告诉你加打印跟代码,其它的可能他们也答不上来。
因为很多程序员,都只会基于自己的工作内容去掌握所需知识,工作没用上的,自然不会去学习,更不会去总结归纳。而拥有知识体系的人,对于每个知识点都会做笔记,也善于做调试记录并且归类,形成一个属于自己的知识体系。在解决bug时,他们清楚地知道这个问题属于哪个知识点,也能清楚地列举可能造成该问题的几种原因。而通常解决掉bug,原因就在他列举这几种可能性之中。解bug期间会根据自己的知识体系,顺利地排除几种可能,最终解决bug。解完bug的同时,又给自己的知识体系新增一项知识/经验,每一步稳扎稳打,这才是有能力的人。
而没有自己知识体系的人,也就是不做笔记,不总结的人,当再次遇到类似问题时,他们就只能干想,只能抱怨:我记得之前我遇到过,是什么原因来着?怎么解决来着?这相当于从头再来。而有自己知识体系的人,即便某个bug已经过去了很久,他只要稍微翻阅一下笔记,就能快速回忆起来,因为这是自己的东西。所以,也就有了:“你的三年,还不如人家一年。”

end

往期推荐