在所有的算法描述中,有且仅有三种执行逻辑:顺序、分
支和循环。简单若顺序表,复杂如树、图,它们的算法都
是用上面这三种执行逻辑来描述的。
…11
…………………………………………………………Page 16……………………………………………………………
第 1 章 编程的精义
4。 语言
当你熟悉了一门语言之后,你会发现,编程语言只有
喜欢与不喜欢的问题,没有会不会的问题。任何的一门语
言,你都可以在两周内掌握并开始熟练编程。因为任何的
一门语言,他们的底层函数库都是那么的相似,而他们
API 都是那样的依赖于操作系统。A 语言里有的,B 语言
里也基本都有。
通常而言,语言的差别主要表现在适用范围上。一些
语言适合做数值处理,小数点后可以精确到原子级,而小
数点前则可以表达到宇宙之无穷;另一些语言则适合做图
形处理,它的底层函数库比其它语言可以快上十倍或数十
倍;还有一些语言则适合于做网页,要用它来做一个通讯
薄软件都将是史无前人的挑战。
成天讨论这门语言好,或者那门语言坏的人,甚至是
可悲的。不但是悲其一叶障目,更要悲叹于那种大愚若智
的自得心态。
5。 在没有工程的时代
在没有工程的时代,上面所说的就是一个程序员的全
部。他们掌握了一门语言,懂得了一些生活中最常见的逻
辑,他们用程序的方式思考和学习了一些算法,并根据前
人的经验,把这些算法跑在了一些数据结构之上,最后,
…12
…………………………………………………………Page 17……………………………………………………………
『大道至简』
我们就看到了他们写的程序。
在没有工程的时代,出现了非常非常多的人物。其中
算法大师,有游戏大师,有语言大师,有挣钱的大师……
唯独,没有工程大师。嗯,可以理解嘛,那是没有工
程的时代。好蛮荒,好远古的。
…13
…………………………………………………………Page 18……………………………………………………………
第2章 是懒人造就了方法
“ 道有蜀王兵 ,亦有神作大滩江中。其崖崭峻不
僰 蘭
可破,(冰)乃积薪烧之。”
——《华阳国志》
1。 是懒人造就了方法
战国时期的李冰凿了一座山。
史记中说是“蜀守冰凿离堆”,是说李冰在成都的时
候凿出了离堆。一说是李冰将都江堰附近的玉垒山凿了一
个大口子,叫宝瓶口,而凿的石头就堆成了离堆。另一说,
则是李的确是凿了一座“(溷) 崖”,但是是在沫水,亦即
是今天的大渡河。
在哪里凿的山,是史学家都说不清楚的事。但的确凿
了一座山,而且方法是“( 因)其崖崭峻不可破,(冰)乃积
薪烧之”。
我们已经看到事物的进化了。同是战国时代,《列
子·汤问篇》里的愚公就要“碎石击壤”,而李冰就已经
懂得“积薪烧之”了。
会有人说愚公是“碎石”,并没有说他“碎石”的方
法究竟是“斧钺以凿之”,还是“积薪以烧之”。但想想那
个时代,如果有人懂得了烧石头这个方法,哪能不立即载
…14
…………………………………………………………Page 19……………………………………………………………
『大道至简』
文志之,永世传承。
再说了,愚公嘛。愚者怎么会呢?这还需要分析吗?
需要吗?
所以愚公会凿,而李冰会烧。那李冰又是为什么会用
“烧”这种方法来碎石的呢?如果李冰也象愚公那样日复
一日地督促着他的团队凿石开山,那他一定没有时间来学
习、寻找或者观察,当然也不会发现“烧”这种方法可以
加快工程进度,使得一大座山短时间就被哗啦哗啦地给
“碎”掉了。
要知道李冰的团队可是成百上千人,要修堰筑坝,还
要“凿离堆”,当然还要吃喝啦撒睡。所以李冰如果忙起
来的话,他必然是“受命以来,夙夜忧叹”,必然食难下
咽,睡无安枕。反之,李冰一定是个闲人,可以闲到没事
去看火能不能把石头烧爆。
这么大个工程里,如果有一个人会闲到看火烧石头,
那他一定很懒。那么多事堆着不去做,去看烧石头,你说
他不是懒是什么。
正是一个懒人造就了“烧石头”这个“碎石”的方法。
愚公太勤快了,勤快得今天可以比昨天多凿一倍的石头。
或者在愚公的项目计划案的首页里就写着朱笔大字:“吾
今胜昨倍许,明胜今倍许,而山不加增,何苦而不快。”
但是越发的勤快,愚公将越发没有机会找到更快的方法,
人的精力终归是有极限的。提出新的“方法”,解决
…15
…………………………………………………………Page 20……………………………………………………………
第 2 章 是懒人造就了方法
的将是影响做事成效的根本问题。而愚公可以多吃点饭,
多加点班,但突破不了人的精力的极限。
记住,在两千年前的某一天,闲极无聊的李冰下厨给
夫人炒了一个小菜,他突然发现垒灶的鹅卵石被烧得爆裂
开来,遇水尤甚。从此《史记》上记下了“蜀守冰凿离堆”,
而《华阳国志》上记下了他做这件事的方法“积薪烧之”。
在差不多同一时间,愚公在山北之塞“碎石击壤”。
2。 一百万行代码是可以写在一个文件里的
早期写程序,都是将代码打在穿孔纸带上,让计算机
去读的。要让计算机读的纸带当然是连续的,这无需多讲。
其实我也没有那样写过程序,真实的苦楚我也不知道。
…16
…………………………………………………………Page 21……………………………………………………………
『大道至简』
后来有了汇编语言,可以写一些代码了。这时的代码
是写在文本文件里,然后交给一个编译器去编译,再由一
个链接器去链接,这样就出来了程序。
第一个写汇编的人,可能写的是有名的“Hello World ”
程序,那个程序写在一个文件里就行了。所以后来就成了
习惯,大家都把代码写到一个文件里。早期的汇编语言里,
GOTO 语句是用得非常非常频繁的,将一个语句 GOTO
到另一个文本文件里去,既不现实也不方便。所以大家习
以为常,便统统地把代码写到一个文件里。
再后来出了高级语言,什么 C 呀,Pascal 呀之类的。
既然大家已经形成习惯了,所以很自然地会把一个程序写
到一个文件里。无论这个程序有多大,多少行代码,写到
一个文件里多方便呀。
直到如今语言发展得更高级了。可是程序员的习惯还
是难改,一旦得了机会,还是喜欢把代码写到一个文件里
的。
好了,有人说我是想当然尔。En ,这当然是有实据的。
小说推荐
- 软件工程思想
- 作者:林锐前 言 在60年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群,编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴一样随心所欲,于是他们很过分地把程序的集合称为软件,以便自己开心或伤心时再把程序捏个面目全非。人们就在这种美滋滋的感觉下热情地
- 最新章:第53章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- JMS简明教程(PDF格式)
- -Page 1-JMS1.1规范中文版卫建军2007‐11‐22-Page 2
- 最新章:第28章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- Linux实用培训教程(PDF)
- -Page 1-rrktqt的个人空间 Linux实用培训教程第一部分 作者:红联Linux实用培训教程第一部分-共三部分解的Linux知识,循序渐进的介绍Linux相关知识,从入门到提高,希望对所有学习Linux的朋友都有帮助 红联Linux论坛是致力于Linux技术讨论的站点,目前网站收录的文章
- 最新章:第42章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章