第一章 程序点滴
1.1 程序≠软件
1.1.1 商业软件门槛的形成
1. 商业软件门槛的形成
任何一个行业初始阶段时的门槛都非常低,但是,只要发展到一定的阶段后,它的门槛就必然抬高。
2. 软件门槛对程序员的影响
程序要编程软件,这其中是一个商业化的过程
1.1.2 认清自己的发展
机遇是从耐心中产生的,越有耐心,就约有机遇。要想做一个很好的软件,做通用软件,要从最底层开始做起,从最基本做起。
1.2 高手是怎样练成的
1.2.1 高手成长的六个阶段
(1) 能熟练使用某种语言。
(2) 能精通基于某种平台的接口以及所对应语言的自身的库函数。
(3) 能深入地了解某个平台系统的底层。
(4) 能直接在平台上进行比较深层次的开发。这时候,语言只是一种工具,思想一定要转变过来。
(5) 能从全局上把握和设计一个比较大的系统体系结构,从内核到外层界面。
(6) 此时任何问题就纯粹变成了一个思路的问题,不是涌什么代码就能表示的。
每个阶段再向上发展时都要按一定的方法。第一、第二个阶段通过自学就可以完成,只要多用心去研究,耐心地去学习。要想从第二个阶段过渡到第三个阶段,就要有一个好的学习环境。例如有一个高手带领或公司里有一个好的练手环境。
1.2.2 初级成员和高级程序员的区别
高级程序员遇到问题考虑的绝对是什么才是具有最快效率,最稳定性能的解决问题的方法。
程序员达到最高境界的时候,想的就是“我就是程序,程序就是我”。要以程序的思考方式来思考程序,而不是以我去设计程序的方式去思考程序。
一个高级程序员应该具备开放性思维,从里到外的所有的知识都能了解。实际上,技术到达最高境界后,是没有分别的。
程序员要达到这样的目标,就要有非常强的耐心和非常好的机遇才有可能。而机会都是出在耐心里。“雄心的一半是耐心”。
1.2.3 程序员是吃青春饭的吗
追求技术的最高境界的时候,实际上是没有年龄限制的。
1.3 正确的入门方法
入门最基本的方法就是从C语言入手。BASIC每个所谓的命令在C语言里面都可以做成一个函数来实现。
工欲善其事,必先利其器。要想成功,没有一个艰苦的过程是不可能的,所以一开始就要有耐心。如果你准备花5年的时间成为高手,那你根本不用等到5年,只要有这个耐心就足够了。但如果你想在一年时间内就成为高手,即使5年后,你还是成不了高手。
到达高手的境界后,所有的事物都是触类旁通的。好的程序员必须具备开放性思维,也就是思考问题的方法。程序员,尤其现在很多的程序员,都被误导从MFC入手,这就很容易形成一种封闭式的思维模式。
1.3.1 规范的格式是入门的基础
1. 成对编码
正确的程序设计思路是成对编码,先写上面的大括号,然后马上写下面的大括号。如果用成对编码,则程序任何时候都是可以调试的。代码一定不能乱,一定要格式非常清楚。
读程序时要养成一种习惯,就是分块阅读程序,很明显两个大括号之间就是一块代码。
2. 代码的注释
真正要做一个有价值的程序,开发程序的思维就很重要,这种思维的具体体现就在注释及规范的代码本身。
1.3.2 调试的重要性
所有的程序都是调试出来的,不是写出来的。
1.4 开放性思维
游离于平台之上的系统和实际的应用软件是不现实的。任何一个软件一定都是跟一个平台相关联的,脱离平台之上的软件几乎都是不能用的。
一个很普通的程序员,如果他能够考虑倒将程序分成好几个动态库,那么她的思维方式就有点开放性了,就已经不是MFC那些思维方式。
1.4.1 动态库的重要性
有了动态库,当你要改进某一项功能的时候,你就可以不动任何其他的地方,只要改其中你拆出来的这一块。
1.4.2 程序设计流程
(1) 拆出模块。
(2) 对操作系统所提供哪些功能,程序怎么跟操作系统接口考虑清楚。
(3) 把它拆成一个个独立的模块。
(4) 再进一步去实现,从小到大地进行设计。
可预测性就是从症状就能判断出是哪些代码产生了问题,这就是可预测性。