本文是翻译《Code Simplicity》里的内容,具体内容如下:
The Singular Secret of the Rockstar Programmer
成为明星编程者的奇特秘密
Before all the laws of software, before the purpose of software, before the science of software design itself, there is a singular fact that determines the success or failure of a software developer. This fact makes the difference between the senior engineer who can seem to pick up new languages in a day and the junior developer who struggles for ten years just to get a paycheck, programming other people’s designs and never improving enough to get a promotion. It differentiates the poor programmers from the good ones, the good programmers from the great ones, and the great ones from the “rockstar” programmers who have founded whole multi-billion dollar empires on their skill.
在软件法则、设计目的、软件原理的背后,有一个奇特的事实决定一个软件开发者的成败。它将决定一个高级工程师似乎一天可以掌握一门语言和一个入门开发者努力了十年仍然没有大的长进。它是poor、good、great和成立上亿帝国公司的编程者的区别。
It’s not anything complicated, and it’s not something that’s hard to know. It’s not something that you can only do if you’re born with a special talent or a “magical ability to program well.” There is nothing about the nature of the individual that determines whether or not they will become an excellent programmer or a poor one.
它不是什么生下来就具备的天赋,也不是什么神奇的编程能力,它是由个人的本质决定是否能成为优秀的还是平庸的编程者。
There is only one, singular fact:
The better you understand what you are doing, the better you will do it.
确实有一个奇特事实,
知道你要做什么,为什么这么做,而且,理解的越透彻,你会做的越更好。
Rockstar programmers understand what they are doing far, far better than average or mediocre programmers. And that is it.
明星编程者对他们做什么理解的远比普通或者中等水平的编程者理解的深刻。
All you have to do in order to become an excellent programmer is fully understand what you are doing.
所以,你要做的就是遵循这个事实成为一个优秀的编程者。
Some may say that they already understand everything. The test is whether or not they can apply it. Do they produce beautifully architected systems that are a joy to maintain? Do they plow through programming problems at a rate almost unimaginable to the average programmer? Do they explain everything clearly and in simple concepts when they are asked for help? Then they are an excellent programmer, and they understand things well.
有些人可能会说他们已经明白了一切。考验在于他们是否能应用它。
他们制作出精美的架构系统是否愿意保持?
他们是否以一般程序员几乎无法想象的速度进行编程问题?
当他们被要求帮助时,他们是否能用简单的概念解释一切?
然后,他们是一个优秀的程序员,对事情了解得是否正确?
However, far more commonly than believing that they “know it all”, many programmers (including myself) often feel as though they are locked in an epic battle with an overwhelming sea of information. There is so much to know that one could literally spend the rest of his life studying and still come out with only 90% of all the data there is to know about computers.
然而,许多程序员(包括我自己)常常觉得自己陷入了铺天盖地的信息的史诗般的战斗中。有太多的事情要知道,一个人可以花上他一生的时间去学习,而只知道90%的计算机知识。
The secret weapon in the epic battle, the Excalibur of computing knowledge, is understanding. The better that you understand the most fundamental level of your field, the easier it will be to learn the next level. The better you understand that level, the easier the next one after that will be, and so on. Then once you’ve gone from the most fundamental simplicities to the highest complexities, you can start all over again and find amazingly that there is so much more to know at the very, very bottom.
在史诗般的战斗中,掌握计算知识的神剑,是理解。你越理解你所在领域最基本的架构,学习下一个层次就越容易。你越理解那个架构,后面的那个就越容易,等等。一旦你已经从最基本的简单的到最复杂的,你可以重新开始,令人惊讶的是,有这么多事情要知道在非常,非常底层。
It seems almost too simple to be true, but it is in fact the case. The path to becoming an excellent programmer is simply full and complete understanding, starting with a profound grasp of the basics and working up to a solid control of the most advanced data available.
这似乎太简单了,不可能是真的,但事实上是这样。成为一个优秀程序员的途径仅仅是完整和全面的理解,从深刻掌握基本知识开始,到扎实的控制最先进的数据。
I won’t lie to you–it sometimes is a long path. But it is worthwhile. And at the end of it, you may find yourself suddenly the amazing senior engineer who everyone comes to for advice. You may be the incredible programmer who solves everything and is admired by all his peers. You might even come out a “rock star” with millions of dollars and a fantastically successful product. Who knows? I can’t tell you what to do or what to become. I can only point out some information that I’ve found to be truthful and valuable. What you do with it is up to you.
我不会对你撒谎,有时候这是一条很长的路。但这是值得的。最后,你会发现自己突然成为了一个令人惊奇的高级工程师,每个人都来寻求建议。你可能是一个令人难以置信的程序员,他能解决所有的问题,并受到所有同行的钦佩。你甚至可能会出来一个“百万美元和一个非常成功的产品,摇滚明星”。谁知道呢?我不能告诉你做什么或成为什么。我只能指出一些我认为是真实的和有价值的信息。你用它做什么取决于你自己。
-Max
翻译水平可能一定准确,但是,作者最重要的一句话,大家是会有共鸣的。
作者的文章,也像是写了一段程序,告诉我们做什么,如何做,这样才是大师的作品。
而,为什么要这么做,就是我们需要理解的,也是决定我们能否成为大师,就是我们看完这段代码真正掌握的。