天才大师与他高效的笨蛋仆人
Source: Dev.to
编程对话
“为什么!为什么!呃!”
我的嘴角上扬,看到 Sanni 抓起一把自己的头发并用力拉扯。我在椅子上往后靠,盯着她眼中那凶狠的光芒,她正怒视着屏幕。
她很沮丧。非常沮丧。
就在那一瞬间,我被拉回到我开始学习 Python 的时候——我的第一门编程语言。是的,那时的我和 Sanni 一模一样。
有时编辑器里血红的报错行会让我的心跳加速,仿佛机器内部有什么东西碎裂了。还有时候根本没有任何红色提示,但我自认为写得很好的代码却返回了完全错误的结果。
怎么会这样?
我给电脑下了一条指令,却得到全然不同的结果?
很多时候,我只会垂头坐在椅子上,盯着屏幕,茫然不知所措。说实话,那时的我想法既简单又苦涩。
电脑太残忍了。
她尖锐地呼出一口气,猛地合上笔记本电脑。
“我觉得我再也做不下去了。”
“为什么?”我歪着头问。
她看着我,眼中闪过一丝愧疚。我懂那种表情。她在考虑放弃,却又为自己有这种想法而自责。
就在昨晚,她还充满灵感。她醒来时眼里有火花,今早冲到书桌前,直接投入到她的编程课程——JavaScript。
但现在呢?
那股火花去哪儿了?
她低头盯着自己的手,玩弄着指尖。
“听着……”我把手中的杯子轻轻放在面前的小桌子上。“编程并不是靠灵感驱动的,而是靠韧性。”
她抬起头,咬着下唇。
“它会考验你的耐心。考验你的智商。只有顽强的人才能坚持下去。”
这也是为什么每当我看到有人对编程充满热情时,我会问他们为什么。你需要一个切实的理由。只要有了这个,你就准备好了。
现在我们只剩下一个谜团要解开:为什么电脑似乎不喜欢你。为什么那该死的 Python、JavaScript,或是你正在学习的任何语言,总是把错误抛向你。
主人和仆人的类比
“你知道吗?”我向前倾身,搓着手掌。“有一个天才主人和他的仆人。仆人高效、极其快速,却盲目服从。他只做主人叫他做的事,既不多也不少。”我脸上露出淡淡的笑意。“他可以在一秒钟内解一千道数学题,但如果你只叫他‘把数字相加’,而不告诉他是哪几个数字,他只会盯着你,尖叫起来。”
Sanni 在椅子上扭动身子,目光紧盯着我,翠棕色的眼眸里闪烁着好奇。
我向后靠。
“没有任何东西能让他背叛主人,”我继续说,“他是主人本身的映射。如果你看到他做了蠢事,那是主人疏忽了;如果你看到他做了聪明的事,那是主人聪明。”
Sanni 眨了眨眼,笑意悄然爬上脸颊。
“为什么会这样?”她抱着胳膊,眯着眼看着我。
我笑了。
“因为他严格按照主人指示的去做。就是这么精确。他不会迈出一步,除非那一步已经为他写好。”
“哇,”她笑道,“可是为什么?”
我耸耸肩。
“这就是仆子的天性。”
她的嘴角扬起一抹笑意。
“而那个主人就是你。”
她眉毛一挑,歪了歪头。
“什么意思?”
“那台电脑……”我指向她的笔记本。她顺着我的手指看去。“那就是你的仆人。它抛出的每一个错误,都源自你给它的指令。”
我停顿了一下,让她消化这句话。
“我不是在指责你,也别害怕,”我拍了拍她的肩膀。“你不会因为犯错而损坏笔记本。是的,电脑会用吓人的方式提醒你出了问题,但它不是在恐吓你,而是想帮助你修正指令。”
Sanni 重重呼出一口气,肩膀垂了下来。
“听着。电脑所做的一切,都是严格遵循你告诉它的内容。它不会自行添加,也不会自行删除。”我笑着再次举起咖啡杯。“这就是我爱它的原因。它是这个世界上唯一可以让你以生命相托的东西。它永远不会背叛你。”
她把脸埋进掌心,然后把手从颈后拖了回来。
“我们怎么才能成为朋友?我根本不懂它。”
“这正是你需要学习它的语言的原因,”我轻声说。“就像不学法语就听不懂法语一样,你和电脑之间的误会,是因为你还在学习它的语言。”
“你需要足够了解它,才能清晰地传达指令。让它恰如其分、精准地完成你想要的每一步。”
“如果我连步骤本身都不知道怎么办?”
我露出一抹狡黠的笑容。
“这正是程序员的职责所在。知道步骤是你的工作,语言只是你传达这些步骤的工具。”
我点点头。
“你可以用不同的编程语言写出相同的步骤,它们都会实现同样的功能。这就像用不同的人类语言说‘播放电影’一样。”
Sanni 的眼睛睁大了。“真有意思!”
她的脸上重新燃起了活力。
“但你不必掌握所有编程语言,”我摇头,指着她的手指示意。“只需要学习那些适合你目标的语言就行。”
我们之间的沉默只被她桌上的滴答钟声打破。
“仆人映射主人,所以……”
“我必须要聪明吗?”Sanni 低声问。“如果我不聪明怎么办?”
我笑了。
我曾经也和她一样,以为自己很笨,觉得编程不适合自己,甚至哭泣、想要放弃。
但我花了将近一年的时间,只为买下那台笔记本。我的兄弟和家人对我寄予厚望,我怎么能对他们说我放弃了?
后来有一天,我偶然看到一段永生难忘的视频。它恰好在我最需要的时候出现。那天,我对自己说:如果我能学会编程,任何人都能。
我轻轻握住 Sanni 的手,抚摸她的指尖。
“有些人和我一起起步,他们比我更聪明,却缺乏韧性。”我柔软地捏了捏她的手。“这并不是关于……”
“这不是关于你有多聪明,而是关于你有多饥渴。”
她的眼眶闪着泪光。
“编程能磨砺你的思维。它迫使你深入思考。你将要解决的大多数问题,其实都可以用笔和纸自己完成。”
“电脑只是把它们做得更快。” 我轻轻握紧了她的手。
“下达指令不需要天才,只需要具体。如果仆人迷路了,并不是因为你笨,而是因为你画的地图缺少了一个转弯。”
她笑了,泪水逐渐干了。我松开她的手,向后靠去。
她转向自己的书桌,慢慢打开笔记本电脑,仿佛它会咬她一样。
我轻笑出声。
她转过身来,对我微笑,脸色重新恢复了血色。
“谢谢你,Oyin。”
我举起杯子眨了眨眼:“去用那台电脑吧,” 我说,“别让他吓到你。力量就在你的指尖。”
我希望这个故事能帮助初学者以更清晰、没有压力的方式看待编程。深深影响了我学习之路和心态的那段视频是:
如果你发现有什么可以纠正或改进的地方,真诚期待你在评论区的反馈。
这是我第一篇以故事形式写的编程文章,期待听到你的想法。
感谢你抽出时间阅读。
