NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

    阅读完需:约 4 分钟

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

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

1、编写高质量的代码

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

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

2、快速、高质量的产出

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

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

3、解决问题能力

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

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

4、正确的决定

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

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

5、团队精神

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

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

6、洞察力

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

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


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

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

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

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

关注

评论

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

带你走进数仓大集群内幕丨详解关于作业hang及残留问题定位

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

华为阅读与博集新媒达成合作 推进数字化阅读高质量发展

最新动态

Concealer for Mac(文件信息加密工具) v1.3.6中文版

mac

苹果mac Windows软件 Concealer 密码管理软件

从原理聊JVM(四):JVM中的方法调用原理 | 京东云技术团队

京东科技开发者

Java JVM 多态 方法调用 企业号 8 月 PK 榜

共建共赢鸿蒙生态,加速实现拓量增长

最新动态

华为终端生态商业平台颁发合作伙伴奖项!携手伙伴高效协同,聚势增长

最新动态

CommunityOverCode Asia 专题介绍之流处理

Apache Flink

大数据

事务,不只ACID | 京东物流技术团队

京东科技开发者

分布式事务 数据库事务 事务 企业号 8 月 PK 榜 AICD

“中国软件杯”飞桨赛道晋级决赛现场名单公布

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

提速Rust编译器!

这我可不懂

rust

PS 2024 Beta 25.0重磅更新

晴雯哥

GM CHM Reader Pro for Mac(CHM文件读取器) 2.3.5激活版

mac

苹果mac CHM Reader CHM文件读取器 Windows软件

加速中产 “返贫” 的4个迹象

博文视点Broadview

小灯塔系列-中小企业数字化转型系列研究-HR测评报告

向量智库

阿里云 EMAS & 魔笔:7月产品动态

移动研发平台EMAS

阿里云 消息推送 移动开发 低代码开发 app自动化测试

一文让你了解网络安全和云安全的区别与联系

行云管家

云计算 网络安全 云安全

Flink 实践教程:入门(12):元数据的使用

腾讯云大数据

流计算 Oceanus

杭钢集团:用友iuap为数智底座的数智化转型之路

用友BIP

数智底座

那些被忽视的Python核心功能...

互联网工科生

Python

文心一言 VS 讯飞星火 VS chatgpt (72)-- 算法导论7.1 3题

福大大架构师每日一题

福大大架构师每日一题

DDD项目落地之充血模型实践 | 京东云技术团队

京东科技开发者

DDD 充血模型 聚合根 企业号 8 月 PK 榜

SpringBoot3基础用法

Java 架构 springboot SpringBoot3

一文读懂快速开发平台

互联网工科生

低代码 开发平台 JNPF

技术分享 | StoneData 的身份认证与访问控制策略:构建安全可靠的数据分析环境

StoneDB

MySQL 数据库 HTAP StoneDB

混合云环境实现K8S可观测的6大策略

高端章鱼哥

Kubernetes 分布式 k8s APM 混合云

为什么要推进“电子凭证会计数据标准化”?

用友BIP

电子凭证

高能预警!突发服务器入侵,学会这招快速解决

百川云开发者

运维 安全 服务器 主机安全 主机管理

什么!?它竟然是免费的!

万界星空科技

开源 MES系统 免费软件 免费开源

用友企业服务大模型YonGPT,赋能财务、人力、业务智能化

用友BIP

企业服务大模型 YonGPT

IPQ8072 VS IPQ9274 chip-What progress has WiFi 7 made compared to WiFi 6?

wifi6-yiyi

5G wifi6 WiFi7 6G

十城百校联动!HDC.Together 2023 HarmonyOS学生公开课与千余名校园学子见证鸿蒙力量

HarmonyOS开发者

HarmonyOS

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