初读《大道至简》,就觉得文章的文笔十分随和亲近,我本以为是一大篇干涉难读的大道理文章,或者说是满篇说着专业术语的书,然而并不是,有着故事引题,我就跟着走下去了。
开篇就讲愚公移山的故事,我正想着这中学学的一篇课文,怎么会跟编程扯上关系。作者依次剖析每一段每一句,总结出愚公的精神在现代中,能看见一些编程思想,如文中所说:我们看到了程的根本:顺序、 分支和循环。在最基础的编程思想里,编写的程序像庞大若“愚公移山”的工程,都是可以通过这样简单的思想来实现的。“这,就是编程的精义了。”
作者提出了一个很多人问出的问题,“(我)能不能学会写程序?”
这样的问题,我自己也问过我自己,在不久前选专业的时候,我就在犹豫着,“软件工程适不适合我”,因为学了一年的C++,我还是觉得很陌生,基本上是用零散的基本知识,去应付那些稍微复杂的题目而已。文章中举了一些例子关于起床后做什么事情的选择,来侧面解答能否写程序这样的问题,虽然给予了很肯定的答复,来表达写程序其实并不需要太多的要求,有一个能思考的头脑就行的意思。但仍然不能消除心中对自己能力的疑惑。
但下文就让我觉得信心满满了,“编程作为一种行为,只需要知道其逻辑方法就了可以了”。所以,我弄明白了我一直要找到的,很明确的一个思想,就是在做事之前,先把逻辑关系和依赖关系搞清楚,然后再用代码去表达编程者的思想。以前做题的时候,或多或少也是这样去解决的,但是自己心中却没有很明确,很清晰的想法去解决问题。
“程序 = 算法 + 结构”
依着这个为根本,将算法设计出来,把结构描绘出来,那么程序就定型了,剩下的事,简而言之,就是劳力活了。
那么,现在作为刚进入编程大门的我,最先做的事就是把编程语言弄熟练,乃至精通,把各个基础语言有经验地融合,在头脑里形成一个数据库,那么编程的时候效率就会大大提升。
文章中,提到了《数据结构》这系列的书,我最近学的课程,就是这个相关内容,里面有很多关于编程思想的东西,其实有且仅有三种执行逻辑:顺序、分支和循环。简单若顺序表,复杂如树、图,它们的算法都是用上面这三种执行逻辑来描述的。
在过去一年的时间里,我只接触了C++,现在,又要求学JAVA,当然,以自学为主。我从文章当中了解到,“任何的一门语言,你都可以在两周内掌握并开始熟练才编程。因为任何的一门语言,他们的底层函数库都是那么的相似,而他们API都是那样的依赖于操作系统。A语言里有的,B语言里也基本都有”。所以,编程语言都是大体相同的,只是语言也是面对一些功能的,所以我现在应该加紧学习,提升自己。
这些都是我自己读《大道至简》的一些了解和感悟。读书的过程中有思想的变化,我将变化记下来,是对自己的再次提醒和加深理解。