1978年,David写下人生第一段程序时,手边没有IDE,没有Git,没有Stack Overflow,更没有一个随时待命的AI助手。他拥有的全部工具,是一台终端、一个编译器、一本手册,以及一个需要解决的问题。而最核心的一点是:他必须真正理解那台机器。
那个年代的编程,和今天软件开发的样子几乎处在两个世界。David会花上好几个小时阅读文档,在手指碰到键盘之前反复推演。计算机很贵,算力时间更贵。一次出错,不是屏幕上出现一条红色下划线那么简单,它可能意味着要再等一轮运行机会。每一次敲击,都带着成本。
![]()
从机器语言到高级语言:第一层抽象已经发生
其实在David入行之前,编程语言就已经开始把人从原始机器指令里往外拉了。那个年代的语言已经允许人们用比机器码高得多的层级来表达问题,人不再需要逐条对着硬件说话,但距离真正“不用理解机器”还远得很。
有时候出了问题,David无处可躲。机器完全按照他告诉它的方式在执行,麻烦在于,他并不总是清楚自己到底“告诉”了它什么。于是他学会像机器一样思考,把问题拆开,一步一步、一条指令一条指令地推进。失败了就追踪,变慢了就排查,行为异常就继续往下挖。那时的编程,像一场和机器的对话,只是这场对话极其单向:David下达指令,机器照单执行。
环境开始替程序员分担更多
随后环境一点点变了。编程语言越来越强,库出现了,框架成长起来,编译器不断进步,操作系统把越来越多的硬件细节藏到身后。David不再需要理解处理器执行的每一条指令,他可以在更高的层级上工作。但真正重要的变化,发生在编程工具本身。
后来有一天,David打开开发环境,感觉有些不一样了。他不再需要在文本编辑器、编译器、调试器、文档和命令行之间来回切换,它们正在融合成同一个环境。这个环境能理解整个项目,能标出错误、提示代码、导航依赖、运行测试、调试应用,甚至补全他正在输入的内容。计算机不再只是执行他的程序,环境本身开始帮助他写程序。
工具变了,核心责任没有消失
David写的软件并没有发生根本性的不同,改变的是围绕在他身边的环境——环境本身成了他的工具。这个区分很关键:技术未必改变了软件是什么,它改变的是生产软件所需要的努力量。程序员的核心责任仍然摆在那里:理解问题、设计方案、写出代码。只是越来越多的环节,被工具接了过去。
如果把时间轴再往后拉,变化会更剧烈。AI助手坐在旁边,不只是补全一行代码,而是可以生成整段实现、解释陌生代码、提出重构建议。工程师不再需要亲手追踪每一个符号,也不必在每一次报错时从零开始排查。过去那种“像机器一样思考”的能力,似乎正在被重新定义。
当AI坐在旁边,工程师还剩下什么
但问题也随之而来:当环境越来越聪明,工程师的价值到底落在哪里?David当年的困境是“不知道自己对机器说了什么”,今天的困境可能是“不知道AI替自己做了什么”。工具越强,人越容易失去对细节的掌控。可如果连自己交付的代码都说不清来龙去脉,那工程师和操作员之间的边界,就开始模糊了。
从1978年到今天,编程的形态变了很多次。终端变成了IDE,手册变成了搜索引擎,单打独斗变成了协作平台,现在又多了AI。但有一件事始终没变:真正能走远的工程师,不是只会使用工具的人,而是知道工具在替自己做什么、以及为什么可以信任它的人。
David当年必须理解机器,因为机器不会替他思考。今天的工程师同样需要理解系统,只是这个“系统”的范围更大了——它包括了AI、框架、依赖、平台,以及所有那些看似自动、实则由人设计出来的层次。工具可以替你写代码,但替不了你判断什么才是值得写的东西。
所以“现在成为工程师意味着什么”这个问题,答案也许不是变得更轻松,而是变得更需要判断力。过去你要知道每一行代码为什么这么写,现在你要知道哪一段可以交给AI、哪一段必须自己盯死。过去你怕机器不听话,现在你要怕自己太听话——太依赖工具,反而忘了最初那个需要被解决的问题。
David的故事没有给出一个标准答案,它只是把变化摊开给人看。从没有IDE到AI坐在旁边,工程师的工作方式被一
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.