读了周爱民的《大道至简——软件工程实践者的思想》,戳中了我学习编程语言时的一些痛点。以前总觉得软件工程就是学一堆流程、工具,但这本书让我明白了不少东西,书中开头经常提到愚公的做法,以愚公移山的过程向我展示了编程的本质:顺序、分支、循环。我也看到了书中所表述的编程的核心:怎么把事儿干好、合作的重要性。
之前做作业,我基本就是“干就完了”,感觉懂了就开始写代码了。看完这本书后我也感受到其实这样对编程能力的提升几乎没有。书中所述:“编程的第一要务是先把事情分析清楚,事件先后的逻辑关系和依赖关系搞清楚,然后再去代码实现。一接到任务就开始Coding的程序员,通常就是加班最多的程序员”。这句话让我联想到我完成作业时的场景,那时完成一项作业就要花四五个小时甚至更多,这也是印证了书中的话了,假如提前把事情分析清楚又何必浪费那么长时间呢。现在想想,纯粹是瞎忙活,一点计划都没有。
我总是会想到面对大学中需要学习如此庞大的编程语言体系是何其困难,但书中却渐渐给了我可以学习下去的信心,如书中所述其实各种各样的计算机语言是相通的,在已经学会一门计算机语言后学习另一门语言的难度会大打折扣。在我这段时间学习java语言的过程中我发现,其实大多数的代码的结构与作用不说是完全一样,但也是极其相似。这也让我相信编程这件事不是那么难如登天。
关于我为什么我学习了知识而无法做到随拿随用的问题,我也在书中找到了答案。书中提到应该将学到的知识像桌子上的书本一样进行分类整理,常用的放在手边,不常用的就放到书柜中去。如果早一点这样的话我觉得我的作业甚至考试也不会让我觉得如此棘手。
在我编程的过程中难免会出现程序无法完成预想目标的情况,而我在寻找错误是总是胡乱寻找,估计这也是我无法迅速完成作业的原因之一。书中则告诉我:“应该跟随他们,看看他们是如何做的。发现规律,分析这个规律的价值,最后再尝试改变它们的一些负面价值的规律”。也许这样可以让我更迅速地找到程序中的错误,快速地完成任务。
当然书中的内容也教会了我在未来一定会用到的一项技能——合作。书中所述项目如同蚂蚁通过团队协作完成蚁穴的建立。然而如果蚂蚁的群体中有一个蚂蚁放弃团体合作,这个团队就溃散了,蚂蚁用于维护团队运作的“资本”流失了。如果资本没有了,就没了运作,团队的存在就没有了必要性和可能性。那么蚁穴就没有了建立的可能也就是项目就死亡了。由此可见团队中每一个人倾力协作的重要性。
总的来说,《大道至简》这本书给我最大的收获就是帮我快速看清自己的问题,让我可以提出解决办法避免再次掉入陷阱。我决定在以后的编程语言学习过程中:1.拿到问题先进行思考,而不是二话不说开写。2.在学习到新的知识后对所学知识进行分类整合,避免出现学过但是想不到怎么用的情况。3.在完成任务的过程中出错不再盲目寻找,而是寻找其规律将错误根除。4.面对需要团队协作的任务时积极参与团队工作。