Do Hard Things---做困难的事情

Do Hard Things—做困难的事情

29 December 2011 by Drew Crawford Published in: rants 3 comments

Think for a minute about what you work on. In your work life, in your side projects. What are you going to do this upcoming week that is really, really hard? This is not a rhetorical question–it’s the kind that shouldn’t raise a null reference exception. There should be something.
花几分钟时间想想你在做什么?比如你的工作生涯和你手边的项目。对于即将到来一周,你将做些什么,它真的很难吗?这不是一个夸张的问题-它是那种不会引发空引用异常的问题。应该是其他的什么事情。

Because you are a good developer. You’re way above the Fizzbuzz level–you read blog posts about programming in your spare time, because you’re here. That’s top 10% right there, which is purely the admission price of reading this article. If you have gone to a couple of meetups or learned a new language this year, you’re top 1%. If you’ve put 80 hours into a side project this year, you’re top .05%.
因为你是一个好的开发人员。你已经超过了Fizzbuzz水平-你在业余时间读编程博客,因为你现在就在这儿读我这篇。在这儿汇聚了顶尖的10%的人,读到这篇文章就是入门门槛。如果今年你参加了几次会议或者学习了一门新的语言,你是顶尖的1%。如果你今年在你的工作外项目中投入了80个小时,你是顶尖的0.05%。
【译注:FizzBuzz是一种数字游戏,从1数到100,如果遇见了3的倍数要说Fizz,5的倍数到说Buzz,如果即是3的倍数又是5的倍数要说FizzBuzz】

So why are you writing CRUD apps?
那么,为什么你正在写CRUD应用呢?

I’ll tell you why. Because CRUD is the universal application [1]. CRUD on every platform. CRUD on the web, on iOS, on desktop, in embedded, in Microsoft Access, in Oracle, on Rails, on PHP, CRUD. CRUD at startups. CRUD at enterprises. In a box, with a fox. It’s the “Java everywhere” dream Sun failed to achieve. Every time you write a CRUD app, Jonathan Schwartz gets a nickel and Knuth dies a little inside. Take a good, hard look at what you are working on and compute your Levenshtein distance from being a Sun drone.
让我来告诉你为什么。因为CRUD是通用的应用。CRUD存在于每一个平台。存在于web,iOS,桌面系统,嵌入式系统,Microsoft Access,Oracle,Rails,PHP,甚至CRUD中。CRUD在创业公司中,在大企业中。在一个box里,藏着fox。它是让Sun梦断的“处处是java”。每次你写一个CRUD应用, Jonathan Schwartz得到了一个镍币,Knuth在里面死得更挺。好好看看你工作的东西,并且计算一下成为Sun的俘虏和Levenshtein之间的距离。

There are two reasons why you need to put your foot down and stop doing CRUD. The first is because CS, mathematics, engineering, and every discipline need the best and brightest people doing things that actually matter, not cranking out SQL queries. We have genuinely tough battles to fight: the power wall in hardware, computational complexity in CS, user interaction is in the dark ages, self-driving cars, biotech, SOPA and related threats, dozens of others–we’re fighting a 100-front war. Your colleagues need you. Your company needs you. Your field needs you. Humanity needs you. Why are you dodging the draft? We have wars to fight, and you are sitting at home typing SELECT in all caps.
有两个原因来解释为何你要脚踏实地并停止做CRUD。第一个是因为计算机科学,数学,工程学以及任何学科,都需要最好和最聪明的人投身其中,而不是做无聊的SQL查询。我们有几场硬仗要打:硬件能力墙,计算机科学中的计算复杂度,黑屏年代的用户交互,无人驾驶汽车,生物技术,SOPA以及相关的诸多其他威胁-我们正在打100个前沿战争。你的同事需要你,你的公司需要你,你的领域需要你,人类需要你。为什么你要躲避战斗?我们有仗要打,你却呆在家里在所有磁带上敲SELECT。

From You and Your Research:
从你和你的研究开始

