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

原文地址: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.
我经常收到一些关于职业建议的请求,于是我尝试在这篇博客中给出回答,也作为(前一篇文章的)后续。对于那些询问过却从未得到回答的人,我表示歉意。你们的问题激励我写出这篇文章,而这需要一些时间。

 


 

接上文
Another approach is to look at the field in general, and find a place where you already have talents. For example, my brother is interested in software, and dabbles with it, but his business is in installing computers, fixing them and upgrading them. He's always been meticulous, so when he installs or fixes your computer you know that it will be in excellent shape when he's done; not just the software, but all the way down to the cables, which will be bundled neat and out of the way. He's always had more work than he could do, and he never noticed the dot-com bust. And needless to say, his work cannot be offshored.
另一个途径是大体上审视一下这个领域,然后找到一个你已经具备相应能力的职位。举例来说,我兄弟对软件很有兴趣,然后有所涉足,但是他的职务是安装、维修、升级电脑。他(做事)一直小心谨慎,因此当他安装或维修你的电脑的时候你会知道一旦他完工你的电脑将处于最佳状态;不只(安装在电脑上的)软件,还有所有底层的线路,都会被妥当处理且毫不碍事。他总是尽力做得更多,而从不关注互联网公司的中落。自不必说,他的工作不可能被出局。

 

I stayed in college a long time, and managed to get by in various ways. I even began a Ph.D. program at UCLA, which was mercifully cut short -- I say mercifully because I no longer loved being in college, and the reason I stayed in college for so long was because I enjoyed it so much. But what I enjoyed was typically the off-track stuff. Art and dance classes, working on the college newspaper, and even the handful of computer programming classes that I took (which were off-track because I was a physics undergrad and a computer engineering graduate student). Although I was far from exceptional academically (a delightful irony is that many colleges that would not have accepted me as a student now use my books in their courses!), I really enjoyed the life of the college student, and had I finished a Ph.D. I probably would have taken the easy path and ended up a professor.
我在大学待了很长一段时间,并且设法在不同学业有所成就。我甚至在加利福利亚大学洛杉矶分校开始了哲学博士课程进修,(不过)顺利地中止了--我说顺利是因为我不再喜欢待在大学里面了,原因是我因为我以前很享受大学生活而待得太久了。但是我享受(这种生活)主要是因为那些离经叛道的事。我参加了艺术和舞蹈课程,大学生报工作,甚至很多计算机编程课程(我说这些离经叛道是因为我当时是物理学本科生兼修计算机工程学的研究生)。尽管学术上我并不优秀(一个令人玩味的讽刺事实是很多大学曾经不肯承认我是学生现在却在他们的课上使用我的书(当教材)!),我真的很享受大学生的生活,如果我完成了哲学博士的学业,我(以后的发展)很可能顺理成章地以大学教授而终结。

 

But as it turns out, some of the greatest value that I got from college was from those same off-track courses, the ones that expanded my mind beyond "stuff we already know." I think this is especially true in computing because you are always programming to support some other goal, and the more you know about that goal the better you'll perform (I've encountered some European graduate programs that require the study of computing in combination with some other specialty, and you build your thesis by solving a domain-specific problem in that other specialty).
但是当这一切结束的时候,我在大学中获得的某些最有价值的知识就是来自那些同样离经叛道的课程,这些知识扩展了我的思想(并使之)超出了“那些我已经知道的东西。”我认为在计算(机领域)这一切尤其正确,因为你一直编程是为了支持(实现)一些其他的目标,而你对这一目标了解得越多你将会实现得更好(我遇到过一些欧洲研究生项目就要求结合其他专业学习计算(机)知识,而且你要通过解决其他专业的某一具体领域的问题来构建你的论题)。

 

I also think that knowing more than just programming vastly improves your problem-solving skills (just as knowing more than one programming language vastly improves your programming skills). On multiple occasions I have encountered people, trained only in computer science, who seem to have more limits in their thinking than those who come from some other background, like math or physics, which requires more rigorous thinking and is less prone to "it works for me" solutions.
我也认为(其他专业领域)了解得越多而不仅仅只会编程可以极大地提高你的问题解决能力(就像了解不只一种编程语言会极大地提高你的编程能力一样)。在很多场合中我遇到一些只接收过计算机科学培训的人,比起来自像数学或物理学这样要求更严谨思考和更少倾向“它就应该这样”的(问题)解决方案(思路)的其他(专业)背景的人,好像他们的思想总有更多的局限。

 

In one session a conference that I organized, one of the topics was to come up with a list of features for the ideal job candidate:
在我组织的一次研讨会议中,其中一个议题就是提出拟列一份理想的工作备选人特质清单:

