真正的高手不是调试bug而是避免bug——程序员的素质(2)
看动漫是很多程序员的爱好;
我也是,
我这辈子的一个目标就是在有生之年
能看到《火影忍者》的结局,
这个目标我已经坚持十多年了;
不过今天我要说的是那个永远也打不死的星矢;
他讲过一句名言:“对圣斗士同样的招式只能用一次”;
这句话对程序员却是很有意义;
程序员的成长不在乎两点:
一,自学,从自己的错误中成长;
二,想别人学习,在别人的教诲声中成长;
=========================================
对于自学,错误是最好的老师;
一个程序员最高的境界不是去调试Bug,
而是在写完程序后就没有bug;
当然在写出没有bug的程序是种理想的状态,
但是,你写了1000行的程序,在第一次编译后是
“- 0 error(s), 0 warning(s)”吗?
如果是,那你就不需要往下看了。
如果不是,那看看你的错误是第一次遇见吗?
90%以上的情况下,不是;
如果不是,那就是说,这个编译错误是可以避免的;
在写代码的时候,注意错误的产生的意义不仅如此,
那被编译器检查出来的不是问题;
真正的问题是编译器检查不出来的,
而语法错误和语义错误对我们来说是一样的,
都是可以避免的;
数字是最能说明问题的:
假设A:
1000 行代码, 编译错误 5 ,语义错误 5;
代码书写时间:16h;
修整编译错误时间:0.5h;
修整语义错误(4)时间:20h;
剩余bug;(1)
-------------------------------------
剩余bug 1, 使用时间:36.5h
假设B:
1000 行代码, 编译错误 2 ,语义错误 2;
代码书写时间:20h;
修整编译错误时间:0.3h;
修整语义错误(2)时间:5h;
剩余bug;(0)
-------------------------------------
剩余bug 0, 使用时间:25.3h
从A到B的过度真的很难吗?需要很多技巧吗?
但是你做到了吗?
==========================================
跟别人学习同样重要,跟你的Leader,跟你的colleague学习;
自学是提高你的编码质量, 而向别人学习是学的解决问题能力;
关于这一点下次再总结;