Over on the other side of the dining hall was a chemistry table. I had worked with one of the fellows, Dave McCall; furthermore he was courting our secretary at the time. I went over and said, “Do you mind if I join you?” They can’t say no, so I started eating with them for a while. And I started asking, “What are the important problems of your field?” And after a week or so, “What important problems are you working on?” And after some more time I came in one day and said, “If what you are doing is not important, and if you don’t think it is going to lead to something important, why are you at Bell Labs working on it?” I wasn’t welcomed after that; I had to find somebody else to eat with! That was in the spring.
在餐厅的另一边是一张化学桌。我曾经和一个研究员Dave MsCall合作过,那时他担任我们的秘书工作。我走过去问:“介意我加入你们吗?”他们没有说no,因此我和他们一起吃了会儿饭。然后我开始提问:“在你的领域里,重要问题是什么?”过了大约一周,“你正搞什么重要问题?”过了更长的一段时间,我又来了,“如果你做的事情不重要,而且你不认为这会引领其他重要的事情,为什么你在贝尔实验室里还搞这个呢?”从那以后,我不再受欢迎。我必须找其他人一起吃饭了。这发生在春天。
In the fall, Dave McCall stopped me in the hall and said, “Hamming, that remark of yours got underneath my skin. I thought about it all summer, i.e. what were the important problems in my field. I haven’t changed my research,” he says, “but I think it was well worthwhile.” And I said, “Thank you Dave,” and went on. I noticed a couple of months later he was made the head of the department. I noticed the other day he was a Member of the National Academy of Engineering. I noticed he has succeeded. I have never heard the names of any of the other fellows at that table mentioned in science and scientific circles. They were unable to ask themselves, “What are the important problems in my field?”
到了秋天,Dave McCall在餐厅叫住了我,说:“Hamming,你说的话刺激了我。在整个夏天我都在思考这个问题,那就是在我的领域里最重要的问题是什么。我没有改变我的研究,”他说,“但我想它是值得做的”。我说:“谢谢你,Dave”,然后离开了。我注意到,过了几个月,他被任命为部门的头。过了些日子,他成了国际工程学会的成员。我注意到他成功了。我从来没有听到当时饭桌上其他听众在科学和科学届里成名了。他们不能够问自己:“我的领域里的重要问题是什么?”

We have difficult problems to solve and we need our A-players on the field. When you can play at the super bowl, you don’t sit on the bench.
我们有很多困难的问题等待解决,在领域中我们需要顶级玩家。当你可以在超级碗赛场上比赛的时候,你不会坐在观众席上旁观。

Although it was industry-specific, I was moved by the way Gruber phrased it:
虽然这是一个商业性的描述,但我还被Grubber的描述方式打动了:

One simple way to look at it is that there are far more people who’ve never bought an iPhone and who’ve never bought an iPad, who will in the next five years than all of us who’ve already bought at least one to this point. And I don’t see how anybody can deny that, unless something unbelievable, dramatic changes. That’s certainly the way everything is going now. If you think this app store platform is big now, you really haven’t seen anything yet. At an event last week, Tim Cook had a line – he said, ‘This is an extraordinary time to be at Apple’. And He is definitely right. But I say to you, ‘This is an extraordinary time to be an Apple developer’ .This is the right time and the right place. This is a once in a career opportunity. This is like being a Rock and roll musician in the late sixties. This is like being a film maker in the seventies following Scorsese, Coppola, Steven Spielberg, George Lucas (when he was sane). If things go right, if things go the way I think they are going to go, these next five years, we are never going to work harder, we are never going to be under more pressure, we’re never going to be more stressed, we are never going to feel like we have to work faster and we are never going to have to solve tougher problems. We’re never going to have to move this fast. But the only thing any of us are going to regret is if we don’t aim big enough. If you don’t feel that you’re now in a position to do the best work of your entire career, to look back and say, ‘This was the time, I was there, I did this, I helped make this thing a reality’, then you need to find a new position. This chance will never come again. And we are lucky, we’re so unbelievably, incredibly lucky that it even came this once.
一个简单的判断是,那些从来没有买过iPhone和iPad的人们,比至少拥有了其中一个的人们,在未来5年中,更可能买iPhone和iPad。我不认为谁能否认这一点,除非发生不可置信的、戏剧般的改变。这当然是万事俱备。如果你认为现在app store已经很庞大了,那你还是什么都不明白。上周的某个夜晚,Tim Cook打电话给我,他说,“这对苹果来说,是一个非凡时刻。”他肯定是正确的。但我说,“这对苹果的开发者来说,是一个非凡时刻”。这就是那个正确的时间和正确的地点。这是一个稍纵即逝的职业机会。就像过去60年代后期的摇滚音乐家。就像70年代以来追随Scorsese, Coppola, Steven Spielberg, George Lucas的电影导演。如果事情正确,如果事情走在我认为他们将去的路上,在未来的5年中,我们就再也不必更辛苦地工作,再也不必承受更大的压力,永远不必更紧张,永远不必感觉到我们必须更迅速的工作,永远不必解决棘手的问题。我们永远不必更快驱动。但我们唯一感到遗憾的,将是我们的目标不够大。如果你没有感到你现在正处于你整个职业生涯的最好工作位置上,那么回头看看,并且说,“这是时代,我在这里,我做这个,我对实现它有所裨益”,然后你需要找到一个新的位置。这种机会再也不会来了。我们是幸运的,我们是那么的不可思议的幸运,很幸运它竟然来了这么一次。

