开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2457|回复: 12
收起左侧

[大家谈谈] 程序员的成长从开窍开始

[复制链接]
发表于 2011-10-24 15:48:17 | 显示全部楼层 |阅读模式   陕西省安康市
有时候即使是很优秀的程序员,也会被一个低级错误困扰,可能会几天都解决不了。所以,关键在于,如何找到问题。  

遇到问题的时候:

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,这样层级关系就一目了然了。

结帖率:88% (14/16)
发表于 2011-10-24 16:14:00 | 显示全部楼层   广西壮族自治区南宁市
写得很好  赞一个 {:3_232:}
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2011-10-24 16:44:50 | 显示全部楼层   天津市天津市
哈哈、说得很有道理。
回复 支持 反对

使用道具 举报

结帖率:97% (28/29)

签到天数: 19 天

发表于 2011-10-24 16:55:24 | 显示全部楼层   黑龙江省哈尔滨市
呵呵, ·支持吧{:3_228:}
回复 支持 反对

使用道具 举报

结帖率:35% (12/34)
发表于 2011-10-24 17:42:10 | 显示全部楼层   江苏省苏州市
写的不错..支持了 ....
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-24 19:54:16 | 显示全部楼层   陕西省安康市
{:3_234:}谢谢大家围观.希望的大家努力哦!
回复 支持 反对

使用道具 举报

发表于 2011-10-25 15:18:15 | 显示全部楼层   广东省珠海市
写得真好。。。
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2011-10-25 16:49:44 高大上手机用户 | 显示全部楼层   上海市上海市

支持,心有体会
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 11 天

发表于 2011-10-27 18:45:37 | 显示全部楼层   吉林省长春市
我写程序几乎是写一行两行就要执行一次,每句话我都要确保执行效果跟我的预期一致。------这句话说的最好
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)
发表于 2011-10-28 02:13:17 | 显示全部楼层   河北省唐山市
{:3_227:}{:3_227:}{:3_227:}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表