原创 程序员的成长从开窍开始

2013-1-4 17:12 833 15 16 分类: 消费电子

有时候即使是很优秀的程序员,也会被一个低级错误困扰,可能会几天都解决不了。所以,关键在于,如何找到问题。

遇到问题的时候:

1,不要怨天怨地。出了问题,当然有可能是系统的bug,API的问题,但是那些几率往往比你犯低级错误的几率要低多了,先从自己身上找原因,是不是自己写错了。


2,要掌握工具。最低限度你要会写Log,最好是Log和调试器结合。好 的工具可以大大的提高效率。以前有人跟我说,Dll不能调试,我发现可以;有人说多线程不能调试,我发现可以;有人说COM不能调试,我发现可以;有人说 IE插件不能调试,我发现可以;有人说OE插件不能调试,我发现也可以。当然,你确实会遇到不能调试的时候,当年我们做东芝芯片的嵌入程序,一个组都没有 一个仿真器和调试器,但是至少可以用Log嘛,无非是麻烦点。

3,分析问题要有逻辑。遇到问题可以先把所有的可能性都列出来,然后一个一个分析,肯定能找到原因的。


4,要学会隔离问题。问题涉及到的代码越多,越难以理解,问题越难以解决。遇到这样的情况,可以利用Log或者调试器,一行代码一行代码的给它们洗清嫌疑,这样很快你就可以找到出问题的地方。如果代码特别长,程序特别复杂,可以用二分法来做,效率很高。

5,千万不要懒惰,不要事事求别人。一次复杂的调试过程就像一部侦探剧,如果你有非常好的逻辑性,那这部剧的主角就是福尔摩斯,剧情一定非常精彩。我说这 个是有巨大风险的,说真的我帮人调东西挺**的,很有意思。但是我还是要告诉大家,一次高难度的调试之后,你的满足感绝对不亚于写了一个伟大的程序。

要想不遇到问题,写代码的时候:

1,要对写出来的代码负责。我很佩服那些写代码写100行都不执行一次的 高手,如果他们最后不被低级错误困扰的话我就更加的佩服了。我写程序几乎是写一行两行就要执行一次,每句话我都要确保执行效果跟我的预期一致。没错这样写 的时候 可能慢一些,但是调试的时候很轻松,我可以很简单的确定哪些代码绝对没有问题。所以我写代码整体速度比一般人高。很多人学习新东西的时候喜欢把例子抄一 遍,运行一下,改改,再运行。我喜欢一句一句的抄例子,抄一句两句执行一次,这样可以把例子透彻的理解,而且很难会遇到出现了问题找不到原因的时候。


2,函数体功能块不要过长。我认为我的智商并不高,我很难接受一个程序的一个函数体或者一个功能块超越3屏(当然逻辑真的有那么复杂除外,你会发现越是简 单的逻辑越是容易被人写的冗长)。很多人对面向对象耳熟能详,对封装继承看起来驾轻就熟。但是动不动就写出来个函数体超长的程序。这就像写本书从头到尾不 点句号一样,会累死读者的。自己看的时候,估计也会被累的喘不过来气。这是我对基础教育的微词所在,他们连教会学生写函数都没教会,虽然表面上他们连面向 对象这么高深的东西都教。


3,缩进要对。这点很重要,虽然大部分语言不是像Python那样用缩进来决定逻辑块的位置,但是人看到缩进的时候,总是会以为这些缩进位置跟逻辑相关。 尤其是在有大量的ifelse或者for循环等等的嵌套逻辑的时候,如果缩进错了,可能会直接让人把程序的逻辑读错。所以我拿到别人的代码,第一件事情就 是整理缩进。我见过一些比较优秀的页面工程师,他们会在div结束的位置用注释写上这个div的id,这样层级关系就一目了然了。

文章评论1条评论)

登录后参与讨论

用户516996 2013-1-5 10:23

讲的很好。过程、好习惯的养成至关重要。
相关推荐阅读
用户590739 2014-06-20 16:36
什么吃掉了你的执行力?在浮躁中求解
转载自36Kr 编者按:“职责越多,执行力越弱?”本文作者为移动创作及阅读应用“汤圆”市场部钱婧(微信:gracetiantang),她通过书写来理清思绪,或许不失为好的方法。 执...
用户590739 2014-06-20 14:26
初创团队的形成和激励
文/进门团队   在进门发起的线上创业分享汇上,长江商学院张维宁教授就“初创团队的形成和激励”发表了见解,汇总提炼如下:   创业是现在中国最靠谱的事情之一,越来越多的人选择创业,选择拥有自己...
用户590739 2014-06-19 15:29
如何对待开发团队中那个拖后腿的人?
每个开发团队中总有一个人是最差的,老跟不上整体水平。据我观察,队友们对待这个差生的态度是团队健康状况的重要标志。(注:原文用“贝尔曲线(bell curve)”,也就是“正态分布”来衡量团队的整体...
用户590739 2014-06-18 17:36
那些糟糕的面试和那些屎问题
原文链接:http://www.raychase.net/371 作者:四火的唠叨 不 同的公司和人,有不同的面试策略,有的考察视野、有的深入细节、有的则是评估解决问题的能力。我经历了一些有意...
用户590739 2014-06-16 15:04
不做7件事,提高生产力
转载自36Kr. 此文是 CamMi Pham 的文章,原文发表在Medium上。作者通过自身经历和一些科学证据说明,有时候努力工作未必是通往成功的正确路径。成功的关键不是努力而是巧干。因为时...
用户590739 2014-06-09 09:09
看李嘉诚如何请人吃饭
作者:冯仑 一个月前我去香港,和李嘉诚吃饭,感触非常大。李先生是华人世界的财富状元,也是我的偶像。大家可以想象,这样的人会怎么样?   一般伟大的人物都会等大家到来坐好,然后才会缓缓过...
我要评论
1
15
关闭 站长推荐上一条 /2 下一条