当前位置: 首页 > 科技观察

如何成为Java冠军程序员?

时间:2023-03-21 11:51:44 科技观察

我上一篇非技术文章已经有一段时间了。但是一直有一些程序员朋友向我咨询职业建议,现在我觉得是时候再写一篇了。顺便说一句,如果你想吃其他东西——我已经开始记录我在亨氏最糟糕的食谱上做的糟糕的饭菜了。在我强烈的食欲的推动下——从我的腰围可以看出——烹饪成为我的一大爱好。我远不是一个好厨师,因为我从不遵循食谱,而且我做的很多食物有时会因为“不可食用”而被扔掉,当然,在尝试了足够多的失败之后。经过足够多的问题,我可以得到我想要的。成功和失败都记录在我的博客中。当然,这与Java无关。如何成为Java冠军程序员?几个月前,我和我的商业伙伴Carl以及我们的法语课程导师Xavier在巴黎的一家餐厅用餐。在我们的谈话中,卡尔和我对我们年轻时使用的所有酷技术大笑起来。与此同时,我注意到泽维尔久久没有说话,于是决定问问他的年龄。我不记得他具体多大了,但我记得他和我很不一样,和我的第二个孩子差不多大。这意味着,多年来,卡尔和我同时拥有的所有编程经验对他来说都一文不值。在软件工程师的职业生涯中,知识的半衰期为三年。这意味着三年后,你所拥有的知识有一半毫无价值。举个这样的例子,年纪越大越难见到能看懂TSR(Terminate-Stay-Resident)的人,找写过TSR的人就像大海捞针。在DOS系统中,不能同时运行多个程序。因此,当我们需要一个后台功能时,比如日历或计算器,我们会编写一个内存驻留程序(Terminate-Stay-Residentprogram),然后通过特定的组合键从另一个程序中激活它。三年半的知识寿命其实是这个行业的一件很奇妙的事情,它让你永远不会成为一艘死船。十几岁的时候,人们警告我不要成为一名程序员,认为我会被迫不断学习新事物,而我认为我们的工作会从中受益。首先,要保持头脑清醒和活跃。上次见外婆,98岁高龄,走路不便,但依旧如镜。她看到我的MacbookPro说:“哟,看起来不错,我也想买一台。”这是她不断学习新事物的事实,使她的头脑保持清醒。第二,忽略你不太感兴趣的技术,因为它们很快就会被淘汰。我将举一个Subversion的例子。我曾经因为不得不用它而使用它,但我并没有特别对待它,也没有成为Subversion专家。几年后,git出现了,与Subversion只能挥手告别。可悲的是,今年我有一个客户从CVS迁移到Subversion!现在是2015年!好了,让我们回到主题——如何成为冠军程序员?我认为以下几点很有帮助:记忆力强。在我八年级的时候,都是因为那个死去的历史老师让我相信我的记忆力很糟糕。然而,令我惊讶的是,经过多年的程序员工作后,我惊奇地发现我可以如此迅速地重现我以前看过的Java源代码。我在读取JDK中的一个方法(method)的时候,经常能分辨出这个方法(method)和之前的版本有没有变化。也许我记不清某人的脸和名字,但我能记住Java代码——要是这个人的名字也是一个for循环就好了。幸运的是,缺乏良好的记忆力丝毫不能使我们成为冠军程序员,但拥有强大的记忆力仍然是一个明显的优势。数学能力。成为一名优秀的Java程序员不需要成为数学高手,但数学技能显然会帮助您具备成为一名优秀程序员所需的条件。今年1月我有一些空闲时间,所以我决定尝试ProjectEuler。其中一个谜题需要跑九个半小时才能找到答案。当它运行时,我看了一下问题,发现可以用来优化解决方案的数字之间有一点关系。我又跑了一遍,这次只用了6分钟。与此同时,我的第一个算法仍在运行,试图找到答案。我再次回到数字,发现了另一种我以前从未见过的模式,现在只需6秒即可完成。我还尝试使用巧妙的编程技巧和并行机制对代码进行暴力破解,这可能会加快速度,但仍然无法在6秒内完成。大约十年前,Sun推出了Java冠军程序员(JavaChampion)计划。这个想法是为了发现世界上排名前1000位的Java专家,他们也在积极做一些事情来帮助Java改进。我们现在大约是第160位。甲骨文公司继续这个项目,在过去的几年里,我们看到了这个背书系统带来的更多好处。这是一个自选组。新冠军由现有冠军推荐和投票选出。通常,在选出冠军之前需要十几票赞成,而一票反对将否决该提案。自荐会被考虑,但一般不会得到足够的支持。经常有程序员朋友问我是如何成为Java冠军程序员的。“很简单”我说,“就像我一样,发表200篇Java相关的文章;要么写Hibernate、Spring、Jacoco什么的;回答几千个问题,在StackOverFlow上发表十几篇好文章;要么组织最大的Java开发者大会在欧洲。”你需要做一些了不起的事情,这需要时间和努力。没有人是Java冠军程序员是因为他们的魅力和漂亮的外表,这都是关于努力工作的,这可能就是为什么我们的名字后面没有面部照片的原因。甚至,不要为了成为冠军程序员而成为冠军程序员。放下自私,等待别人的赞美会让你感觉更好。并不是每个冠军程序员都会被正式冠以“OracleJavaChampion(甲骨文Java冠军程序员)”的头衔。无论选择哪条道路,成为冠军程序员都意味着奉献。完全不同于朝九晚五的工作作风。你不可能边上班边学习所有你需要的知识。要成为冠军程序员,你需要利用晚上和周末的时间学习,与时俱进。最夸张的笑话是,程序员一到40岁就会进入淘汰期。也许他们的Java编程做得还不错——除非他们通过阅读书籍、文章或参加开发者大会来更新知识,具有挑战性的课程——那么仅仅依靠纸质文凭最终将变得一文不值,行业将把它们像用过的餐巾纸一样扔掉。不要成为这样的人!学习,学习,再学习!而最好的学习方式无疑是与同事分享知识。如何分享你的知识?今天,我们有很多选择:我们可以在StackOverflow或其他类似网站上回答问题;通过“设计模式”的方式。这需要做出一些牺牲,您可能不得不放弃午餐,用几个晚上的时间为会议做准备。然而,要学习的不仅仅是成为信息的消费者。“TheJava?Specialists'Newsletter”现在已被130多个国家的70,000多名程序员阅读,但它开始时规模很小,以至于我将它发送给了我的80位朋友和家人(包括我的兄弟和父母),我恳求他们转发给他们的朋友和同事。它随着时间的推移缓慢发展。我相信如果你环顾四周,你会发现80个电子邮件地址,这就是它的开始。一切从小做起。它发展缓慢,但稳定。我知道当你看到70,000这个数字时,可能会感到害怕,但这只是Java程序员的一小部分。***,我想用一个非常有帮助的观点来结束这篇文章:热情。大多数人不得不从事枯燥的计算机工作,很少有人喜欢它。在我的一份工作中,他们指派一名电子工程师负责组织源代码存储库。他完全弄错了——在他进行源代码控制时,让我们在目录之间复制源代码树。我们必须在每周构建期间同时执行此操作,并且服务器像爬虫一样慢。机器死机通常需要几个小时,每个人都只能等待,这是痛苦和令人沮丧的。我对VSS(VisualSourceSafe:用于管理软件开发中各种版本的源代码和文档)并不热心。找一件你热衷的事,应该是你下班后很想做的事。对我来说,它正在研究Java生态系统的各个角落。当有无数理由停下来时,热情是让我们继续前进的动力。这有点像我喜欢烹饪的原因。不过庆幸的是,我的编程水平比做饭的还高。