我们需要更多的程序员,而不是更好的工具
《30个糟糕的程序员抵不过一款好工具》这篇文章引起了我的注意。仔细阅读之后,对于该作者提出的观点,我表示强烈反对。
我和他的年纪差不多,并且有着相似的初始经验——在TRS-80、TI-99/4A、然后是Windows PC上用BASIC编程。所以,我觉得我有这个资格对他的文章发表一些我的看法。
他在文中这样写道:
时不时地我们可以听到有人在说,我们需要更多的程序员。现在的孩子应该在学校里就学习编程。编程的地位就应该像曾经的写作文一样。
……
如果你硬是要将更多的人塞到某一行业中去,那么唯一会流动的群体只会是那些平庸的甚至是更低水平的人群。但是这样一来,最终只会降低该行业的平均技能水平。
如果按照作者的想法,我们可以推论出世界上每个编程能力“高于平均水平”的人已经都是程序员了。因此,再走进来一个,才能保证他的水准一定低于平均水平,才能必然降低整体技术水平。
但是这在现实世界明显是不可能的。编程是一个不怎么性感的技能,还有厌女症和年龄歧视等众所周知的问题。很多人可能有着令人难以置信的天赋,但却从来没有写过代码,因为他们不符合“白人/亚洲人/印度人”这种人为贴上去的标签。普及编程才能让更多的人发现他们喜欢和擅长的东西。所以,“我们需要更多/更好的程序员”,这是第一点,也是非常重要的一个论据。
几乎每个人都会认为随着时间的推移工具变得好多了。事实真的如此吗?
……
想象一下,如果这样的情况发生在今天。给一个14岁的从未使用过计算机的人一台还在包装盒中的电脑,看看他需要多少时间才能写出自己的第一个程序。我猜啊,他要么只需要几周时间要么就根本完不成。
好吧,比如说我们要写一个简单的井字游戏,需要安装javascript、浏览器和文本编辑器(还有教程,告诉你如何操作)。的确,这有点复杂。
哦,等等。哈哈,原来这些在PC/Mac/Linux机子上都已经安装好了。
JavaScript在很多方面都远远优于BASIC。当你和HTML互动时,可以免费获取更多的图形表现。只需点击右键(view source)就可以拥有成千上万个其他JavaScript程序的源代码。这是一个简单的编程入门,如果那个14岁的少年喜欢的话,他还可以朝着汇编语言、编辑器、数据库和注册工具等等等等方面扩展。
而这仅仅只是一个开始。试想一下,如果给你一个这样的挑战:请为嵌入式设备创建一个易于安装的视听应用,并且此嵌入式设备一方面需要能与触摸传感器交互,另一方面还可以传送压缩的声音数据到设备的音频驱动程序中。有木有毫无头绪的赶脚?
我在几年前开始学习如何在Android上写程序。先将我的手机通过USB与计算机相连,下载SDK,参考了一些示例代码,然后在大约4小时之后,我写出了一个能在我的手机上运行的原型音板app。这再次印证了我们需要更多/更好的程序员。
如果这个世界每个人都有编程天赋,那么《30个糟糕的程序员抵不过一款好工具》一文的作者的确言之有理,但是首先我想问的是,现在我们到达那个美好彼岸了吗?