为什么我是一个程序员

为什么我是一个程序员

返回原文英文原文:Why I'm a Programmer

I’ve been thinking a lot lately about why and how I chose to be a programmer. In doing so, I discovered an interesting fact: as of next week, I will have been writing software for more than half of my life. That actually makes figuring out the original decision process somewhat difficult, because honestly I don’t have too many memories that predate being a programmer.

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

 

Perhaps this sheer volume of time illustrates rather poignantly how great programming is. When I first started programming, I was 10 (let’s not count writing HTML and copying and pasting Perl scripts around from a few years prior to that, since that only barely counts as programming). Within several months, I had released my first open source project with some 20,000 lines of code for the world to see.

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

 

 

Now granted, I’m sure that was 20,000 ugly lines of code. But it worked, and felt magical. Where else can a child create something with as much intrinsic value as a full-fledged bulletin board in under a year with no prior experience, and no mentors or teachers except the open wild internet, and then have people make use of it to boot?

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

 

Fast forward a decade and the mystique persists. A rough count suggests I’ve personally written and shipped several hundred thousand lines of code in my life, and written a hundred thousand more that’s never seen the light of day. More interesting than lines of code, though, is that software I’ve directly written has helped people capture tens of millions of dollars of wealth. It’s been run on hundreds of millions of computers. Some of it has been invoked hundreds of billions of times.

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

 

To put this in perspective, if I had chosen instead to be a lawyer, or doctor, or some other “accredited” profession, I very likely would’ve helped a grand total of zero people in my career thus far, and couldn’t for another five or so years given that I (likely) wouldn’t even be in law or med school yet.

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

 

What intrigues me most about programming is the ability to work collaboratively, yet achieve things individually. This is fun because individually you can punch out a simple web app in a weekend given a well-defined idea of what you’re building, and then grow it to the next level as a team. Perhaps more importantly, though, the ability to work individually allows you to practice and iterate at a higher level than professions that revolve around collaboration.

译者信息

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

 

Stripe co-founder Patrick Collison said it well:

If the same person is designing and implementing, the feedback cycle takes place within that person’s head. Even if product managers have equally good ideas, they’re likely not able to experiment with as many of them.

 

译者信息

Stripe的联合创始人Patrick Collison说得好:

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

I think this is an oft-understated aspect of programming, and not just in the context of product managers and engineers. People like to debate whether programming will become an intrinsic skill like math or language, or if programmers will continue to be their own profession. Arguably as more and more industries depend on data-driven decision making, from science to marketing to finance, a specialist who also knows how to write code will simply be able to practice more efficiently – and therefore get better at their specialty – than one who doesn’t. 译者信息我认为这是在程序设计领域一个经常被低估的方面,而不仅仅是围绕在 产品经理和工程师的情景下。人们喜欢争论,如果程序员们将会继续从事自己的职业,是否程序设计将成为一种固有的技能,就像数学或者语言那样,可以说,随着越来越多的产业的决策依赖于数据驱动,从科学到市场营销,一个懂得 如何程序设计的专家,将会比那些不会程序设计的专家,更加简单有效在其所研究的领域进行 实践。

 

When you think of it that way, you could argue that “being a programmer” doesn’t really exist, outside of maybe research. Writing the code is the easy part. I’d say code flows from my brain more fluently than English does. Laying out data, organizing code, and writing sequential logic statements is just something I do, like washing dishes or riding a bike. My actual job is building products that help people get ahead. That’s the hard part: understanding requirements, determining what people need and want, and taking it from vague idea to production.

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

 

But the programming half of it sure is fun. And in writing this, I hope that maybe I can inspire someone who has considered learning to code to get out there and do it, especially in a market that’s begging for it. Start writing code, open source it, and don’t be afraid to make mistakes along the way. If you need any help, get in touch.

译者信息总之,编程总是有些乐趣的,我希望这篇文件可以激发那些曾经考虑编写程序而又放弃的人继续编写程序,尤其是这个世界非常需要编程的今天。开始写代码,并且开源你的代码,不要害怕错误。不管什么事情,总是有一些错误的。如果你需要帮助,联系我。
posted @ 2015-02-05 12:17  ken.s  阅读(110)  评论(0)    收藏  举报