该用户从未签到
|
你有没有遇到过那个经典的面试问题,“你预见过自己5年后的职位吗?”。每当有人这样问时,我就会想到Twisted Sister乐队从1984年开始发行的某张专辑。 $ G* e0 X; N4 l G
7 L7 n$ l* x& x8 c6 q5 q
当然是玩摇滚,至不济也得是个摇滚明星级别的程序员吧。这种问题通常得不到正面回答——就像那种在面试中无病呻吟式的陈词滥调,”你最大的缺点是什么?”。有的时候是不是太大起大落?以至于那些无辜的旁观者会受到伤害。
5 s1 w$ X; z& r
8 ^. z& ~% r) @4 G2 B" O但是,我认为这是一种不一样并更严肃的话题,它应该引起足够的重视。而这并不是为了面试官好,而是为你好。文章开始的那个问题听起来有点老生常谈,而且大部分人都是有备而来。但是这个问题却会引起更深层的思考:一名软件开发人员的职业生涯会是怎样的呢?当然,我们干着一行是因为我们热爱编程,并且在这一点 上,我们非常幸运。但是,当你50岁的时候,你还会坐在电脑前编程吗?当你60岁时呢?对于那些渴望成为程序员的程序员来说,最好的职业生涯出路是什么呢? ( j( X, @) Z/ A
2 F/ I6 f: k2 N! v
开个玩笑,如果我告诉你,程序员可分为八种级别,你会怎么想呢?
9 H1 a7 X7 O) V1 A$ c, M- p' K5 {4 e4 t$ _; Z# T# I
1. 不朽的程序员:这是最高层次。你写的代码并没有随你而去,而是保留了下来(万古流芳)。你会在计算机领域永垂不朽。其他程序员会研究你的成果和著作。你可能获得了图灵奖,发表过有巨大影响力的论文,或者发明了一项或多项为众人所知的基础性技术,已经影响了编程事业的发展。
3 s/ e2 q+ s( ]# m# R; Q- s! D
' l+ U# H% ?' b2 |" _/ _介绍你的并不只是个维基百科词条——很多网站致力于研究你的生平和成就。只有很少的程序员达到这种高度。
) l" N/ Z4 M `) Z! e5 Z" d7 D/ C4 ^5 m& _' s& w
代表人物:Dijkstra(迪杰斯特拉)、 Donald Knuth(唐纳德·克努斯/中文名:高德纳)、 Alan Kay (阿兰·凯) : F; E4 b! {" }+ F8 }. A) o9 s6 t
3 `7 Y: o" X' E : M c% p% y* k" K
2. 成功的程序员:这些程序员既声名远扬又借助自己的编码创立完整业务,甚至整个行业。他们给自己创造了真正的自由:自己决定从事什么工作的自由。并且跟自己的同事分享这种自由。
& k7 \$ v$ l, y: ]
( N0 o9 S! s; H& u这是大部分程序员都渴望的一种高度。能否达到这种高度往往更多的取决于业务技巧而不是编程能力。 8 u1 C, R3 y3 Y' N8 J3 f
2 e7 m- @$ v9 G) l3 Q代表人物:Bill Gates(比尔·盖茨)、John Carmack(约翰·卡马克)、DHH (戴维·海涅梅艾尔·汉森) 6 s* r1 b" C' B- G% h6 F2 D7 j
2 X5 P* a0 A P/ |) o# V
3 J9 Y: ^% t6 g2 G2 u3. 著名的程序员:这也是一个不错的层次,但是美中不足是出名不能当饭吃。在编程这个圈子里,你非常有名。但是,有名气并不一定就意味着你会藉此获利来养活自己。出名很好, 但成功更佳。你可能为一家著名的大公司或者有影响力的小公司工作,也可能是一个普通创业团队的一员。其他程序员对你都有所耳闻,你正对这个领域产生积极影响。 9 a6 o/ J- E) A# U
- p# A9 M0 X/ w0 B$ ~/ B7 p9 {% {8 ]' ?9 i2 M
4. 能干的程序员:作为一名软件开发人员,你事业有成。公司需要你的技术,找份好工作对你来说永远不是件难事。你的同事尊重你。你工作过的每家公司都在你从事的方面取得了长足的进展。但是,仅此而已,别无他长?
7 Z: P5 M X( [: @$ F- }- ]) }
6 g& j+ x; |; Z; E( k: Q V' j2 Z# ^2 z: B9 L- c4 ^
5. 普通程序员:处在这个水平,你有自知之明,知道自己不是一个伟大的程序员——可能你永远都不会是。天赋跟成功鲜有关联。如果你拥有生意头脑和人际技巧,你会非常成功。 如果你是一名平庸的程序员,但是能够以此谋生,那么可以说你是很有天赋的,但不一定在编程方面。别低这份估自知之明,因为有自知之明的人比你想要的要少。 有没有天赋无关紧要,只要你能《发现自己的强项》并且持之以恒。 8 U5 K8 z8 k% C, a7 l; {3 u0 j" f
9 ^/ B; X2 y" `( ]3 ^1 M2 i8 l* q! ^' m# i4 s* `8 h& }4 o$ W
6. 业余程序员:一名业余程序员热爱编程,这说明:他可能是一名很有前途的学生或实习生,他们正在为开源项目做贡献,或者在业余时间开发有趣的”仅供娱乐”应用程序或网 站。他们的想法以及代码表明他们充满热情并且很有前途。成为一名业余程序员是一件很不错的事情,从这个阶段可以很快成为一名有作为的程序员。
" y# ^2 M* c2 n9 j6 o( d/ Y, {9 p9 g8 U2 S0 c2 I
8 @. u, c8 T8 R9 U' i, _& d
7. 不知名的程序员:这是众所周知的典型的一种程序员:无名氏。他们有能力(通常会有)但不出色,可能为一家不知名的大公司工作,但那只是一份工作不是生活的全部。不过,那也没有什么问题。
+ w& v$ |! c `- W* w* l G& b0 n5 v+ t2 u* ?' Y6 u
+ F4 |. u( E" _+ j: h8. 糟糕的程序员:那些没有一点技术或能力但不知怎么就成了程序员的人。他们接触的每件事情都会成为同事们的苦难——这些员工更糟糕,他们甚至不知道在和别人合作工作。 2 }0 V5 P" I+ L1 p
7 @8 b) u) @1 z" L7 i7 R& T, _$ T9 W/ S
这些糟糕的程序员有什么共同特征呢?按理说他们跟写什么样的代码无关——但不管怎样确实有关。 ! X$ @% R d+ J% h4 J+ I9 l7 H
8 |& r2 e' B5 }2 q$ P3 g* X
|
|