大道有名,其名为简。
程序=数据+算法
一开始接触编程总以为它很难,然后开始逐渐发现,其实大部分时间都是体力活,还记得第一次做通讯录的时候,花了整整一个晚上,查阅资料,设计函数,最后做出来能够实现基本功能的时候,觉得自己已经掌握了C++,马上就可以踏入社会月薪过万了,现在想起来真是太年轻。
不过那次经历还是教给自己很多东西,比如设计自己的程序,尽量减少代码行数,等等等等。然后一旦确定了结构和算法,剩下的工作,就只是毫无技术含量的码代码,劳力活了。
读大道至简是很枯燥的,吸引我的是什么呢?是它趣味横生的例子和比喻,通俗易懂,言简意赅。
书里举了一个通俗易懂的例子,《列子 汤问篇》中的《愚公移山》的故事。“扣石垦壤,箕畚(jī běn)运于渤海之尾”这里通过研究选定了一个井然有序的,可以实现的技术方案;“遂率子孙荷担(hè dàn)者三夫”在这个项目中运用了三名技术人员和一名管理人员;“邻人京城氏之孀(shuāng)妻有遗男,始龀(chèn),跳往助之”并获得了一名能力较弱但是积极性很高的外协(有的企业规模有限,固定的员工无法满足此项生产任务,那么交由外部其他相关企业代为生产加工则提高了生产效率又实现了利润收入的双丰收。)这基本就是一个工程的概况。这里还描述了实现目的的方法,“虽我之死,有子存焉”这条相当于条件结构;“子又生孙,孙又生子;子又有子,子又有孙;子子孙孙无穷匮(kuì)也”这条是实现目的所用的循环条件,“而山不加增,何苦而不平”是循环的终止条件。在这篇文章中我们看到了编程的根本:循环,分支和顺序。两千年前的愚公都能懂得编程的精义,我们为什么不行呢!这里也提到编程的精义三种结构,重点在于如何巧妙的运用和结合它们。
有同学总是抱怨,他一看见程序就上愁。显然根据以上描述,除了先天智障或是后天懒惰者,都是可以学会并且熟练掌握编程的。如果你能确信,自己知道在早上起床后需要:这里有两种情况,在天气冷的情况下先穿衣服后洗漱,如果天热则反之。另一件事就是日复一日只到死亡。那么你就可以开始编程了,如果你知道有疾病或者意外事件当天可以跳过,那么你就可以往设计师方向发展了。因为你已经具备了常人所没有的基本素质:折衷。