大道至简读后感
翻开《大道至简》之前,我一直觉得编程就是把代码写对就行。自学Java时,总盯着语法看,比如怎么定义变量、怎么写循环,只要程序能运行出结果,就觉得自己学会了。但看完这本书才发现,自己就像书里说的那种“只学招数,不明道理”的人,根本没摸到编程的门。
前阵子自学Java时,想写一个简单的记账小程序。我打开编辑器就开始敲代码,把收入、支出的计算全写在一个main方法里。写着写着发现,想加个按月份查询的功能,就得在一大段代码里挤来挤去地改。最后程序虽然能算出总数,但代码乱得像缠在一起的耳机线,过了两天再看,自己都忘了哪个变量是干嘛的。当时还觉得是自己练习不够,现在才明白,这就是书里说的“一接到任务就开始Coding”的毛病,看似在努力,其实因为没理清逻辑,反而做了很多无用功。
我还见过有人写程序特别“图省事”,不管写什么都只用一个文件。有次帮同学看他用C写的简单游戏代码,整个程序从开始到结束就一个.c文件,几百行代码堆在一起,函数名起得都是f1、f2这种。想帮他改个小功能,翻了半天都找不到对应的地方。当时觉得是他太懒,现在才懂书里的话:把代码都塞进一个文件,就像把所有东西都堆在一个抽屉里,看着省事儿,找的时候才知道多麻烦。这种做法看似省了建文件的功夫,却把后面调试的时间全赔进去了。
过去自学Java时,我总热衷于背API、记语法,以为把类、对象的用法背熟了就万事大吉。但有次想给记账程序加个保存数据到文件的功能,明明单独的文件操作代码会写,记账的逻辑也懂,可就是不知道怎么把它们合在一起。这就像书里说的,只学会了零散的招式,没搞懂背后的逻辑,遇到变化就只能傻眼。
现在总算明白,编程不是堆砌代码,得先想清楚“要做什么”和“怎么做”。下次再写程序,我打算先拿张纸画画步骤:比如记账程序,先分成输入金额、计算余额、保存记录这几块,每块单独写在不同的方法里,就像书里说的“过程”,这样结构清楚,改起来也方便。
还有,不能再只盯着语法不放了。下次学Java的类和对象,多问问“为什么要这么设计”,搞懂这些道理,遇到不同的问题才能变通。就像书里说的,明白本质才能应对变化,不然换个场景,学的那些知识就用不上了。
原来编程真的像书名说的“大道至简”,关键是把逻辑理清楚,而不是追求代码的复杂。或许这就是 "大道至简" 的意思:复杂的事情背后总有简单的道理,别被那些花哨的形式绊住了脚。下次再写代码、做项目时,不妨先停一停,想想周爱民老师的话 ——"实现,才是目的"。而我闷头写代码的方式也应该改改了.
浙公网安备 33010602011771号