计算机科学:一门失传的艺术

6

昨天晚上,我的一个老朋友在邮件里问我:

打扰了。犬子考入肯尼索州立大学,有志于攻读计算机科学学位,但是有两年课程,他不太喜欢上,为此而纠结。亚特兰大有三所学院只专注于技术,提供 8 到 16 周的沉浸式课程。

在计算机科学领域,对于这种办学形式怎么看?四年制的学位更有价值吗?

今天早上,我即兴回复了他:

呃,我的意见是……我是以两个学位,也就是读了 6 年的计算机科学,还有从业 30 年的经验来说的。换言之,我是过时了的,老顽固。

在计算机领域,老一辈与现代这辈人截然不同。计算机科学过去是(实际上现在也是)深邃且亟需的学科。但是,有两三件事发生了。首先,计算机已经相当普遍。年纪低于 80 岁的人谁还没一台计算机?其次,在 1995 年前后万维网(诞生于 1989 年,若以因特网为人体,则万维网为其颜面)兴起,我们在日常生活中也愈发地依赖它了。再者,过去用于创建应用程序的那些工具变得更复杂了一些,但是用起来更容易,就像驾驭现在的汽车要比驾驭 1905 年的汽车更容易一样。

这一切意味着,现在的「计算机人」的种类要比过去更多了。现在,从未上过编程课的「程序员」繁如过江之鲫。这是好事,也是坏事。

这意味着一个人只需要懂得很少的知识便可以解决一些小问题。但是,这也意味着这个人难成大器。

说实在的,和活在巨人部落里的这些低层次的人共事,我私下里常有挫败感(很少和别人这么说过)。在我看来,他们像是票友或跑堂的,只求掌握所在领域的 5% 的知识,为了搞定几个问题,获得一些乐趣抑或谋生。

这些人使用工具创建日常使用的一些小程序。但是要记住:这些工具本身也是软件。不过,它们的层次远远超越这些人在梦想中所能创造出来的任何东西。他们用着编程语言、编辑器、编译器以及操作系统,但是他们并不清楚如何去创建这些东西,他们甚至都不清楚这些东西如何工作。

在这 20 年里,孩子在大腿上玩弄赛车游戏的手柄,他会说,「看,我也会开车了。每个人都可以开车,你只需要摁这个绿色的按钮,然后说,『载我去沃尔玛』」。我时而隐约感受到这种手柄的存在。

回到计算机上来……我的一个朋友有个 7 岁的孩子,他自学了一个花哨的工具,用它创建了一个 iPhone 手机游戏。没错,是个简单的游戏。但是他所做的事情在 30 年前即便是博士也鲜有能做到的(而且是在非手持设备上)。

在某种程度上,我的抱怨并无不妥。但是在某种程度上,我是个老人,脾气也坏。

有时,我和一些人有所接触,他们的抱怨以及他们所遇到的问题无不暴露出他们已经抵达了他们的知识边界。有时,这会让我震惊。我觉得这些知识应该在他的第一学期的第一门计算机课上就学过了的。不过,我又想起来,这样的人连一门真正的计算机科学课都没上过。

当然了,我的前辈也会用同样的眼光来看待我。在上个世纪 40 年代,要接触计算机,需要拿到电气工程学位才有资格。在 70 年代和 80 年代早期,需要修过科学或工程专业才有资格。在 90 年代,只需要有张银行卡(或者有银行卡的父母)。

顺便说一下,我对硬件知之甚少。我只会用键盘讨生活。曾经我每一次打开计算机要去做点什么之时,会纠结两件事。我只是个搞软件的。我知道有人会为此取笑我,甚至有些老人会有些嘲笑我,因为我不会用电烙铁。

实际上一切依赖于一个人想要做什么。如果你做一个网店、购物车、订单、精美的图片以及社交 App,你不需要去拿一个计算机科学学位,甚至连与计算机相关的学位都不需要。

如果你想制作从未有过的真正有趣且激动人心的东西,如果你想在工业领域中有所不同或对世界作出一点改变,那么你就需要这个学位。如果你想制作底层的人所使用的工具或程序库,你也需要这个学位。

打个比方:若想建造狗窝,只需要会用锤子和钉子就能干。若想成为建筑师,去设计和建造摩天大楼,那么首先需要在建筑学方面拿个学位。但是请(原谅我的坏脾气)不要因为自己会造狗窝就自称是建筑师。

希望这些乱七八糟的吐槽对你有所帮助 :)

若你需要,可以再问我一些具体问题。

祝好,Hal

注:这篇文,在 Hacker News 上引起了激烈讨论,详见 https://news.ycombinator.com/...

如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

载入中...