这本书第一章《务实的哲学》就给我带来了巨大的冲击,它不像教科书那样讲语法,而是在讲“心法”。
1. “我的源码让猫给吃了” – 责任感的觉醒
书中一开头就提到“提供各种选择,不要找蹩脚借口”。这简直是对我上学期C++大作业的精准吐槽!当时一个指针错误导致程序崩溃,我第一反应是“编译器有问题”或者“测试用例太极端”。但现在想想,这就是在推卸责任。一个务实的程序员,应该首先假设问题出在自己的代码上。就像Java里NullPointerException,不能怪别人传了null,而应该思考为什么没做检查。这种责任感是成为专家的第一步。
2. 软件的熵——从寝室桌面到代码架构
“破窗理论”太形象了!我的电脑桌面就是最好的例子。如果一开始就乱放几个文件,很快就会变得一团糟,因为觉得“再乱一点也没关系”。代码也一样。在C语言里,如果有一个全局变量被到处乱改,很快就会失控。在Java里,如果我们不遵守封装性,随意public所有属性,就等于给代码开了无数个“破窗”。这提醒我,无论多小的坏味道,都要立刻修复,否则熵增会不可逆转。
3. 石头汤与煮青蛙——项目中的务实策略
这两个故事对我启发最大。“煮青蛙”告诉我们不要对缓慢的变化麻木。比如在C++项目中,为了赶进度, copy-paste 了一段代码,想着“以后改”,结果“以后”永远没来,导致了可怕的重复。这就是温水煮青蛙。
而“石头汤”是积极的策略。这学期我们有个小组作业,要开发一个迷你图书管理系统。与其一开始就设想一个完美但庞大的系统(可能把组员吓跑),不如像我学到的这样,先快速搭一个能运行的核心功能(比如“增加一本书”),就像那锅白水。然后拉着组员一起,“看,我们已经有了基础,再加个删除功能怎么样?再加个查询……”。这样,大家的热情和创意(“胡萝卜”、“牛肉”)就被加进来了,项目就像石头汤一样越来越丰富。这是一种启动和推动项目的智慧。
4. 知识组合与交流
“每年学习一门新语言”和“持续阅读”的倡议让我很有共鸣。学完C/C++的底层控制后,再学Java的自动内存管理和丰富的生态,感觉视野开阔了很多。我计划下一步去了解一下Python,体验动态语言的魅力。同时,我也要开始坚持写技术博客,就像这些笔记一样,把输入的东西输出出来,才能真正内化。
总结与联想:
这一章与其说在教技术,不如说在塑造一种职业态度。它把我从“完成作业”的学生思维,拉向了“创造价值”的工程师思维。联想到Java学习,老师一直在强调设计模式和解耦,其根本目的不就是对抗“软件的熵”吗?接下来的编程中,我会时刻用“破窗理论”警醒自己,保持代码的整洁。