看到一篇有趣的文章The Eight Levels of Programmers。以前似乎看过不少这种程序员的多少个级别、境界,但这篇语言很风趣,而且分类比较细化,让人觉得挺合情合理、无法反驳的。
绝大部分人想成为一名优秀程序员的人,通过努力可以避免1,因为在编程上的追求避开了2,最终可能都停留在4或5。但努力追寻是没有错的,不然没有梦想和咸鱼有什么分别:)。
注意一点,作者并没有无脑地批判谁,并没有说会编程、代码写得好就怎样,其他都是不求上进、不务正业。
他全文一直都在客观强调一点:每个人的追求不同,想好自己想要活成什么样子,然后就去努力。
下面就简单翻译一下,说是翻译,没有逐字逐句。而且加了一些自己想说的话,主要是传达一下作者的主要想法。另外倒排了一下八个Level的顺序,这样读起来可能更有意思。希望大家阅读愉快。
Have you ever gotten that classic job interview question, “where do you see yourself in five years?” When asked, I’m always mentally transported back to a certain Twisted Sister video from 1984.
You want to rock, naturally! Or at least be a rockstar programmer. It’s not a question that typically gets a serious answer – sort of like that other old groan-inducing interview chestnut, “what’s your greatest weakness?” It’s that you sometimes rock too hard, right? Innocent bystanders could get hurt.
But I think this is a different and more serious class of question, one that deserves real consideration. Not for the interviewer’s benefit, but for your own benefit.
The “where do you see yourself in five years” question is sort of glib, and most people have a pat answer they give to interviewers. But it does raise some deeper concerns: what is the potential career path for a software developer? Sure, we do this stuff because we love it, and we’re very fortunate in that regard. But will you be sitting in front of your computer programming when you’re 50? When you’re 60? What is the best possible career outcome for a programmer who aspires to be.. well, a programmer?
What if I told you, with tongue firmly planted in cheek, that there were Eight Levels of Programmers?
你遇到过这种典型的面试问题吗:“你觉得你五年后会在哪?”每当被问到时,我总是Twisted Sister视频里的片段。当然,你想成为大牛!至少成为一个明星程序员。所以这种问题通常都得不到严肃的回答,就像另一个常见的问题,“你最大的弱点是什么”。但我觉得有一类问题是值得严肃思考的,不是为了面试,而是为了你自己。像“你觉得你五年后会在哪?”这种问题,一般面试者都会准备好一些比较圆滑和恰到好处的答案。但一个程序员真正可能的职业发展路径才是真正应该担忧的问题。当你50岁了你依然坐在电脑前编程?然后60岁?对于一个渴望成为程序员的程序员,什么才是他最可能的职业终点呢?要是我现在告诉你程序员有八重境界你会怎么样?
People who somehow fell into the programmer role without an iota of skill or ability. Everything they touch turns into pain and suffering for their fellow programmers – with the possible exception of other Bad Programmers, who lack even the rudimentary skill required to tell that they’re working with another Bad Programmer.
Which is, perhaps, the hallmark of all Bad Programmers. These people have no business writing code of any kind – but they do, anyway.
没有足够技巧和能力的人被分配程序员的角色,(于是悲剧就发生了)。每一件他们接手的事情都变成了对他们同事的痛苦和折磨。唯一的例外就是他们的同事也同样地糟糕,糟糕到无法区分他们也在跟糟糕的程序员共事,这可能是所有糟糕程序员的标志。这些人不应该写代码,但是他们却的确写了……
2.Unknown Programmer - 无名小卒
The proverbial typical programmer. Joe Coder. Competent (usually) but unremarkable. Probably works for a large, anonymous MegaCorp. It’s just a job, not their entire life. Nothing wrong with that, either.
典型的程序员,自大自满但又不够出色。可能在大公司上班,但却仅仅把编程当作一份工作,而非生活的全部,甚至大部分。当然这也没什么错,只是追求不同。
3.Amateur Programmer - 业余水准
An amateur programmer loves to code, and it shows: they might be a promising student or intern, or perhaps they’re contributing to open source projects, or building interesting “just for fun” applications or websites in their spare time. Their code and ideas show promise and enthusiasm.
Being an amateur is a good thing; from this level one can rapidly rise to become a working programmer.
业余程序员与前两者不同,他们喜欢编码,是自愿做这一行的。他们可能是很有潜力的学生或实习生,或者业余时间为开源项目或自己的小网站做贡献。他们有潜力也有热情,这是好事,达到这一级后就能很快成为一名不错的程序员。
4.Average Programmer - 平庸无奇
At this level you are a good enough programmer to realize that you’re not a great programmer. And you might never be.
Talent often has little to do with success. You can be very successful if you have business and people skills. If you are an average programmer but manage to make a living at it then you are talented, just not necessarily at coding.
Don’t knock the value of self-awareness. It’s more rare than you realize. There’s nothing wrong with lacking talent. Be bold. Figure out what you’re good at, and pursue it. Aggressively.
你已经足够好了,但不够出色,你可能永远也不会…… 天赋通常与成功没有太大关系,你可以因为商业头脑和人际关系成功。如果你是一名普普通通的程序员,但是生活得还不错,那说明你挺有天赋,只不过不是在编码上。自省的价值远大于你想象,所以勇敢面对,没有编码天赋并没有任何错。想清楚你擅长什么,并一路追寻,大胆地,这就够了。
5.Working Programmer - 小有所成
You have a successful career as a software developer. Your skills are always in demand and you never have to look very long or hard to find a great job. Your peers respect you. Every company you work with is improved and enriched in some way by your presence.