CB编程手记(20110802)
一:基础素养
1.一定要做好文档的备份工作
2.使用版本控制工具,并在多个版本上表明改动的过程
3.多看视频资料,很好使
4.找源代码,有现成的模块就不要动手自己做。学习,是另外一码事。
5.如果不能精确的知道别人每一行代码的意思,不如动手自己写。
6.注意移动硬盘,笔记本防摔、防过热工作。
7.有问题时不要慌张——问题一定会出现的,总不会像书本上那么的顺利——上网查查就行。
8.不要总想着是软件的毛病还是系统的毛病,结果不对,就是人的毛病
9.不要随便删除程序、文件;也许他们有很大用处
10.一定要直接把手头的活干完,否则,一旦停下来,所有的工作都是要重头来的。
11.路径设置一定要合理,本类的东西放在本类的文件夹里。
12.编码不懂的时候,尝试结对编程,受益匪浅
13.遇到困难的时候,稳住,不要慌不要急。安心下来先把能做的都做了,然后做不会的。
14.把大个的问题分解成一个个的小块,逐步实现。
15.再说一次,勤勤恳恳,不急不躁,用心办事。比如,你认为某个程序运行的结果一定是某个样子,事实却总不是那个样子。其实,你离它很近。
16.有东西不懂,不要可一个人问,集思广益。
17.搜东西时,先看汉语,再看英语。注意关键字。
18.搜索的时候,要一步到位。不要一直追逐着自己不懂的东西,一下子链接到很远很远,要记得出发的目的。
19.多加入自己的思考,不要一直工作。
20.要找到那种最生动的例子。一个好例子的效果顶三四个不是很明显的例子。
21.通过小程序,小实验来验证自己的想法
22.能用清晰思路实现的,绝对不要麻烦但是高效的方法
23.对于细心设计的方法,如果程序执行的结果不是自己想的那样,往往原因很简单,不能把它们想的太复杂了
24.跟踪结果,动态的分析问题,找到它,解决它
25.如果算法设计的过于复杂,那一定有简洁的思路
26.如果一条路走不通,那么一定还有其他的解决办法
27.代码如有变动,注意注释也要修正,要不注释起反作用了
28.一定要知道全局变量在不同时刻的值
29.一定要知道指针在任何时刻的位置,不用的指针随手置NULL
30.实验数据要小心保留,重要数据防止覆盖,要做好详细的注释
31.不能采用打乱程序的整体结构的方式提高执行效率,只要把最关键的部分解决了就可以了。
32.学习笔记要及时的整理,修正,条分缕析,郑重其事。注意版本的替换和保留工作。以便日后查询和他人使用,及时和有思想有热情的人交流
33.多加一些必要的中间过程的输出,如“目前正在处理XX”等;多加入报错语句“error”,会让排错过程大大提高,代码清晰易懂。
34.多加assert,让程序早早的报错
35.编程的时候只想程序工作位置附近的问题,利用局部性性原理来考虑。
36.出现链接错误的时候,只要一点一点的对应着Link标签下的各个链接库比较一下就可以了。
37.有的时候真会出现这样的状况:代码没动,但是库调用换过来后就换不过去了;编译器可能会莫名奇妙的成功,但是不会莫名其妙的报错。根据提示重新做就行了。
38.读文件的时候总是读不到头,以为文件结尾的判断标志错了;结果发现文件比自己预料长了很多
二:有感而发
1.编程是繁琐而沉重的工作,支撑程序员的是热情,不只是技术。
2.如何在有压力的情况下最有效地分配时间,是一个人非常重要的能力。
3.喜欢玩电脑,会玩电脑,也会用电脑来解决实际问题的人,才是真正适合做计算机行业的人。
4.任何值得求解的问题都值得一番思考
5.把注意力集中于主要因素,不要纠缠于噪声
6.有时问题很容易求解,不要自己把问题想的太难了
7.当心以前的经验造成误导
8.当心一些显而易见的解,它们可能是错误的
9.开始求解,不要说“我不知道怎么求解”
10.不要满足于只找到一个解
11.不要局限于问题描述的解空间里
12.游戏之乐 数字之魅 结构之法 数学之趣 编程之美
三:测试心得
1. 如果测试的结果需要很久才能跑出来,那就两台机器一起执行,提高效率
2. 使用双核的机器,可以在程序运行的同时干其他的事
3. 测试的数据一定要保存好,附带详细说明。路径,文件名字一定要有调理
4. 对于路径较深或者路径有很多相似之处,使用"资源管理器"来查看
5. 测试之前一定要动手设计合理的case,各个测试结果都有很强的代表性
6. 认真分析测试结果,有什么发现要赶快详细的记录下来
7. 根据分析的结果动态的调整case