大道至简阅读笔记01
第一章 编程的精义
第一节 编程的精义
在愚公的论述中,我们看到了编程的根本:顺序、分支和循环。庞大若“愚公移山”这样的工程,都是可以通过这样简单的编程来实现的。这,就是编程的精义了。
第二节 能不能学会写程序的问题
愚公都能明白的变成精义,那么向 我发问 的智叟们又怎么会不明白呢?
所以除了先天智障或后天懒惰者,都是可以学会写程序的。
如果能确信,自己知道在早上起床后需要:
1、如果天冷就先穿衣后洗漱
2、如果天热就反之
3、日复一日直到死亡
那么你就可以开始编程了。甚至如果能判断以下条件;
1、如果有类似于生病、不能行动、以及意外的紧急情况时间,则当日可以略过
那么你就可以开始向设计师发展了。因为你已具备了一项常人不具备的基本素质:折衷。
第三节 程序 = 算法 + 结构
编程作为一种行为时,我们只需要知道其逻辑方法就行可以了。所谓编程实际上就是把一件事情交给计算机去做,你认为这件事该如何做,就用“程序语言”的形式描述给计算机。如果你原本就不明白如何去做,那么你也不要期望计算机去理解你想要做什么。
在SIP+RTP中实现mark拖动时,我对这句话深有体会,在编码以前,一定要先用自然语言描述好逻辑流程,否则到后面自己都搞不清楚哪儿有问题,到处都是缺陷!
所以编程的第一要务是先把事情分析清楚,把事件的先后逻辑关系和依赖关系搞清楚,然后再去写代码实现。一接到任务就开始Coding的程序员,通常就是加班最多的程序员。
记住:积极工作和勤于思考都要占时间。
第四节 语言
任何一门语言,你都可以在两周内掌握并开始熟练编程。因为任何一门语言,它们的底层函数库都是那样地相似,它们的API都是那样地依赖于操作系统。......
成天讨论这门语言好,或者那门语言坏的人,甚至是可悲的。......
第五节 在没有工程的时代
在没有工程的时代,上面所说的就是一个程序员的全部。他们掌握了一门语言,懂得了一些生活中最常见的逻辑,他们用程序的方式思考和学习了一些算法,并根据前人的经验,把这些算法运行在一些数据结构之上。最后,我们就看到了他们写的程序。
个人感受部分:
1、过去我是怎么做的:
过去感觉编程太难了,算法更是难学,掌握一门语言非常难,更别说精通一门语言了。
2、结合书中这样的坏处:
如果遇到困就放弃,这样最终也学不会一门语言和编程技巧,更别说精通语言,成为高级工程师
3、解决办法;
不要害怕困难,软件难学,但是最终会克服困难,当你入门后,你会发现其实也不是很难,到最后的精通,成为大牛。