The other reason is entirely practical–anyone can do CRUD. People working for $10/hour in Outsourceizstan can do CRUD. Maybe not well–but it doesn’t need to be done well. It just needs to be done. Cheaply, if at all possible.
另一个原因是-任何人都能做CRUD。拿着每小时10美金的Outsourceizstan的人可以做CRUD。可能不是很好但实际上也不需要做的多么好。它只是需要做,如果可能的话尽量便宜点。仅此而已。

So every time you look at a CRUD project, you’re competing with people in Outsourceizstan who make 20% what you do. CRUD is, quite quantitatively, a job on the same level as stocking shelves at a grocery store. Unskilled labor is a fine and noble profession, but if you have a highly marketable skill it’s probably not the career path for you.
因此,每次你看到一个CRUD项目,你就在和Outsourceizstan的只拿你20%薪水的人在竞争。CRUD相当的模式化。它大概和杂货店里的货架在同一水平上。非熟练劳动者是一个好的高贵的职业,但如果你有一个很好的市场技能,或许它对于你来讲不是很好的一条职业之道。

You may say “This is all fine and good, but I’m getting paid big bucks for CRUD.” But you do not get paid big bucks in a vacuum. A company that is willing to pay you US market rates for CRUD is a temporary market aberration. You are one new boss away from being out on the street, exposed for the obscene cost center you are. At which point you will have many years of CRUD on your resume, instead of being the guy who worked in audio compression or graph theory or scalable systems. Ride the gravy train, but make the conscious effort to stay current. Winter’s coming.
你可能会说,“这是挺好的,但我正在从CRUD赚大钱呢。”但你不能在真空中获得大量的收入。一个愿意为了CRUD而付你美国市场利率的公司只是一个暂时的市场意外。你是一个远离大街的新老板,暴露了你的中心的可恶的成本。在这一点上,你会在你的简历上说你在CRUD这行干了很多年,而不是在视频压缩或者图形理论或者可扩展的系统工作方面。乘着外块的火车,但努力停在当前。冬天快来了。

As a contractor, one of the things I look for to qualify leads is “Is the project hard?” For example, a lot of people use the word “simple” when talking about the app they want to build (“I want to make a simple app that…”) which is really a kind of secret code for “easy” or “cheap”. (They are completely oblivious the fact that practically the whole mantra of Steve Jobs, and of the iPhone, is that simple is hard and expensive, and obliviousness is a very bad trait in clients.) Whenever somebody says “simple”, I know immediately that the project is going to Outsourceizstan. Often the clients do not know this themselves. Time and effort is poured into the sale. Conference rooms are stocked with cupcakes and coffee. Then, all of a sudden, they find some underappreciated undergrad to do it, and stop returning your calls.
作为一个合同工,我寻找的符合投资资格的一件事情是, “项目难不难?”举个例子,很多人在谈论他们想构建的应用时使用了词语“简单”,而实际上只是一种称之为“容易”或者“廉价”的神秘代码。(他们完全忽略了一个事实,特别是乔布斯和苹果的咒语,那就是简单是很难的和昂贵的。客户的健忘是一件很坏的事情)。当有人说“简单”的时候,我立刻知道那是个Outsourceizstan类型的项目。通常客户们自己并不知道这些。时间和努力被浪费在兜售上。会议室被蛋糕和咖啡占满了。然后,突然之间,他们会找些怀才不遇的大学生去实现它,然后不再回复你的电话。

