传智播客-A Career in Computing(译文)(1)

原文地址:http://www.artima.com/weblogs/viewpost.jsp?thread=259358

 

Computing Thoughts
A Career in Computing
计算生涯
(也有人译作“计算机事业”,但是compute在这里是用的动名词,所以我认为翻译为“计算”更好些)

by Bruce Eckel
June 2, 2009

 

Summary
摘要


I regularly receive requests for career advice, and I've tried to capture the answers in this blog, and in a follow-on. For those of you who asked but never got an answer, I apologize. Your questions stimulated me to work on this, and it's taken awhile.
我经常收到一些关于职业建议的请求,于是我尝试在这篇博客中给出回答,也作为(前一篇文章的)后续。对于那些询问过却从未得到回答的人,我表示歉意。你们的问题激励我写出这篇文章,而这需要一些时间。

 



The question that people ask is usually the wrong one: "should I learn C++ or Java?" In this essay, I shall try to lay out my view of the true issues involved in choosing a career in computing.
人们经常会问一个错误的问题:“我应该学C++还是Java呢?”在这篇文章中,我将尝试给出我对于在计算(行业领域)选择一门职业应该专注的正确问题的观点。

 

Note that I am not talking here to the people who already know it is their calling. You're going to do it regardless of what anyone says, because it's in your blood and you can't get away from it. You know the answer already: C++ AND Java AND shell scripting AND Python AND a host of other languages and technologies that you'll learn as a matter of course. You already know several of these languages, even if you're only 14.
(请)注意在这里我不是和(你们这些)已经明白自己职业本质的人交谈。无论别人怎么说,你仍将一直从事这个行业,因为这根植于你的血液中而你避无可避。你已经知道答案:学习C++、Java、shell scripting和Python以及a host of其他语言和技术是理所当然的事。你已经知道这里提到的几种语言,哪怕你只有14岁。

 

The person who asks me this question may be coming from another career. Or perhaps they are coming from a field like web development and they've figured out that HTML is only kind of like programming, and they'd like to try building something more substantial. But I especially hope that, if you are asking this question, you've realized that to be successful in computing, you need to teach yourself how to learn, and never stop learning.
问我这个问题的人也许来自其他行业。或者也许他们来自类似web开发领域然后他们会认为HTML就类似编程,而且他们也喜欢努力构建更坚实的东西。但是我特别希望,如果你问到了这个问题,你已经认识到了要想在计算(领域)成功,你需要强化自学能力,并且学无止境。(双手双脚赞同!)

 

The more I do this, the more it seems to me that software is more akin to writing than anything else. And we haven't figured out what makes a good writer, we only know when we like what someone writes. This is not some kind of engineering where all we have to do is put something in one end and turn the crank. It is tempting to think of software as deterministic -- that's what we want it to be, and that's the reason that we keep coming up with tools to help us produce the behavior we desire. But my experience keeps indicating the opposite, that it is more about people than processes, and the fact that it runs on a deterministic machine becomes less and less of an influence, just like the Heisenberg principle doesn't affect things on a human scale.
我在这一行做得越多,对我而言(研发)软件就越像写作而不是其他任何事情。但是我们没有领会到怎样才是一个好作家,我们只知道什么时候我们会喜欢某些人的作品。这并不像所有我们所能做的事就是将某个东西加到一个东西的尾部然后再转动曲柄的某种工程。它诱使(我们)考虑软件的确定性--这就是我们心之所想,这就是我们不断改进工具帮助我们产生我们期望行为的原因。但是我的经验总是告诉我相反(的事实),其结果(如何)更与人相关而不是过程,而且事实是软件(是否)运行在一部精准的机器上变得越来越不那么重要,就像海森堡原则(测不准原则?量子理论?)不会依人类的刻度影响事物。

 

