又看到一篇关于方法论的文章,观点还是不错的。翻译出来,分享给大家。如果有一项启发了你,那恭喜你。以下为正文内容:

就像没有两片相同的雪花一样,程序员也各有不同。每一片雪花都是由不同原子以独特的结构构成。同样,对于程序员来说无论学习的途径如何相似,在开发技能和能力上都会有所不同。

即使具有不同天资水平,能够达到行业顶峰或被公认的成功人士通常都是以习惯和技能作为坚实的基础。这也使他们可以更长久地接近最大效率,并在较长的时间持续获得更高质量的输出。

多年参与软件项目和管理人员的过程中,以下特质在成功人士中脱颖而出。这些技能和习惯不仅可以提高产出的效率和质量,还可以帮助任何人达到更高的水平。

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:只能说自测是一种美德。

作为软件工程师,越早养成成功的习惯和技能,你的职业将会越成功。记住要继续阅读和学习,永不放弃!

原文链接:《成功的软件工程师共有的10个习惯和技能》


程序新视界
公众号“程序新视界”,一个让你软实力、硬技术同步提升的平台

成功的软件工程师共有的10个习惯和技能相关推荐

  1. 软件工程师必读的10本书,你读了吗?

    全文共4614字,预计学习时长14分钟 来源:Pexels 若想成为一名优秀的软件工程师,在努力写代码的同时,"读代码"同样至关重要. 在当代社会,人们的日常生活因各种各样的新奇玩 ...

  2. 如何成为一名成功的软件工程师

    For the young, bright-eyed software engineers who are starting out in their careers, here are some o ...

  3. 技术支持工程师需要哪些技能_软件工程师的五种宝贵的非技术技能

    技术支持工程师需要哪些技能 The field of software engineering is one known for technical complexity, creativity, a ...

  4. 软件工程师们一些不好的习惯~

    点击上方名片关注我们 知道这些表现,你才能在自己的程序员职业生涯中不犯相同的错误! 软件行业的工作经验和你从事这个行业的工作年限直接相关.这句话在某种程度上是对的,但是你从事这项工作的年限,并不一定代 ...

  5. 软件工程师不可不知的10个概念

    出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求.除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这 ...

  6. 译稿:软件工程师不可不知的10个概念

    出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求.除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这 ...

  7. 软件工程师不可不知的10个概念 收藏

    软件工程师不可不知的10个概念 收藏 出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求.除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模 ...

  8. 软件工程师必备的24个软技能

    软技能通常是被低估的.几乎所有的软件工程师都知道要关注技术的提高,但是忽视的软技能很可能会影响你的职业生涯.下面疯狂软件Android培训技术专家将介绍24个对程序员非常重要的软技能,以方便程序员们在 ...

  9. 印度软件和中国软件工程师_如何成为印度的软件工程师?

    印度软件和中国软件工程师 Engineer. One of the most respected words in the dictionary of an Indian parent. If the ...

最新文章

  1. 求解单源最短路径的几种算法
  2. 码易众包:软件开发众包的未来不能只靠等待和呐喊
  3. 人的寿命可能与智商成正比
  4. 【Python基础】Python中必须知道的5对魔术方法
  5. 算法导论吃透后的水平_初学算法,你应该这么玩
  6. 操作系之进程调度及算法详解
  7. mysql utf8mb4 造成慢_mysql使用utf8mb4经验吐血总结
  8. 奉上一份云上数据安全保护指南
  9. python删除列表中的元素
  10. 任何性能指标越界或造成 APP 崩溃,优酷通用性能测试一招搞定
  11. vb中line的用法[转]
  12. OpenCV精进之路(二十):工具——图像标注小工具
  13. 我的个人博客live2d插件模型模块汇总(仅本人可使用,无需看)
  14. 5G关键技术之D2D
  15. webgame php源码,最WEB游戏源码服务端(完整修改版).doc
  16. 电脑重装Win10 64位系统的方法
  17. JAVA面试题100道
  18. 男的依然禽兽,女的已禽兽不如
  19. TRIZ系列-创新原理-1-分割原理
  20. 超神狙击游戏服务器维护中,超神狙击新手常见问题FAQ

热门文章

  1. confirm-order提交订单
  2. tplogin 服务器未响应,为什么tplogin.cn老是域名解析错误
  3. Windows7系统服务详解
  4. 网盘修复版新增qq支付仿城通网盘115网盘源码下载
  5. cesium 使用entities、primitives添加的模型并且改变模型颜色
  6. Homebrew替换阿里云镜像源
  7. Linux 10个主流发行版本
  8. Apache 防止恶意解析
  9. phpstudy安装php8.0和php8.1的方法(内含VC运行库)
  10. VICA 架构设计(1)