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

昨天晚上,个人一个老朋友在邮件里问我:程序员

打扰了。犬子考入肯尼索州立大学,有志于攻读计算机科学学位,可是有两年课程,他不太喜欢上,为此而纠结。亚特兰大有三所学院只专一于技术,提供 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/...
相关文章
相关标签/搜索