每个计算机专业的学生都熟悉这套流程:拿到作业,在笔记本上用localhost写完代码,把文件夹打包压缩,赶在午夜前提交。只要代码在自己屏幕上能跑起来,就能拿个A,然后翻篇。

然后你开始实习,或者试着给真实用户做一个真实的应用,现实会迎面撞上来:

打开网易新闻 查看精彩图片

在学校里,你的代码是临时的。在真实世界里,你的代码得活下去。

做实习、写全栈软件的这半年,教给我的实用工程经验,比多年课堂听讲加起来还多。下面这5条,是大学从没告诉过我的。

代码能跑,只是完成了一半

在学校,代码能在你笔记本上跑通,任务就算结束了。

在真实世界里,写代码只是战斗的一半。把它弄到互联网上——也就是部署——才是真正工作的开始。

第一次尝试部署项目时,所有东西都崩了:

学校教你如何在本地写代码,行业教你如何让这些代码真正活在互联网上而不出问题。

真实用户不会按剧本走

大学作业给你的数据是干净的。每个模拟用户都会正确输入自己的名字,没有字段是空的,数据库调用从不会失败。

真实用户不是这样:

写真实应用教会我写防御性代码:你得做加载界面、错误弹窗和备用方案,这样应用才不会在真人一碰的瞬间就崩溃。

聪明的代码,在职场是噩梦

大学偏爱复杂的数学和巧妙的算法,它让你觉得“好代码”必须看起来复杂。

但在真实工作中,聪明的代码是噩梦。

没有哪个资深开发者愿意读一个被塞进一行晦涩JavaScript里的十行函数。他们想要的是命名清晰、一眼就能看懂的代码。如果别人(或者凌晨两点的未来的你)没法轻松读懂你的代码,那它就不是好代码。

你接手的不是空白文件夹

在学校,每个项目都从空白文件夹开始。每一行代码都是你自己写的,所以你全都清楚。

在真实世界里,你会被丢进一个庞大的代码库,里面有成千上万行代码,写它们的人两年前就离职了。

学会打开一个已有的项目、追踪数据如何流动、在不弄坏另外三个功能的前提下修好一个bug,是一项极其重要的技能。大学几乎从不为此做准备。

把东西弄坏,才是成长的方式

学校让你对犯错充满恐惧,因为一个bug会拉低你的绩点。

在真实世界里,把东西弄坏才是成长的方式。

我最大的突破,不是来自某次作业拿高分,而是来自弄崩了一次构建、在压力下保持冷静、翻日志把它修好,并确保自己再也不犯同样的错误。

计算机学位给你一个扎实的基础,但真正交付项目才能让你成为工程师。

如果你还在大学里,担心成绩和实际技能之间的差距:别再等课程追上来了。做小项目,试着把它们部署上线,去实习,别怕把东西弄坏。