Skip to content
On this page

图 0

什么是 Hello World?

什么是 Hello World?这个问题如果在我刚刚进入代码这一行的时候来问我,我可能会说,就是一段代码,一个最简单的程序而已。但是十几年的程序员生涯过来,现在再让我认识 Hello World,它真的不是仅仅一段代码。

正如婴儿出生后的第一声啼哭代表了他来到了这个世界,并且是活着的。Hello World 也是一样的,这是一个程序员在程序世界的第一声问候,代表了他来到了这个世界,并且是活跃的。

现在很多学校教代码都喜欢使用线上的集成环境,在网页里直接编写代码,从不告诉你代码是怎么跑起来的,代码环境是如何搭建的。这是不对的,没有搭建运行环境的过程,你就不曾真正来到这个世界,没有亲手让你的 Hello World 从 0 开始运行起来,你就一直是一个门外汉。

我并不反对线上环境,相反,离开一线代码开发之后,我更多地使用 notebook 来写 Python。虽然我之前是一个前端开发,更加熟悉 JavaScript 和 TypeScript,但是,notebook 写 Python 真的太棒了。话题扯回来,我们生活在这个世界的人,叫一声“Hello”太容易了,就像我们作为程序员看待 Hello World 一样,这简直太容易了,容易到让人编程界开了玩笑——“说我精通 11 门编程语言,其实就是指会写 Hello World”。但是这并不好笑,写一个代码很简单,但是让代码跑起来却没有那么简单。

例如 Java,现在有很多 Java 程序员,不知道一个 sayHello.java 如何运行,不知道如何安装 JDK,不知道什么是环境变量,不知道如何使用 javac 来编译文件。他们在 IDE 里面写一个 main 函数,点击运行,然后自然就输出一个字符串,然后不屑地表示,这太简单了。等到他写完了蹩脚的代码,让他去 Linux 上部署服务的时候,他却叫嚣着要安装一个 IDE,否则他的代码无法运行。这看起来像笑话,但是确实是真实发生的事情。

再例如,现在中学都开始如火如荼地教 Python,学了一个学期,不知道 py 文件怎么运行,不了解运行环境,不知道什么是虚拟环境,不知道本地的 Python 如何安装和配置,如何通过安装工具包来扩展功能,更别说什么 notebook 了。学生要写代码,就得上网,去网站上打开网络环境,他的代码只能在那里运行,而且只能在那个环境运行,因为离开了那个环境,工具库都是不全的。这不是学编程,这和学奥数也没啥区别,就是练习一下解决问题的思路而已,不是说没用,但是没有必要。学生们想用 Python 解决问题的时候,不能随时随地地用,这样的工具,等于没学。

语言是交流的工具,电脑是解决问题的工具,我们通过编程语言来控制电脑,让电脑为我们解决问题,这是我们学习编程的重要目的。所以,只有我们能顺畅地用编程语言来解决问题的时候,我们的编程语言才算是没有白学。

打开一个网页,发现想搞点事情,于是顺手打开调试窗口,在里面用 JavaScript 快速地修改页面内容,获取那些所谓的保护内容。想到一个数学问题,顺手打开 notebook,一边用 markdown 写文档记录思路,一边用 Python 来解题,随手就可以运行起来,看看自己的思路是否正确。

或许 AI 的时代马上就要到来了,我们不需要使用那些晦涩的编程语言来和计算机交流了,但是,AI 其实也是一个环境而已。在这个 AI 的环境里,我们依然需要学会和 AI 交流的语言,也就是现在很火热的 Prompt 工程。虽然 AI 可以理解人类语言,但是,人类的自然语言存在很多歧义,特别是文字输入,会削弱语气和感情的表达,这让 AI 很难把握问题的本质。因此我们要学会准确地表达需求,让 AI 知道你想要什么、你现在有什么、想得到什么,以及以什么样的方式得到。这其实就是一种新的编程语言而已,正如我们这些用高级编程语言(如 Java、Python、C++ 或其他)的人看待从前那些写汇编的程序员,也如那些写汇编程序的人看待那些用纸带穿孔来编写程序的人一样。这是编程语言的又一次进化,人类和计算机,即使进化到用自然语言可以交流,那你对 AI 输入的第一个 Hello 和 AI 回复你的第一句“你好”,也就是一种新的 Hello World。这简单的对话代表了你已经链接了 AI 的世界,你们可以畅快地交流了。

但如果你是用 ChatGPT、Bard 这样的线上服务,那么你和 AI 交流的环境也只能限制在这些应用里。如果你学会了用 API 来调用这些 AI 服务,那么你又进化了一次,你可以让 AI 做更多的事情。如果你有能力部署自己的模型,那么你将再次进化,你拥有了一个私人助理。如果你不仅可以部署自己的模型,还可以对模型进行微调,还能附加知识库,那么恭喜你,你拥有了一个私人定制的助理。所以,你对环境的掌控程度决定了你在这个环境里的话语权。

以上,我希望每一个程序员都能明白环境对编程的重要性,环境才是程序的核心,是程序运行的根本,掌握环境才是掌握编程的根本。

愿今后的每一个 Hello World 都运行在你可以掌控的环境里。

不畏浮云遮望眼,自缘身在最高层