Although I am a happy contractor, occasionally I humor job offers. In addition to a full deck of other questions I ask, I inquire “So what are you going to do if you have trouble filling the position?” Usually they look at me like I am crazy and and that they are sure the right person is in the resume pile, or that I are not the only candidate that they are talking to, or some equivalent response. Which is code for “This job is not very hard.” As soon as they say that, the jig is up–they are hiring a warm body to write a for loop or two and go to meetings twice a week, and they can fulfill those requirements a lot more cheaply than by hiring a real professional software developer. Other people can tackle that; you were born to solve real problems.
尽管我是一个快乐的合同工,偶尔我也在找工作时幽默一把。在一堆其他问题之后,我会问,“那么如果你在职位上有麻烦你会做些什么?”通常他们会看着我,好像我是一个疯子,然后他们确信这个合适的人是否真在简历堆里,或者我并不是他们正在谈的唯一的候选者,或者其他类似的反映。其实这就相当于在说,“这份工作并不难”。一旦他们这样说,钩子就来了-他们正在雇佣一个温暖的身体去写一个for循环或者两个,然后每周两次碰头。然后他们用比真正的专业级软件开发者更廉价的方式完成这些需求。其他人可以对付这些,而你要去解决真正的问题。

When I was starting out, I would describe what I do as “writing iPhone apps,” which was both accurate and sufficient. But as the market has matured, I’ve started to say we “write really hard iPhone apps, that are too hard for other developers to write.” It’s not that we’ve taken on projects that are much harder than what we’ve always done, but that the bottom of the market has dropped to do the floor, with a lot of things these days being cookie cutter types of code that really anybody can whip together. And the “we do really hard things” positioning turns away all of the cheap people and yields a lot of high-quality referrals from people who really are doing rocket science and as a result need somebody really good.
当我开始工作,我会描述我做什么,比如“写iPhone应用”。这是非常准确和充分的。但一旦市场已经日趋成熟,我会说我们“写真正难的iPhone应用,对于其他开发者来讲它太难了以至于根本写不出来。”不是说我们要去做比我们一直做的项目更难的项目,市场的底线已经跌到了地板上,大家都在做千篇一律的代码。“我们做真正难的事情”的定位驱赶了所有便宜货,让位给众多高质量的来自于那些做火箭的科学家,这些领域需要那些真正优秀的人。

Of course the supply-side economics for working on hard things is good if you are a developer, because you are a big fish in a small pond. But what about the demand side? There is a limitless demand for CRUD, but only a limited demand for novel research, right?
当然,如果你是一个开发者,从供应经济学角度看,做困难事情是有利的,因为你是小池塘里的大鱼。但从需求角度看怎么样呢?对于CRUD来说,需求是无限的,但对新研究来讲需求是有限的,不是吗?

It’s true that the demand is more limited. One thing I’ve observed, particularly in the business world, is that people seek out incremental improvements to existing tools. CRUD projects get started because it is easy for a manager to imagine how to improve upon Excel. It is a lot harder to imagine a revolution. Can you even think of what the first meeting for the iPhone project must have been like? Perhaps Steve Jobs stood up and said “We’re going to make a revolutionary, simple phone.” But what does that even mean? Where are the requirements? Perhaps you can enumerate a few disrequirements–existing phones have bad UIs and are difficult to use. But we are not within 100 miles of a single feature, or even a form factor. It’s not exactly the sort of thing you can write a spec for and bid out to ten shops.
需求受限是真的。我观察到一个现象,特别是在商业世界,就是人们寻找对现有工具的增量改进。CRUD项目启动了,因为对于管理者来讲,他很容易就能想象怎么在Excel上做的更好。而想象一个革命性的方案就难多了。你能想象iPhone项目的第一次会议,是讨论iPhone像什么吗?可能是乔布斯站起来,然后说,“我们将掀起一场革新,简单的手机”。但这意味着什么?需求在哪里?可能你能列举几条非功能需求-现有手机的界面很糟糕,很难使用。但我们离一个单一功能有100英里远,甚至即使一个窗体form也如此。写一个产品规格和对10家商店投标不是一码事。

