为什么我是一个程序员

我最近想了很多关于为什么以及如何我会选择成为一名程序员,在这种情况下,我发现了一个事实:截止下周,我就将要写了大半辈子软件了,实际上,想要弄明白原来做程序员的决定过程是有些困难的,因为说实话,对于这么早早成为一名程序员,我并没有太多的回忆。

也许这些岁月正说明了什么样才算是顶级的编程。我10岁的第一次接触编程(当然这并不包括早前写HTML, 和复制粘贴Perl脚本的经历, 因为他们常常都不算作一种正规的编程经历,笑)。从那以后的几个月间, 我就已经发布了我的第一个开源项目, 它大概有 20000 行那么多。

事实上,我确信那是20,000行丑陋的代码。但是它能工作,我感到它是如此有魔力。还有什么其他的地方能够让孩子能够在之前没有经验、没有导师和教师、仅有开放的因特网的情况下,在一年内创造一些有很高自然价值的东西,比如一个功能完备的公告板,并且之后还有人使用它?

快进10年,传奇继续。一个粗略的统计显示我个人已经编写和分发了几十万行代码,并且写了10万行以上的没能见到阳光的代码。比代码行数更有趣的是,我直接编写的软件帮助人们获取了数千万美元的财富。它们运行在上亿台电脑上。它们当中的一些被调用了上千亿次。

做个预期,如果我选择做一个律师,或者医生,或者一些其他的受认可的专业, 在我的职业生涯中,到目前为止我很可能谁也帮助不了。并且等不到5年,我可能已经离开法律或者医学学校了。

程序设计中最令我感兴趣的地方的是具有协同工作能力,然而却独立完成任务。这是有趣的,因为你可以在拥有一个明确的想法下,仅用一个周末的时间,独立制作出一个简单的Web应用程序,然后作为一个团队协作开发,使其成长到一个更高的水平,也许更重要的是,这种独立工作的能力,可以让你在围绕合作的领域,不断练习和重复达到一个更高的水平,甚至超越专业人士。

如果由同一个人进行软件的设计和实施,那么软件反馈周期则产生在那人的思维中。即便产品经理们有同样好的点子,他们也很可能不能完成的和他们一样多。

我认为这是在程序设计领域一个经常被低估的方面,而不仅仅是围绕在 产品经理和工程师的情景下。人们喜欢争论,如果程序员们将会继续从事自己的职业,是否程序设计将成为一种固有的技能,就像数学或者语言那样,可以说,随着越来越多的产业的决策依赖于数据驱动,从科学到市场营销,一个懂得 如何程序设计的专家,将会比那些不会程序设计的专家,更加简单有效在其所研究的领域进行实践。

当你这样想的时候,你可能会争辩说:没有人会去研究“如何成为一个程序员”,这样的想法甚至根本不会存在。但是,我想说:编写代码是很容易的。在我脑子里,代码比我讲的英语都要流利——设计数据,组织代码,写一些逻辑语句——不过是这些事情而已,就像我洗盘子和骑自行车一样,我要做的是构建一个帮助人们取得成功的产品。要知道:了解需求、找到用户的需求并且将那些抽象模糊的想法变成实际的产品才是最难的。

总之,编程总是有些乐趣的,我希望这篇文件可以激发那些曾经考虑编写程序而又放弃的人继续编写程序,尤其是这个世界非常需要编程的今天。开始写代码,并且开源你的代码,不要害怕错误。不管什么事情,总是有一些错误的。如果你需要帮助,联系我。

相关推荐