写点什么

如何成为一名优秀的软件工程师

  • 2014-09-21
  • 本文字数:1353 字

    阅读完需:约 4 分钟

成为一名优秀的软件工程师是每一个软件工程师的目标,但是在实际中,优秀的软件工程师和一般的软件工程师的表现肯定是参差不齐的,这是什么原因造成的呢?这是一个我们必须反思的问题,同时还是一个关乎团队建设和个人成长的重要问题。Katsuya Noguchi 总结了优秀的软件工程师和一般的软件工程师的不同表现,为如何成长为优秀的软件工程师提供了启发和指导。

现对这些不同点进行了整理更新,具体内容如下:

1、编写高质量的代码

良好的编程习惯不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。优秀的软件工程师都具有良好的编程习惯,他们编写尽量少的代码即可满足需求,还能够引入恰当的抽象层次,重构代码,将业务逻辑和其他程序逻辑分离。

一般的软件工程师编写不出高质量的代码,他们只关心自己的代码是否能够达到预期的输出结果,只要有输出结果,就认为自己的任务完成了,根本不在乎代码的可维护性和可读性。

2、快速、高质量的产出

优秀的软件工程师能够在代码质量和开发所耗时间上做出很好的权衡,能够严格控制技术风险,不断完善自己,能够在有限的时间内写出高质量的代码。

一般的工程师写出的代码质量很低,还声称是最优的设计,时间限制常常是他们怠工的借口。他们的代码会给企业带来很大的负担,并给团队成员留下一大堆问题。

3、解决问题能力

优秀的软件工程师不会盲目地编写项目代码,他们会确定每个问题的目标,找出问题的根本原因,并找到解决问题的合理方案。优秀的软件工程师会将大问题分拆为小问题,针对小问题进行理解、构思、计划、维护和重用。

一般的软件工程师只是匆忙编码,解决所分配的问题,不会进一步思考正在解决的问题,从不考虑长期影响。

4、正确的决定

优秀的软件工程师深知没有完美的设计、服务和工具,他们还深刻理解可选方案以及实际状况的约束并能做出适当的权衡。

一般的软件工程师只是盲目地使用当前比较流行的服务、设计和工具,而不做更深一步的理解和研究。

5、团队精神

团队精神和协作能力是程序员应该具备的最基本素质,优秀的软件工程师所写的代码不仅能够让机器高效地执行,更重要的是能够方便其他工程师阅读、改进和使用。他们写测试用例,确保所写代码的正确性,还能够方便其他人对程序进行改进。他们充分利用审查和使用代码的机会,学习其他部分的代码、分享代码风格、控制整个代码的质量。他们认识到并且坚信,代码审查的过程是相互学习和提高整个工程团队产出质量的最佳时机之一。他们的评论能够帮助团队成员成长,他们考虑整体设计、边缘情况、格式改进及提高代码整体质量的其他优化措施。

一般的软件工程师根本就不关心自己代码的可维护性和可读性,他们很少写测试用例,除非写测试用例是指派的任务。

6、洞察力

优秀的软件工程师具有长远的眼光,使他们能够承担起各种困难的软件项目,他们经历过无数的非预期任务,如被喊去解决线上服务器的问题,处理积累了很多技术债的代码以及面对较为紧张的期限。

一般的软件工程师对发生的问题从不积极响应,还责怪别人处理不当;当事情进展不顺时,他们很容易失去信心或推卸责任,不主动、不认真地解决问题。


感谢臧秀涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-09-21 08:325911
用户头像

发布了 92 篇内容, 共 47.1 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

B站容量管理:游戏赛事等大型活动资源如何快速提升10+倍?

TakinTalks稳定性社区

OceanBase发布全新Logo,寓意「流动的数据」

OceanBase 数据库

数据库 oceanbase

分享:数据库存储与索引技术(二) 分布式数据库基石——LSM树

OceanBase 数据库

数据库 oceanbase

分享:数据库存储与索引技术(三)LSM树实现案例

OceanBase 数据库

数据库 oceanbase

Tapdata 赋能敏捷转型:头部知识付费应用如何搭载实时数据快速提升人效,创造业务增长点

tapdata

数据库

智能公厕应用人工智能技术,实现智慧化管理与服务

光明源智慧厕所

智慧城市

低代码起势,开发者可以早日脱离996了?

引迈信息

程序员 前端 低代码 996

终于学完国内算法牛人10年经验总结的数据结构与算法详解文档

做梦都在改BUG

Java 数据结构 算法

保利威1号演播厅重磅亮相,「新品+标准」引领企业进入元宇宙直播

ToB行业头条

Koordinator 助力 ACK 容器调度升级,提升应用性能,节约资源成本

阿里巴巴云原生

阿里云 容器 云原生 Koordinator

2+1链动模式商城开发系统案例

薇電13242772558

NFT

OpenKruise 成为 CNCF 孵化项目:为大规模采用 Kubernetes 打开大门

阿里巴巴云原生

阿里云 开源 云原生 OpenKruise cncf

Mac苹果电脑怎么调整磁盘分区大小

互联网搬砖工作者

flutter系列之:在flutter中使用媒体播放器

程序那些事

flutter 架构 大前端 程序那些事

用AI回忆起曾被忘却的语言

脑极体

AI

尚硅谷数据湖Iceberg视频教程发布

小谷哥

Groovy关键字def

FunTester

vika维格表 x 阿里云计算巢:SaaS 云端私有化部署,助力企业数字化转型

云布道师

计算巢

CNStack 云边协同平台:实现原生边缘竟能如此简单

阿里巴巴云原生

阿里云 云原生 CNStack

数智转型助力建筑业全产业链升级,你了解多少?

加入高科技仿生人

低代码 数字孪生 数智化 建筑业

MobTech|什么是SDK

MobTech袤博科技

天津市人工智能计算中心揭牌 天下津梁融汇AI之力

脑极体

算力

Gogs/Gitea 环境搭建

流火

git gogs Gitea

国网信通产业集团*IoTDB | 三平台管理百亿级累计数据,构建端边云全周期电力数据高效解决方案

Apache IoTDB

IoTDB 国产时序数据库

mac电脑打开应用“意外退出”的问题

互联网搬砖工作者

业界首发丨《云原生网络数据面可观测性最佳实践》重磅来袭

阿里巴巴云原生

阿里云 云原生 可观测

从底层操作系统到容器云平台:OpenCloudOS与秒云构筑完美兼容链

OpenCloudOS

Linux 云平台

Python之configparser模块详解和使用

Python 测试 自动化测试 pytest 测试报告

OpenHarmony关系型数据库查询结果呈现

白晓明

关系型数据库 数据库查询 OpenHarmony

2023最新最全Java面试速成指南,面试骚操作都在里面了

程序员小毕

程序员 后端 高并发 架构师 java面试

如何在容器服务 ACK 玩转 MSE Ingress

阿里巴巴云原生

阿里云 容器 微服务 云原生

如何成为一名优秀的软件工程师_语言 & 开发_李士窑_InfoQ精选文章