成功的软件工程师共有的10个习惯和技能
又看到一篇关于方法论的文章,观点还是不错的。翻译出来,分享给大家。如果有一项启发了你,那恭喜你。以下为正文内容:
就像没有两片相同的雪花一样,程序员也各有不同。每一片雪花都是由不同原子以独特的结构构成。同样,对于程序员来说无论学习的途径如何相似,在开发技能和能力上都会有所不同。
即使具有不同天资水平,能够达到行业顶峰或被公认的成功人士通常都是以习惯和技能作为坚实的基础。这也使他们可以更长久地接近最大效率,并在较长的时间持续获得更高质量的输出。
多年参与软件项目和管理人员的过程中,以下特质在成功人士中脱颖而出。这些技能和习惯不仅可以提高产出的效率和质量,还可以帮助任何人达到更高的水平。
1.寻找有效管理时间的方法
最好的软件工程师既要编写代码,又要作为自己的时间管理者,从而保持较高的效率。
大多数软件工程师需要独自完成某些艰巨的开发任务,它们往往需要深入的思考和规划。这也意味着被干扰和注意力分散的可能性很高。
优秀的工程师了解如何避免这些干扰,如何在有效区间中最大化时间,从而产生最大输出和极限效率。
PS:像“番茄工作法”和“四象限工作法”都是不错的时间管理法,可根据自己的需要和习惯来运用。
2.遵守编码标准
你应该始终以一致的风格来编写代码。
如果你所在的团队有一个标准可以遵循,那就太好了。如果没有,那么你应该建立自己的标准。遵循标准提供了一套行事准则,随着时间的流逝会提高输出的效率和一致性。
个人标准还可以帮助你识别曾经写的代码,当需要排查、修改或重构代码时提供有效的帮助。当你忘记曾经写的代码时,统一的编码风格也可以为你提供熟悉的感觉,从而提升回顾代码的效率。
PS:规范化是批量化生产的基础。统一的规范,统一的编码风格,即使忘记了当初的业务逻辑,也可以快速梳理。
3.尽早且经常与团队和老板沟通
世界是互联的,没有一个工程师是在真空中工作。
任何正在进行的项目,总会有利益相关者。优秀的软件工程师会意识到这一点的重要性,并努力确保每个利益相关者(无论相关程度如何)的知情权,并能够快速了解开发的最新状况。
沟通是优秀团队合作的基础,而最好的工程师始终会努力使每个人都持续获得最新进展。
PS:说沟通是最大的生产力一点不为过,关键是还能修正错误的认知,产生新的灵感,当然前提是有效沟通。
4.寻找学习的榜样
总有更多的东西需要学习。
无论多么擅长某种语言或方法,总会有某些新的事物在某刻出现。作为软件工程师,成长的最佳方法之一就是跟随聪明人的脚步,因为他们已经在前面铺好了路。
这并不需要构建特定的师生关系。团队中的成员、博客作者、领导以及开源项目都可以为自己的职业生涯提供知识和价值的来源。核心目标就是永不停止地学习。
PS:曾经一直感慨职场中缺少可以学习的榜样。后来发现,读书、读博客、读源代码等也是在向榜样学习。
5.尽早且经常的核查
目前代码的版本控制已经没有什么限制了,易用且只需花很少精力即可完成操作。所以,尽情的使用吧。
因为没有备份而失去工作,一点都不冤。现有的工具使备份的成本变得微不足道,将其作为工作中优先级较高的事项来处理吧。
很多软件都会自动进行备份,出错的可能性极小,但不是没有可能。养成经常备份和检查的习惯是保持持续进步和高效的重要手段。
PS:曾经写了上百页的文档,突然软件崩溃了,自己也差不多崩溃了,还好最后找回来了大部分的内容。必备技能:Ctrl + S。
6.平衡工作与生活
工作永无止境,企业只会压榨出你最后的一点价值。
沉浸于一个大项目是很容易发生的事,如果你让这件事发生,它会耗尽你所有的精力。但大脑需要休息和刺激,而不是通过电脑屏幕、键盘和更多的咖啡来保持较高的效率。
周末的存在是有原因的。花一点时间去散步、看一场演出或遛遛狗。当你回来的时,工作就在那里,你可以通过平衡工作和个人生活来获得更高的平均产出。
PS:啥都不说了,劳逸结合。如果还在996,就得动点脑筋了,毕竟挣钱是为了更好的生活,更健康的生活。
7.持续进行个人项目
任何人都不可能在各个领域保持处于前沿水平。
即使你正在从事着最前沿的工作,仍然有许多没有探索或学习的前沿技术。
个人学习和独立项目是继续学习新领域的关键,而这些领域可能是正常的8-5工作制中所不能涵盖的。通过个人项目可以使你跟上其他技术领域的发展并与其建立关联性,创造学习的机会。
PS:以项目实战引领学习节奏。
8.学会准确预估
工作是按日期和时间表进行的。
无论你的开发方法有多敏捷,总会在某刻出现一个问题:“什么时候能准备好?”
通过了解自己的工作习惯以及单位时间的产出,可以更轻松地得到一个准确的答案。诀窍是要在正式加入团队之前就了解到这一点。了解自己的能力和局限性可以让你更自信更准确地回答这个问题。
9.注解代码
随着时间的推移,你会逐渐遗忘为什么用这种方式来实现这个函数。
未来的某一天,回顾旧代码时,需要花费同样的精力来理解代码是你还是其他人写的。注解代码提供了一种方式,使任何人(包括你自己)都可以快速了解上下文内容,从而可以排查、维护或修改软件。
当使用注解成为一种习惯,不仅可以跨越时间的保留当初设计的初衷,而且还可以获得比阅读代码更好、更快的理解和处理复杂业务逻辑的优势。
PS:永远不要相信你的记忆力。多篇文章中都提到文档和注解的作用。一个月后看自己的代码与看别人的代码基本上没啥区别。
10.学习如何对自己的工作进行质量检查
没有人比编写软件的人更了解软件的优势和局限性。
在将新特性和功能交付他人review之前,执行自己的质量检查(QA)是编写稳定、完整软件的宝贵工具。
学习和实践测试驱动开发(TDD)等技能,并了解如何有效地对自己的代码进行360度审查,寻找边界情况,将使你在输出质量方面远远超过其他人。不管这个过程看起来多么无聊或耗时,学习如何有效地进行质量检查将使你成为一个更好的软件工程师。
PS:只能说自测是一种美德。
作为软件工程师,越早养成成功的习惯和技能,你的职业将会越成功。记住要继续阅读和学习,永不放弃!
原文链接:https://levelup.gitconnected.com/99-of-successful-software-engineers-practice-these-10-habits-skills-52b18a2a7bdf
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接