0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀软件工程师应具备哪些能力

工程师人生 来源:wv 作者:简书网 2019-09-04 14:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、不害怕探索陌生程序语言

接触新专案或是转换工作跑道时,都有可能需要学习全然陌生的程序语言,许多人对此感到害怕,甚至未尝试就先放弃。其中,跳脱舒适圈的恐惧往往多于学习程序,会担心是否无法重现过去工作的好表现,甚至因此怀疑自身能力。

不论是多厉害的工程师,一定都有起点,就像打造Microsoft Windows基础的微软资深工程师Dave Cutler为文组出身,没受过正式电脑科学教育,比起同辈花更多时间在错误中学习。在这之中,最重要的两个关键为具备「成长心态」(growth-mindset)而非「固守心态」(fixed-mindset),以及「乐于学习」(optimize for learning)的态度。

学习陌生程序语言这项关键能力会越练越上手,并让你在学习过程中成为更好的程序设计师。

二、精通Debug

「为什么程序跑出来和我预期的不一样?」是许多工程师会遇到的问题。Debug能力往往是影响工程师是否能顺利完成专案的关键因素,却被大部分人低估。Debug的系统性思考如下:

1、先假设造成bug的可能原因。

2、若假设为真,界定此假设可能导致的结果。

3、试著检视是否有和这些结果冲突的现象。

4、若有冲突表示假设错误,要重复上述思考过程。

由此可知,想加快Debug速度,要提升「提出假设」和「检视假设」的能力。假设能力可随著Debug经验的累积而提升,检视能力则需加强善用检测工具的技能。在此过程,必须先假设所有东西都是可检视的,并找出可用来检测或加快检测速度的工具或机制,千万不要只用自己熟悉的工具。

三、开发节省时间的工具

减少时间做那些电脑就可做的工作,例如开发节省时间的工具和使工作流程自动化。

曾负责Facebook软件基础建设团队的软件工程师Bobby Johnson,带领该团队从6人成长至超过1百人。他观察到,团队中表现出色的人多数写了许多工具,这些看似和绩效无直接相关的工具开发时间可能占三分之一的工作时间,却因此大大提升工作效率,其中包含用来部署程序、监测系统,以及其他可节省时间的工具。

四、优化重复性工作的速度

软件工程师每天可能要搜寻、浏览函数定义很多次,善用键盘快捷键可省下可观的时间。例如,每次搜寻需花12秒,类似的步骤每天要重?20次,若用快捷键可将搜寻时间缩短到2秒,一年下来即省了40个小时。其他状况如每次Debug都需要在不同装置测试,除了要分别打开app,还要设定测试情境,这时候就可以思考如何加快这类重复性工作的速度。

五、发展系统性思考模式

写完程序码、让程序可运作仅是冰山一角,要产出真正有价值的程序,必须从程序本身提升到整个系统来思考。

· 你的程序和其他程序库以及其他人写的功能是否相容?

· 程序是否测试完成,并确保其他成员可执行你写的这些功能?

· 部署你的程序需要改变哪些生产环境?

· 新程序对其他正在运作的系统是否有负面影响?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    243

    浏览量

    21687
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    你知道电子工程师,到底分几种吗?

    第一种,硬件工程师:他们擅长画原理图、选元器件、调板子,是电路的专家、产品项目的“总导演”!第二种,软件工程师:脑子里全是代码,天天跟驱动、算法打交道,芯片怎么跑,他们说了算。第三种,固件工程师
    的头像 发表于 04-20 08:52 92次阅读
    你知道电子<b class='flag-5'>工程师</b>,到底分几种吗?

    电子工程师的双标瞬间 #电子 #电子爱好者 #电子工程师 #扬兴科技 #双标

    电子工程师
    扬兴科技
    发布于 :2026年03月02日 18:04:13

    软通动力ASDM平台三大核心能力实现软件工程效能提升

    (AI-First System Development Methodology & Platform),以AI 优先的系统化研发方法为核心,凭借三大核心能力打造了专业的 AI4SE 解决方案,为企业构建端到端的 AI 场景化研发能力,实现
    的头像 发表于 02-27 11:34 508次阅读
    软通动力ASDM平台三大核心<b class='flag-5'>能力</b>实现<b class='flag-5'>软件工程</b>效能提升

    算法工程师需要具备哪些技能?

    算法工程师需要掌握一系列跨学科的技能,涵盖数学基础、编程能力、算法理论、工程实践以及业务理解等多个方面。 以下是具体技能及学习建议: 线性代数核心内容:矩阵运算、特征值分解、向量空间等。应用场
    发表于 02-27 10:53

    电子工程师看书的四个阶段 #电子 #硬件工程师 #电子爱好者 #反转 #扬兴科技

    硬件工程师
    扬兴科技
    发布于 :2026年01月17日 17:29:53

    什么是BSP工程师

    的时候,板子上所有的设备都已经可以正常使用了。这个阶段的任务就是开发应用程序来实现某种特定的功能,应用程序中会使用第二阶段提供的软件接口控制板子上的设备来完成这一功能。 四、BSP工程师具备
    发表于 01-13 06:54

    大普技术田学红荣获2025年东莞市优秀工程师称号

    以城市之名,向匠心致敬!近日,“莞邑匠心 智造未来”2025年东莞市工程师日发布仪式现场,对30名在东莞高质量发展中表现突出的工程师进行表彰。大普技术联席CEO兼CTO田学红博士凭借在半导体领域二十余年的深耕与突破,荣获“东莞市优秀
    的头像 发表于 12-16 17:41 1404次阅读

    工程师变身AI“指挥者”,吉利与阿里云的软件开发变革实验

    1975年,IBM工程师Fred Brooks在《人月神话》中提出软件工程的核心难题:随着系统规模和团队规模增长,复杂度会呈指数级上升。他的结论是, 软件工程“没有银弹”,没有单一技术能带来数量级
    的头像 发表于 11-13 10:43 511次阅读
    <b class='flag-5'>工程师</b>变身AI“指挥者”,吉利与阿里云的<b class='flag-5'>软件</b>开发变革实验

    硬件工程师面试必会:10个核心考点#硬件设计 #硬件工程师 #电路设计 #电路设计

    硬件工程师
    安泰小课堂
    发布于 :2025年09月23日 18:00:33

    做了电子工程师之后,最好拍的视频出现了#硬件设计 #电子DIY #电子工程师

    电子工程师
    安泰小课堂
    发布于 :2025年06月24日 17:45:57

    一个优秀的射频测试工程师需要具备哪些技能?

    一个优秀的射频测试工程师需要具备哪些技能?在无线技术高速发展的今天,射频(RF)测试工程师是确保通信设备性能与用户体验的关键角色。从复杂的调制方案到无处不在的干扰,从功耗优化到标准合规
    的头像 发表于 05-16 10:08 2270次阅读
    一个<b class='flag-5'>优秀</b>的射频测试<b class='flag-5'>工程师</b>需要<b class='flag-5'>具备</b>哪些技能?