作为一个程序员,在工作中会遇到各种各样的问题,解决问题的能力非常重要。

你不是在写代码,你是在解决问题

这是之前在微博上看到的一条 程序员的那些事
7cc829d3ly1gdbri1m961j20h50dzdhq.jpg
一个很重要的思维,作为一个程序员,你是一个单纯的写代码的,还是解决产品经理问题的人?
这个问题想清楚,能更好发挥自己的主观能动性,对解决当前的问题有好处,也能提升自己解决问题的能力。

如何解决问题

尝试自己解决

能自己解决的问题,尽量自己解决。

知识面问题

当每走一步都有问题的时候,要考虑是不是自己的知识面不够,恶补!

搜索

你不是第一个遇到这个问题的。

文档/源码

read the fucking source code.

BUG追查

一个Bug被发现时,都会有触发的条件、重现的步骤,根据这个条件去代码里按图索骥。

小黄鸭调试法

梳理代码逻辑,试着将逻辑讲给自己或者其他人,在这个过程中,很可能会发现问题。

先治标再治本

在难解决且时间紧张的情况下,采取“保守疗法”,尝试先解决表现上的问题,随后在时间充足的时候再尝试解决。

取巧的办法

有的问题不必死磕。尝试换个角度去做。

请教了解的人

在自己解决不了问题的时候,向他人请教。

  • 同事和上司
    同事和上司,有的可能经验不如自己,但他可能解决过同样的问题,多沟通。
  • 和问题相关的人
    这里举个例子:我要接入支付宝,按照支付宝的文档做,什么都试过,就是调不通,怎么办?
    最终我找了支付包的技术客服,客服帮我找出问题:用的appid和秘钥不匹配。而这个秘钥,是上司给的。如果不去找客服,这个问题永远解决不了。

在问题解决之后,还能做什么

归纳总结

做个笔记,或者写个文章。在这个过程中,逼迫自己把解决的问题真正理解,也有助于提升自己。

有没有更好的解决方式?

袁大神经常教导我们:一件事做完之后,一定要看看别人有没有更好的方案。没有做不到,只有想不到。