文/一个翻旧代码翻出整个青春的人
上周末整理电脑,准备把旧文件归档到移动硬盘。打开一个叫”old_works”的文件夹,里面密密麻麻全是各种子文件夹——”c_test””java_practice””web_play””python_learn”。点进去,每一个里面都有一个Hello World。
有些是C语言的,有些是Java的,有些是HTML文件,有些是Python脚本。最早的创建时间是2009年,最晚的是去年。跨度十五年。
我靠在椅背上一个一个点开看。不是看代码本身——那几行字我闭着眼都能敲出来。我看的是文件属性里的”创建时间”和”修改时间”。那些时间戳像一串密码,对应着我记忆里的某一个年份、某一个季节、某一个场景。
我忽然意识到,我写过的每一个Hello World,其实都带着当时那个人的体温。
2009年的第一个:宿舍里,蓝屏,紧张
Windows XP,Turbo C,蓝底白字的界面。那是我人生中第一个编程环境。
室友在隔壁床上睡觉,我戴着耳机,屏幕亮度调到最低,怕键盘声音吵醒他。照着课本上抄代码,手指僵硬,按键盘之前要用眼睛确认一下位置。打完了之后不敢按运行,翻来覆去检查了三遍,确认每个括号都配对、每个分号都是英文的。
然后按下Ctrl+F9。屏幕闪了一下,输出一行”Hello, World!”。
我紧张得没敢出声,但是心里像被什么东西撞了一下。那种感觉很微妙——就像你对着一个黑洞喊了一嗓子,然后它回应了。那个回应没有任何感情色彩,就只是一行字。但你清清楚楚地知道,那个黑洞听懂了你。
那个Hello World,带着十九岁的紧张、窃喜和一点点的害怕。害怕这只是一个巧合,害怕关掉之后再也弄不出来了。
2011年的第二个:实验室里,第一次用Linux
那年在做课程设计,要用Linux环境。机房里有几台装了Ubuntu的机器,桌面是橙色的,终端是那种看起来很高深的白色字体。
我在终端里敲vim hello.c,然后发现自己不会用Vim。按了半天键盘,屏幕一动不动。旁边的同学看了我一眼,说”按i才能输入”。我按了i,终于能打字了。然后写完了不知道该怎么保存,他又说”按Esc然后冒号wq”。
我照做了。用gcc编译,运行,终端里出现了”Hello, World!”。
那个瞬间的感觉是:原来计算机的世界里,除了Windows还有另一个江湖。这个江湖里的人用命令行交流,用奇怪的快捷键操作,说一些我听不懂的话。但我用那行最简单的代码,拿到了入场的资格。
那个Hello World,带着二十一岁的好奇、手足无措和对未知领域的敬畏。
2013年的第三个:面试现场,白板,手写
校招面试。技术面第一轮,面试官让我在白板上写一个Hello World。
我以为听错了,抬头看他。他说”就写这个,用你熟悉的语言”。
我用Java写的。写了六行,包括类定义和main方法。写完放下笔,看着他。他说:”你写完了之后为什么不检查一遍?”
我低头看,发现把String写成了string——小写。
那是后来很长一段时间我都没忘掉的一个错误。不是因为面试挂在了这一题上——后来我过了那轮面试。是因为那个”小写s”让我明白了一个道理:越简单的东西越考验人的认真程度。你觉得自己稳拿的分,往往最容易丢。
那个Hello World,带着二十三岁的紧张、懊恼和一个记到现在的教训。
2015年的第四个:新工作,公司电脑,第一次用Mac
入职第一天,IT给了一台全新的MacBook Pro。我之前只用过Windows和Linux,没用过Mac。打开终端的时候甚至不知道ls和dir哪个能用。
坐在工位上,周围全是陌生的同事,大家都在敲键盘,我不好意思问”这个怎么装环境”。于是自己摸索着装了Homebrew,装了Python,然后打开文本编辑器写了第一行print(“Hello, World!”)。
在终端里运行,看到了输出。然后我关掉编辑器,开始配置其他开发工具。
那天的Hello World只花了一分钟,但它在告诉我一件事:不管换到什么环境,那个从零开始验证通路的能力,是我随身携带的。环境变了,工具变了,但”写一行代码让它跑起来”这条肌肉记忆还在。
那个Hello World,带着二十五岁的谨慎、独立和一点点”我能搞定”的底气。
2018年的第五个:教别人写,站在后面看
那年在社区做志愿者,教零基础的学员写第一个程序。
一个四十多岁的姐姐,坐在电脑前,手指有点抖。她每打一个字符都要在键盘上找半天。我在旁边站着,不说话,等她打完了再说。
她花了大概三分钟敲完了print(“Hello, World!”)。然后我告诉她按回车。她按了,输出出现在屏幕上。她转过头看我,眼睛里那种光,跟我2009年在宿舍里看到的一模一样。
那一刻我意识到,我从”写Hello World的人”变成了”看着别人写Hello World的人”。位置变了,但那个输出的力量没有变。它还是能让一个人产生”我能行”的念头。
那个Hello World,带着二十八岁的耐心、分享的快乐和被印证过的确信。
2022年的第六个:给女儿看,在一个iPad上
女儿幼儿园毕业那年,她问我”电脑是怎么工作的”。我说”你等我一下”。
我在iPad上下了一个Python在线编辑器,然后握着她的手,让她一个一个字符地敲:
p r i n t ( ” H e l l o , W o r l d ! ” )
每敲一个字符,我告诉她这个符号叫什么、为什么要这么写。她似懂非懂,但很认真地一个一个按。最后按了运行,屏幕上出现那行字。
她看着屏幕,说:”它认识我了。”
我说:”对,它认识你了。”
那个Hello World,带着三十三岁的温柔、传承的触动和一个父亲最想给孩子的礼物——不是教她编程,而是让她知道,机器可以听懂人的话,而她有办法让机器听话。
那些Hello World,拼成了一个完整的我
现在回到那个”old_works”文件夹,我看着里面十几个Hello World,每一个都在说同一句话,但每一个都说了不一样的事情。
最早的那个在说”我紧张但我成功了”,后来的在说”我已经不需要紧张了”,再后来的在说”我可以把这种成功带给别人了”。
代码一模一样,写代码的人变了。从紧张到从容,从独行到共行,从学习者到传授者。那些变化被一行不变得Hello World忠实地记录了下来。
而我在这个文件夹里坐了整整一个小时,最后把它关掉了。没有删任何东西。
因为我知道,再过十年我还会打开它。到那个时候,我会看到更多写在其他年份的Hello World,每一个都带着当时那个人的体温——可能是四十多岁的我写的,可能是某个深夜为了调试某个古怪问题写的,可能是又一次教什么人写的。
它们会在那里,一路排开,像一列安静的站台。每一个都指向一站,每一站都有一个”我”站在那里,刚刚写完他的第一行代码。
我关掉文件管理器的时候,脑子里就剩一个念头:真好啊,我写了这么多遍Hello World。
每一遍,都算数。