But it turns out that the demand for iPhones is enormously huge. You just have to be willing to put in the time and effort and R&D. Which requires buy-in from the people around you; they have to be on board with breaking the chain of incremental improvement and working on the revolution. This may not be the case where you work. One of your biggest constraints for Doing Hard Things is the imaginations of those around you. If your manager is a visionary and your coworkers bank at San Serriffe, then you have a nonzero shot at working on something decent. But otherwise you will spend your days poorly re-implementing Excel. Don’t do that. We need you. We need you to push the world forward. Leave the incremental improvements to others. Find a community of bold revolutionaries.
但这表明了iPhone的远大愿景。你必须愿意投入时间、努力和研发。这需要你周围的人认同,他们必须在打破增量改进的藩篱,真正去革新这件事上同舟共济。这可能不是你工作的场景。做困难的事情,最大的限制之一来自于你周围人的想象力。如果你的上司很有远见,你的合作者在San Serriffe存款,那么你可以从头出发去做点体面的事情。否则,你将要把你宝贵的时间花费在重新实现Excel上。不要这样做。我们需要你。我们需要你去推动世界向前发展。把增量改进的工作留给他人。找一个大胆革新的团伙。
【译注:高德纳在 2008 年成立了一家名叫 Bank of San Serriffe 的虚拟银行,地点也是虚拟的,在虚拟国度 San Serriffe 一个名叫 Caissa Inferiore 的小岛上的 Thirty Point。San Serriffe 是1977 年 4 月 1 日愚人节,英国老牌报纸《卫报》 (The Guardian)虚拟出来的一个印度洋上的岛国】

As you are reflecting over your work this past year, think about what you have worked on that is Really Hard. Think about how you have pushed a discipline forward, an industry forward, and your customers forward. Think about how you transformed a company, made a new discovery, developed a novel algorithm, improved the runtime of code by an order of magnitude, written a better malloc, saved someone a million dollars, and added to human knowledge. If you’re not playing at this level, get it together. Do Something Hard. Do something so that you will look back a year from now and say “I was here, I did this, I made a difference.” Either that or move to Outsourceizstan.
当你在反思你过去一年里做过的工作时,想想你在真正难的事情上做过了什么。想想你怎么推动了学科向前发展,推动了工业向前发展,以及推动你的客户向前发展。想想你怎样改变了公司,有一项新的发现,开发了一个新算法,把运行代码的效率提升了一个数量级,写了一个更好的malloc,为别人节省了百万美金,以及丰富了人类知识。如果你没有在这个层次上耍过,要聚在一起,做点困难的事情。做点事情,这样从现在起到来年,你可以说:“我在这里,我做了,我创新了”,否则干脆移到Outsourceizstan里去算了。

You don’t have to suddenly quit your job and have a mid-life crisis. You can start small. Start reading an academic journal. Start that open-source project you’ve been meaning to work on. Sketch out the wireframes for that app. Just as one dollar a day through the magic of compound interest makes millions over a lifetime, 20 minutes of time invested per day pays enormous dividends over decades. Breakthroughs are made with far less. You don’t have to join a monastery and swear off HN forever. You just have to start.
你不必突然离职然后出现中年危机。你可以从小做起。开始阅读一本学术杂志,开始参加一个开源项目,草绘出应用的框架。就像通过复利魔法,每天一美元也可以变成百万美金,每天投资20分钟,在你几十年的生涯中也会产生巨大的回报。积水成渊,积土成山。你不必投身修道院并永远与世隔绝,你只需要开始去做。
git commit -a -m “Initial commit”

[1] When I talk about writing CRUD software in this article, I don’t mean solving a thorny business problem with an implementation that just so happens to consist of a CRUD application. Nor do I mean an application that is 90% CRUD and 10% quantum mechanics. In either example, there’s a lot of non-CRUD value. I don’t mean CRUD + [arbitrary hard thing X], I mean actually CRUD.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值