我不是软件工程师

内容纲要

这段时间在英国遇到的人,挺多人会问别人的工作是什么。起初我跟他们说我是 Software Engineer(软件工程师),但现在我觉得这是一个错误。我不应该再说自己是一个“软件工程师”。

为什么呢?因为“软件工程师”只是我目前做的一部分事情,它并不是我的身份和定义。“我是谁”和“我做什么”,其实完全是两回事。就像《Stardust》里的男主角 Triston 对他曾经追求的女孩 Victoria 说:“我目前在一个 shop 里工作,但我不是一个 shopboy。”

而且人们对于“软件工程师”总有一个肤浅的定义。如果我说我是“软件工程师”,知道一点的人就会继续问:“你具体做哪个方向呢,是 Data Engineering 吗?” 比较明显,人们头脑里目前就只有 AI 和 Data Engineering 这两个方向,所以他们总会这样猜。

虽然我目前的工作是这个,但我不愿意被定义为“Data Engineer”,因为我的学识并不局限于这个领域。虽然这两者我都做过,但世界上不只有 AI 和 Data Engineering。我做过很多其他事情。

几乎没人能明白什么是 Programming Language Research。如果我说我做 PL 研究,他们就会问我是不是会 Python。而且我发现不只是外行这样问,内行也都是这样的。所有的工作职位都很强调你会不会 Python,你会不会 Go,你会不会某种其它具体的语言或者框架……

1997 年我进大学的时候,就有教授告诉我们:“你们应该学的是编程的思想,而不是局限于具体的语言。” 但没想到这个领域直到今天仍然是这个样子。不仅学校里教得越来越肤浅,而且业界的工作也想把你圈在“某语言”的范畴里。就算你用过很多年的 Java,别人也不会觉得你会胜任他们的“C++ 工作”,反之亦然。他们一定要你知道某种语言的细节,把那些都叫做“经验”。

他们没想到的是,所有这些经验都是可以用非常短的时间获得的。从十年前进入 Google 的第一天开始,我就在做这样的事情,一直到今天。从未有任何新的语言或者技术迷惑住我。自称有很多年经验的工程师无法解决的难题,一个个的被我轻松破解。因为我的头脑里存在的是永恒的知识,它们能解释我所看到的一切。

没有人理解真正的“计算机科学家”是什么,没有人理解真正的计算机科学家是完全不局限于任何语言或者系统的。他能够利用最根本的计算原理,解决遇到的任何问题。无论一个语言之前是否用过,他都能拿起来就用。无论一个数据库系统之前是否碰过,都能很快知道它是如何工作的。因为万变不离其宗,精髓的计算机科学知识能够理解所有这一切,甚至更多。

在英国我只遇到过一个人,他了解我做的事情之后,尊敬地称我为“Computer Scientist”。他是一个头发全白的老人,曾经骑自行车到过中国。不是把自行车放在飞机上运到中国,而是先带着自行车到法国,然后沿着欧亚大陆一直骑到了中国。也许只有拥有这样的人生经历的人,才会理解我是谁。

计算机科学其实是最严密的逻辑,这就是为什么我能利用它来学会日语,学会音乐,利用它来破解世界上这么多的秘密。这就是为什么我的课程叫做“计算机科学基础班”,而不是“某种语言班”,我的书叫做《Ground-Up Computer Science》而不是《从零开始某语言》。

给TA打赏
共{{data.count}}人
人已打赏
程序员

用上Parallel让你的.NET应用效率飙升

2023-11-28 23:20:11

程序员

行动产生信息 [译]

2023-12-3 22:19:44

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索