Learning as a lifestyle. For example, you should know more than one language; nothing opens your eyes more to the strengths and limitations of a language than learning another one.
将学习视为一种生活方式。例如,你应该了解不只一门语言;比起学习另一门语言没有什么能够更开阔你的眼界(以认识到你的)实力和一门语言的局限性。
Know where and how to get new knowledge.
知道在哪以及如何获得新知识。
Study prior art.
预先学习。(有备无患吧)
We are tool users.
(理解)我们是工具的使用者。(应该是说我们掌控着工具,而不是依赖工具吧)
Learn to do the simplest thing.
学会做最简单易行的事。(提高效率么?)
Understand the business (Read magazines. Start with Fast Company, which has very short and interesting articles. Then you can see if you want to read others)
了解商业(阅读杂志。从Fast Company开始,这上面有很多简短而有意思的文章。然后你就能够知道你是否还想读其他的)。
You are personally responsible for errors. "It works for me" is not an acceptable strategy. Find your own bugs.
能够为错误独立承担责任。“它就应该这样”不是一个可以接受的策略。(请)找出你自己的错误。
Become a leader: someone who communicates and inspires.
成为一个领导:善于交流和激励的人
Who are you serving?
(明白)你正在为谁服务。
There is no right answer ... and always a better way. Show and discuss your code, without emotional attachment. You are not your code.
(理解)没有正确的答案。。。但总有更好的方案。不附带感情色彩地展示和讨论你的代码。(要明白)你不等于你的代码。
It's an asymptotic journey towards perfection.
(理解)尽善尽美是一个渐近的过程。

 

Take whatever risks you can -- the best risks are the scary ones, but in trying you will feel more alive than you can imagine. It's best if you don't plan for a particular outcome, because you will often miss the true possibilities if you're too attached to a result. My best adventures have been ones that have started with "lets do a little experiment and see where it takes us.
尝试你能遇到的任何风险--最好的风险是能令你感到惊慌的那种,但是努力过后你感受到的兴奋超出你的想象。(对于前述的冒险行为,)如果你没有为某一特定结果(的实现)有所计划是最好的,因为如果你太在意结果你将会常常错失那些真正可能的问题。我做的最好的冒险尝试都是开始于“让我们先做一个小小的实验然后看看它能带我们走到什么地方”。

 

Some people will be disappointed by this answer, and reply "yes, that's all very interesting and useful. But really, what should I learn? C++ or Java?" I'll fend these off by repeating here: I know it seems like all the ones and zeroes should make everything deterministic, so that such questions should have a simple answer, but they don't. It's not about making one choice and being done with it. It's about continuous learning and sometimes, bold choices. Trust me, your life will be more exciting this way.
一些人也许会对这个答案感到失望,然后回复“是的,这些都很有意思而且有用。但是说真的,我到底该学什么呢?C++还是Java?”我将回避这样的问题并再次于此重申:我知道(对有些人而言)这就像所有的0和1一样每个问题的答案都应该确切无疑,因此像这样的问题应该有一个直接的答案,但是没有。这不是关于选中一个(编程语言)然后学习它的事情。这是关于持续学习并且有些时候,有很多显而易见的选择(而不是只有一个)。相信我,通过这种方式你的生活将会无比精彩。

 

Further Reading
Here's an earlier piece I wrote on how I got started in programming.
下面是我早期写的《我的编程之路》的一部分。

 

I found all these to be interesting and stimulating takes on the same subject:
我发现(下述)所有同样主题的这些文章都很有趣而且有激励作用。

 

Teach yourself programming in ten years, by Peter Norvig: http://norvig.com/21-days.html
How to be a Programmer, by Robert Read: http://samizdat.mines.edu/howto/HowToBeAProgrammer.html
Here's a speech by Steve Jobs, trying to inspire a group of graduating college students.
Kathy Sierra: Does College Matter? http://headrush.typepad.com/creating_passionate_users/2005/07/does_college_ma.html
http://www.paulgraham.com/college.html
http://www.joelonsoftware.com/articles/CollegeAdvice.html
http://www.jamesshore.com/Blog/Five-Design-Skills.html
http://steve-yegge.blogspot.com/2006/03/truth-about-interviewing.html

 

In a future article (I'll post the link here when it's done), I will talk about the importance of understanding management and business issues, whether or not you ever plan to be a manager, and in that article I'll include a list of books that (even though they're about management) you should read to prepare yourself for your career.
在以后的一篇文章中(当这篇文章完成的时候我会把链接贴在这儿),我将会讨论理解管理和商业问题的重要性,无论你是否计划成为一个经理,而且在那篇文章里我将列出一份书目清单,(即使它们都是关于管理的)你应该阅读它们以为你的职业生涯做准备。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值