黑底蓝字的 Turbo C 界面、闪烁的光标、和一行照着黑板抄的 printf("Hello, World");——这是大学机房第一堂 C 语言课的画面。当年觉得"程序就是抄出来的",这个误会花了整整一个学期才纠正。
从"抄代码"到"写代码"的分界线
抄代码的终点是:程序能跑,但改一行就崩。分界线出现在第一次独立解决编译报错的那个下午——把报错信息读懂、定位到行号、理解分号丢了——从那一刻起,代码才从"要完成的作业"变成"可以对话的对象"。
第一学期记住的三件事
- 分号决定生死——C 语言的报错行号永远指向下一行,而真凶在上一行;
- 变量要先声明——当年的不理解,多年后在动态语言里变成了"原来声明是一种自我约束";
- 机房要提前占座——靠窗第三排的机器最稳,这个经验与代码无关,与人生有关。
C 语言教会我的不是语法,是一种"对机器诚实"的态度:你没写的东西,机器绝不会替你补上。
如今
那台机房的机器早就淘汰了,但当年抄代码练出的"逐行阅读"能力,如今用于读日志、读报错、读别人的开源代码——第一堂课教的技术已过时,第一堂课教的学习方法仍在服役。