HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

怎样才能成为一名出色的资深开发者?

  • 2019-09-23
  • 本文字数:2988 字

    阅读完需:约 10 分钟

怎样才能成为一名出色的资深开发者?

做什么不重要,怎么做才重要。



如果你想成为一名真正杰出的资深开发者,那只有一个办法:犯错误、改正错误、从错误中学习、分享错误、再重复这一过程。


所有犯过的错误都将成为你的宝贵经历。再从经历中学习,这就是成为一名成功资深开发者的关键。很简单,对吗?


换句话说,你刚刚步入社会,成了一名初级开发者,你纠结着该怎样做才能取得职业发展。这只是时间的问题吗?你要不要回到学校继续深造呢?或者再多拿些高级认证?


并不全是。


虽然正规教育可以让你迅速得到提升,但事实上我认识许多资深开发者,他们都只有大学学历而已。


好的资深开发者不仅要能写出漂亮的代码,还必须具备某些其它特质,这样才能受到别人的青睐。资深开发者是能为公司带来 10 倍以上价值的人,他们知道好的东西是怎样的,可以为顾客交付价值。


不要把资深开发者仅仅当成一个职务名称,它更是一套工作上的行为准则。不是你的工作内容,而是你的做事方法,让你真正地成为资深开发者。关于这一点没有什么好商量的。你不可能一进入职场就是个资深开发者,在成长的过程中你肯定会犯错,犯很多很多的错,但这些最终都会转换成你学到的东西和经验。


下面这些特质是我从许多资深开发者身上总结出来的,正是这些特质,把他们与普通的开发者区别开来。

1.他们很好奇

正如阿尔伯特·爱因斯坦所说:


我并不聪明,我只是特别好奇。


研究表明,当好奇心被激发时,人学习和记住知识的能力都会得到大幅度提升。当你好奇时,大脑中的奖励系统就会开始发挥作用,大脑分泌出名为“多巴胺”的化学物质,让人变得异常兴奋,学习速度非常快,即使对枯燥的内容也是如此。


好的资深开发者会更进一步。他们会有组织有计划地引导自己的好奇心,在紧急状况下就会用上自己积累起来的知识。


举个例子,先把一门编程语言学深学透,然后再扩展开,去学习其它语言。

2.他们会对选中的平台进行彻底研究

你不太可能碰上一个别人从未碰到过的编程问题。也没几家公司开发的东西真的是别的公司没有做过的。


正因如此,在使用你的语言和平台的过程中,你所面临的绝大多数问题,都曾经被解决过。


比如,我曾经利用 SAP 自带的面向对象类,将 30,000 行的 SAP ABAP 代码模块化,最终成了一个 200 行的类。我能做出这样的成绩,最主要的原因是我决心在了解其它 SAP 模块之前,先深入掌握 ABAP。我知道这样做会很慢,但付出的努力是值得的。


好的开发者从来不会满足于现状。不管他们的代码能不能工作,他们对每个应该问的问题,都会努力找出答案。

3.他们都是好导师

John Crosby 曾经一针见血地说:


辅导就是深入别的想法,听取别人的意见,再朝正确的方向推一把。


谷歌曾在 2008 年对这个问题做了一次重要研究。谷歌人才创新实验室的氧气计划团队以绩效评语、员工调查、优秀经理奖提名和其它信息等为素材,进行了长达一年的数据挖掘研究,以评估得分高和得分低的经理之间到底有多大差别。他们对 100 多名经理的 10,000 多项数据进行了研究。


研究有两点重要发现:


  • 要想取得管理成功,最重要的事就是做好导师工作。成功的经理们知道怎样指导团队成员获得成功。

  • 最不重要的事就是技术实力。这也从另一个角度证明,好的开发者不一定能成为一个好的经理。


根据研究成果,谷歌修改了他们的调查反馈模板,以反映出这些特质。在过去他们注重衡量经理人的产出如何,现在则关注他们花多少时间来指导团队,对愿景是否沟通得清晰有效,等等。他们也以这些技能为中心,开发了新的管理培训项目。


他们说,每个资深开发者的核心期望之一,就是要能够与内外部用户和合作者进行有效沟通。非技术背景的人没办法理解技术行话。所以最好的资深开发者反而总没办法在技术上得到别人的赞赏。


所以,你要提升自己的沟通能力,迅速判断听众们能听懂什么水平的技术术语,然后用简单的语言和贴近生活的例子来解释复杂的技术概念。


辅导紧密关系着新手向老手的成长,不管是职业发展还是个人成长。分享知识,分享经验,提前锻炼团队。

4.他们没有“闪亮玩具” 综合症

如杰夫·贝索斯所说:


公司不应该对闪亮的东西上瘾,因为闪亮的东西不长久。


这也适用于开发者。事实上,大多数开发者都是属喜鹊的,他们总是喜欢搜罗新鲜闪亮的东西,不管怎样先保存起来,再慢慢寻找用途。


如果你对这种现象没什么切身感受的话,闪亮玩具综合症的典型特征就是想拥有最新潮的玩具,不管有没有实际用途,不管是否需要。或者就是痴迷于紧张而又短暂的拥有感,然后很快就移情别恋了。


好的资深开发者会不断提醒自己不要犯这样的毛病。他们很清楚什么时候不要做什么事。他们知道很多决定都是坏决定,比如为了提高可读性而把一个库完全重写,或者从旧框架切换到一个全新的框架。他们并不害怕风险,他们只是知道哪些事情该做而已。


