程序员新人怎样在复杂代码中找 bug？
跟。 新人干活，少点方法，多点诚意。 你知道为什么老大喜欢让新人从修bug做起吗？因为他想让你“跟”。 你知道为什么他想让你“跟”代码吗？因为只有这样才可以熟悉项目。 “跟”是一个重要的学习过程，最终目的除了修复bug，更重要的是你在这个过程里注意到了什么。比如大概哪些类参与了你跟的某条执行线路，相互调用关系怎样，结构设计上有什么特点或不足。 修bug不能靠看，被你轻易看出来，能叫bug吗？不如叫错误。跟就是眼手合一，把代码捣碎了，嚼烂了，动它一动，才能发现其中阴谋。 新人不应该上来就来断点，哥鼓励所有新人用好语言提供的log调用，javascript就用好console.log，php就用好error_log或者var_dump，python就用好pprint。在你对代码一无所知的时候，最重要的是找到程序入口，找到入口以后就可以往代码中添加各种log语句，然后执行这片代码，观察log输出的内容。往下跟，塞进去log语句，观察变量命名是否和手上的bug有关系，这是猜的本事，是直觉，有时候对有时候错，但猜错和猜对一样是重要的知识，因为下一次你就知道“哦，那条路不行”。 在这个过程中，你深深地注视了一回代码，会明白很多东西。不要假设这只是要修个bug，而因此把全部注意力放在调试工具上。你的老大绝不是这个意思。