My father built custom homes, and in my youth I would occasionally work for him, mostly doing grunt labor and sometimes hanging sheet rock. He and his lead carpenter would tell me that they gave me these jobs for my own good -- so that I wouldn't go into the business. It worked.
我父亲是建造用户定制祖宅的,我小时候经常帮他,大部分时候干些常规活,有时候会悬吊石膏板。他和他的主木匠告诉我给我这些工作是为我好--这样我将不会从事这一行。确实如此。

 

So I can also use the analogy that building software is like building a house. We don't refer to everyone who works on a house as if they were exactly the same. There are concrete masons, roofers, plumbers, electricians, sheet rockers, plasterers, tile setters, laborers, rough carpenters, finish carpenters, and of course, general contractors. Each of these requires a different set of skills, which requires a different amount of time and effort to acquire. House-building is also subject to boom and bust cycles, like programming. If you want to get in quick, you might take a job as a laborer or a sheet rocker, where you can start getting paid without much of a learning curve. As long as demmand is strong, you have steady work, and your pay might even go up if there aren't enough people to do the work. But as soon as there's a downturn, carpenters and even the general contractor can hang the sheet rock themselves.
因此我也能够应用这个类比,构建软件就像构建住宅。我们没有说好像每个建房子的人干的活都完全一样。有混凝土泥瓦匠,屋面工,水管工人,电工,石膏板工人,水泥工,瓦片安装工,小工,大木匠,小木匠,当然,还有总承包商。每一个工种都要求不同的一套技能,需要不同的时间和努力(程度)去掌握。像程序(开发)一样,住宅建设也会有兴衰周期。如果你希望快点入门,你可以先从事小工或者石膏板工人,这些工种不需要太多学习曲线就能获得回报。只要需求足够旺,你就有稳定的工作,而且如果没有足够的人选做这些活你的工资还可能上涨。但是只要有低潮,木匠甚至总承包商都能够自己吊这些石膏板。

 

When the Internet was first booming, all you had to do was spend some time learning HTML and you could get a job and earn some pretty good money. When things turned down, however, it rapidly becomes clear that there is a hierarchy of desirable skills, and the HTML programmers (like the laborers and sheet rockers) go first, while the highly-skilled code smiths and carpenters are retained.
当互联网经历第一次繁荣期的时候,你所有需要做的事就是花点时间学习HTML然后你可以得到一份工作并且有不菲的收入。然而,当行情下跌时,事情就会迅速变得清晰起来,技能需求是有层次的,THML程序员(就像小工和石膏板工人)最先请辞,而高技能的代码制造者和木匠得以留任。

 

What I'm trying to say here is that you don't want to go into this business unless you are ready to commit to lifelong learning. Sometimes it seems like programming is a well-paying, reliable job -- but the only way you can make sure of this is if you are always making yourself more valuable.
我想说的是,你不要进入这个行业除非你已经做好终身学习的准备。有时候好像编程是一份高回报,稳定的工作--但是你能确定这一事实的唯一途径是你是否一直令你自己更有价值。

 

Of course you can find exceptions. There are always those people who learn one language and are just competent enough and perhaps savvy enough to stay employed without doing much to expand their abilities. But they are surviving by luck, and they are ultimately vulnerable. To make yourself less vulnerable, you need to continuously improve your abilities, by reading, going to user groups, conferences, and seminars. The more depth you have in this field, the more valuable you will be, which means you have more stable job prospects and can command higher salaries.
当然你能找到例外。总是有一些人只学了一种语言就刚好足以胜任而且也许其能耐也足以保持被雇佣而并不用付出更多去扩展他们的能力。但他们是幸免,而且他们最终易受攻击。要使自己不那么容易受攻击,你需要不断地提升你的能力,通过阅读,参与用户组,(相关)会议,研讨会。你在这个领域做得越深,你将越有价值,这意味着你有着更稳定的工作前景以及能够支配更高的薪水。

 

(ms和国内的情况很像呢。。待续。。。)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值