所有事情最终都会归结到代码上。代码应该只做它应该做的事,别的什么都不要做。代码的功能要清晰易懂,让人花几分钟甚至几秒钟就能明白。浏览代码应该非常容易,对水平不高的开发者也应如此。


大道至简。

5.他们承认有自己不知道的东西

Neil Gaiman 曾说:


发现自己不知道某些东西,有时候正是弥补的良机。


世上最难说出口的一句话,不是“我爱你”,而是“我不知道”。行为经济学畅销书《魔鬼经济学》的作者 Stephen J. Dubner 和 Steven D. Levitt 这么认为。


这一刻无法避免,但当它发生时你又如何应对?你滔滔不绝地把自己的成就大讲特讲了 20 分钟,造就了领域专家的形象,享受着领军人物的光环。人们不断地提问,你游刃有余地解答。终于他们问到了一些其实你并不太懂的东西,这时候你会怎么办?


对许多人来说这是非常扫兴的事,但事实上直接承认也没什么大不了的,总比掩盖自己的短板好,不管是知识还是技能上的。这时最关键的就是你将如何解决这样的问题,不管是请教别人还是自己去深入钻研。


你对待问题的方式,正是你能否变得资深的关键。你能否深入了解他们问这样问题的原因,了解更多的背景知识,扩展自己的知识面?你能不能为他们提供帮助,一起找出问题的答案?你愿不愿意事后再研究一下,并且把答案反馈给他们?


成为一个资深开发者并不意味着你要无所不知、无所不晓。它只是意味着你可以帮助大家找到问题的答案。

6.最后,他们可以感受到坏代码的味道

在这个问题上,Seymour Cray 一语中的:


程序员们的问题在于,你完全没办法知道他们在做什么,直到错过良机,无法补救。


正因如此,好的资深开发者们都对代码的“味道”特别敏感。如果看起来或者闻起来像是坏代码,那就很可能是坏代码。之前的开发者很可能在这个问题上犯过错误,你也一样会。写代码就是这么回事。


当我们不断地解决接踵而至的新问题时,也要不断努力提高现有代码库的质量,起码保证不要变坏。所以当你挠头“谁写了这么烂的代码啊”的时候,下一个跟着要问的问题就应该是:“我该怎样才能让它变好呢?”


在想明白怎么改进之前,你先得知道要改进什么。你要知道好的代码和坏的代码都长什么样子。顶级足球运动员与普通运动员之间的区别之一,就在于他们会多花很多时间去研究其他运动员的比赛。我相信对顶级开发者来说也是一样的。


有味道的代码就是那些你也没办法说清楚为什么,但就是感觉不对劲的代码。这样的代码就应该被去除掉。这也是你做为一个资深开发者的独特卖点之一,可以让你鹤立鸡群。要做正确的事,即使不一定要马上开始。


用 Donald Kruth 的话来说:


我猜编程就和平凡的生活一样。如果你喜欢什么东西,你就会在其中发现美。


英文原文:


How to Be a Good Senior Developer


2019-09-23 11:353733
用户头像

发布了 152 篇内容, 共 70.7 次阅读, 收获喜欢 64 次。

关注

评论 1 条评论

发布
用户头像
认同
2019-09-25 19:08
回复
没有更多了
发现更多内容

架构师训练营week04 summary

Nick

极客大学架构师训练营

总结04-互联网架构演化

梦子说

课程作业

架构师第四课总结

Dennis

Week 04 作业

鱼_XueTr

架构

深入解析典型的大型互联网应用系统

拈香(曾德政)

互联网 架构师 极客大学架构师训练营 互联网架构 互联网应用技术方案

架构师课作业 - 第四周

Tulane

架构师训练营Week04homework

Nick

极客大学架构师训练营

互联网系统架构总结

紫极

架构师训练营 - 总结4

进击的炮灰

分布式系统架构学习总结(第四周)

吴建中

极客大学架构师训练营

面向对象学习

一叶知秋

架构师训练营第四周课后总结

Cloud.

第四周作业 - 命题作业

molly

极客大学架构师训练营

系统架构

olderwei

极客大学架构师训练营

一周风云之互联网构架演进

Dawn

week4 命题作业

小叶

极客大学架构师训练营

架构师训练营第四周

跨域刀

极客大学架构师训练营

系统架构知识是架构师的常识而不是能力(第 4 周学习总结)

李德政

极客大学架构师训练营

大规模复杂系统如何架构(一)?

李小匪

架构 极客大学架构师训练营

架构师训练营第四周总结

allen

大型互联网应用的发展和未来

拈香(曾德政)

互联网 极客大学架构师训练营 互联网架构 互联网架构的演进

架构模式和重构

GalaxyCreater

架构

大型互联网应用系统所使用的技术方案

olderwei

极客大学架构师训练营

架构师训练营第四周作业和小记

tuuezzy

架构师 极客大学架构师训练营

第四周总结

而立斋

第四周 - 学习总结

molly

极客大学架构师训练营

04周作业——互联网系统架构

dao

极客大学架构师训练营 作业

架构师训练营第 4 周作业

Season

极客大学架构师训练营

架构师训练营第四周总结

跨域刀

极客大学架构师训练营

架构师训练营-作业4

紫极

互联网架构演进的学习思考

架构5班杨娟Jessie

极客大学架构师训练营

怎样才能成为一名出色的资深开发者?_语言 & 开发_Ravi Shankar Rajan_InfoQ精选文章