如何成为一名冠军程序员?

如何成为一名冠军程序员?

距我上一篇非技术文章已经有些时日。但一些程序员朋友们一直在向我征求职业生涯的建议,现在我觉得是时候再写一篇了。顺带提及,如果你有心思去看其他的东西——我已经开始在 Heinz’s Worst Recipes (海因茨最差食谱)上记录我所烹饪过的那些惨不忍睹的食物。受我好吃的强烈欲望所致——这可以由我的腰围证明,烹饪成为我的一大爱好。我远远不能成为一个合格的厨子,因为我从来不遵循食谱,由此我所烹饪的许多食物也以“黯然不可食”的状态被抛弃掉,当然有时候在做了足够的尝试、出了足够多的问题后也能遂我所愿。在我的博客中,成功和失败的例子都被记录了。当然,这和 Java 毫无瓜葛。

通知:欢迎查看我们新一期的 “Extreme Java ( 极限 Java )” 课程。这一期结合了并发、一点点性能优化与 Java 8 的内容。 Extreme Java – Concurrency & Performance for Java 8。

如何成为一名 Java 冠军程序员?

几个月前,我和的商务合作伙伴 Carl 以及我们的法国课程导师 Xavier 在巴黎的一家餐厅就餐。在谈话中,我和 Carl 就我们年轻时使用的那些炫酷技术而谈笑风生。与此同时,我注意到 Xavier 沉默良久,于是我决定询问他的年龄。虽然不能确切的想起他的年龄,但我记得他与我年龄差距很大,和我第二个孩子的年龄相仿。这意味着,多少年来,我和 Carl 同时有过的那些编程经历,对他来说一文不值。

软件工程师的职业生涯里,知识有一个三年的半衰期。这意味着三年后,你所拥有的一半知识是毫无价值的。举这样一个例子,年纪越大,就越难看到有谁能够了解 TSR(内存驻留程序 Terminate-Stay-Resident ),而找到曾经写过一个 TSR 的人更是如同大海捞针。在 DOS 系统里,并不能让多个程序同时运行。因此,在我们需要一个后台功能的时候,比如日历或计算器,我们就会写一个内存驻留程序( Terminate-Stay-Resident program ),然后通过特定的组合键从另外一个程序中激活。

在这个行业里,知识的三年半衰期实际上是件极好的事情,这使你永远不会变成沉舟病树。少年时期,人们警告我、反对我成为一个程序员,认为我将被迫持续学习新东西,而我却认为我们的工作将因此而受益。

首先,头脑应该保持新鲜和活跃。上次见到我祖母的时候,她已经 98 岁高龄了,行走不便,但依然心如明镜。她看到我的 Macbook Pro 便说:“哟,这看起不错,我也想买一个。”正是因为她不断地学习新东西,使得她头脑清醒。

其次,忽略那些你并不是非常感兴趣的技术,因为不久之后它们就会被取代。我举一个 Subversion 的例子。我过去使用它,因为我必须使用它,但我没有特别对待它,我并没有成为一个 Subversion 的专家。几年之后,git 出现了,只能对 Subversion 挥手拜拜。可悲的是,今年我有一个客户居然从 CVS 迁移到 Subversion !这可是 2015 年!

好了,让我们重返的主题——怎样成为冠军程序员?我认为以下几点是非常有帮助的:

  1. 强大的记忆力。当我上八年级的时候,全因那位死气沉沉的历史老师,让我自己都相信我的记忆力太差了。然而,令我惊讶的是,历经多年程序员的工作,我惊奇地发现自己对之前看过的 Java 源代码可以立即重现。在我阅读 JDK 里的一个方法(method)的时侯,我常常能说出该方法(method)相较先前版本有无改动。也许我并不能记清楚某个人的长相和名字,但是对于 Java 代码可以做到过目不忘——要是人的名字也是 for 循环就好了。所幸,缺乏好的记忆力也丝毫不影响我们成为冠军程序员,但拥有强大的记忆力依然是一个明显的优势。
  2. 数学能力。不是成为一个数学高手才能成为一个好的 Java 程序员,但数学能力显然会帮助你拥有成为优秀程序员的资质。今年一月份我有点空余时间,于是决定去试试欧拉谜题(Project Euler)。其中有一个谜题需要运行九个半小时去寻找解决方案。在它运行的过程中,我看了一下这个问题,然后发现其中数字间的一点关系,这可以用以优化解决方案。我再次运行,这次只花了 6 分钟。与此同时,我第一个算法仍然持续运行,尝试找到答案。我再次回到数字中去,发现了另外一种没有见过的模式,现在它只需要 6 秒钟就完成了。我也尝试过用聪明的编程技巧和并行去暴力优化代码,这可能让速度加快了一点点,但是依然没有办法使之少于 6 秒钟。

大约十年前, Sun 发布了 Java 冠军程序员(Java Champion)计划。这个点子是用来发现世界上最顶尖的 1000 个 Java 专家,他们在也积极的做事情来帮助 Java 提升。我们现在大概排名在第 160 名。 Oracle 公司持续进行着这个计划,而且在过去的几年里,我们看到了这个认可制度的更多好处。这是一个自选的团体。新的冠军是被现存冠军推介并进行票选的。通常情况下,在选定冠军之前,需要有十多个赞成,而一个反对就会否决提议。自荐的情况是会被考虑的,但是一般不会得到足够多的支持。

程序员朋友们经常问我是怎么成为 Java 冠军程序员的,“很简单”我说,“只要和我一样,发表 200 篇 Java 相关的文章;要么写个 Hibernate、Spring、Jacoco 什么的;或者在 StackOverFlow 上回答数千个问题并出版一打好文章;或者组织欧洲最大的 Java 开发者大会。”

你需要做一些卓越的事情,这将花费时间和精力。没有人因为他们的个人魅力和颜值而成为 Java 冠军程序员,全靠辛苦工作才可以,这也许是为什么我们的名字后面没有脸部照片的原因

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值