[嵌牛导读]
编程,编-绞丝旁,如丝线缠绕,本就错综复杂;程,过程,不可一蹴而就。
对于编程每个人都有自己的理解,各有不同。编程之路,总会遇到许多敌人,不过我相信大家都和它交过手,真可谓:
种类繁多,原因奇葩,从细微处到整体架构,无处不相逢
相信大家都遇到过不少棘手的bug,不是说这些问题有多么难(毕竟最终大家都干掉了它),而是大家在遇到它时,仿佛着了魔,落入了无限深渊,无法从中脱出,甚是怪哉!
当我们进入到这种“无辜又无奈”的状态时,我们该做些什么?
[嵌牛鼻子]
编程,代码,Fix Bug,Productivity,态度,编程次元
[嵌牛提问]
当你遇到一个棘手的bug时,你的状态会发生什么样的改变?
到底如何才可以解决这个bug?
已经花费了好久还是没能够解决它,想要放弃怎么办?
解决不了bug,我是不是真的不适合编程?
[嵌牛正文]
1. 态度,学会正视
Tricky Nature of Programming
编程其本身就很棘手
正想我在文章开头提到的,编程是一个过程,一个思维碰撞的复杂过程。编程本身就很棘手。现实在编程次元(程序的世界,集结所有程序员智慧结晶的世界)同样也在投影一个事实,“我们是无知的,仍然需要在前人的基础上去探索”。即使是“大牛”,他也会遇到暂时解决不了的问题,毕竟“bug一视同仁”。
When I spend hours on a problem and still can’t find a solution, I end up feeling wasted. I don’t mean drunk — more as “I never thought someone could get this tired”.
当我在一个问题上花费了数个小时,却仍不得其法,我会感觉到我的时间被浪费了。我并不是随口乱说,这更像是“我从没有人会因为这样(耗费时间解决问题的过程)而感到疲惫不堪”
所以呢,在遇到诸如此类的过程,不要过分的去责备自己,不要带来消极。相反,我们应该寻求更有效的策略,重新找回自己的生产力( Rediscover Your Productivity)。
- 更精准的搜索问题有关的信息,例如在CSDN,Stackoverflow,社区Q&A板块,寻找开源解决方案
- 测试不同的解决方案,直到感觉重复
- 向更有经验的程序员询问
- 如果一切都失败,那就潇洒放手
2. 坚持,仍旧需要
又是在解决问题的过程时,当你最终找到答案时你会发现你的解决方案和网络上别人的解决方案就差一步,内心独白“我就只差这一步”。
其实解决这些棘手的问题更加需要我们静下心来,理清思路,这个时候最要不得的就是放弃。
去尝试你所能够想到的所有方案,从当前出发,疏通每一条路径,测试不同的解决方案,一点一点去排除,找到最终的可能。我想,没有坚持是做不来的。
3. 虚心,受教
有时候,我们所遇到的问题已经有人遇到过,我们只需要去搜集其他人的解决问题的思路,过程就可以了。当然,不能仅限于“完了”。
我们要明白好的解决方案为什么好,这个方案是从哪个维度解决了问题,这种解决问题的思路是否具有可复制性,这个方案是从哪个角度入手才得到现在这个结果。
大牛之所以是大牛,不仅仅是智力方面胜过我们,更厉害的还是他们的阅历,试想一下,从编程语言诞生之处经历过编程次元的一个人,对于问题是非常敏锐的,倘若我们能够从这些人中学到一星半点那可真是如获至宝,因为经验比什么都重要,可以让你少走弯路。
英文文章链接:What Do You Do When Programming Sucks
END