《软件工程》软件工程师的成长

本文探讨了软件工程师从初级到高级的成长路径,强调了技术技能、问题领域知识、软件设计思想、职业技能及实际成果的重要性。同时,介绍了衡量软件工程师工作质量和效率的四个关键因素:项目规模、耗时、代码质量和缺陷数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读《构建之法》笔记
###个人能力的衡量与发展

  • 软件工程之中,单个的成员叫做individual contributor,简称IC,IC在团队之中的流程如下
    • 通过交流、 实验、 快速原型等方法, 理解问题、 需求或任务
    • 提出多种解决办法并估计工作量
    • 其中包括寻找以前的解决方案, 因为很多工作是重复性的
    • 与相关角色交流解决问题的提案, 决定一个可行的方案
    • 执行, 把想法变成实际中能工作的代码, 同时验证方案的可行性和其他特性(例如程序的效能等)
    • 和团队的其他角色合作, 在测试环境中测试实现方案, 修复缺陷(Bug) 。 如果此方案有严重的问题, 那么就考虑其他方案
    • 在解决方案发布出去之后, 对结果负责每个人的工作质量直接影响最终软件的质量
      ###初级软件工程师的成长
  • 积累软件开发相关的知识, 提升技术技能(如对具体技术的掌握, 动手能力) 。 例如: 对Java、 C/C++、 C#的掌握, 诊断/提高效能的技术,对设备驱动程序(Device Driver) 、 内核调试器(Kernel Debugger) 的掌握; 对于某一开发平台的掌握
  • 积累问题领域的知识和经验(例如: 对医疗或金融行业的了解) 。 第一点和第二点都可以在很多简历上都可以看到, 也可以比较容易地检测出来。 随着经验的增长, 一个工程师可以掌握更广泛、 更深入的技术和问题领域的知识
  • 对通用的软件设计思想和软件工程思想的理解。 这一方面就比较虚,什么是好的软件设计思想? 什么是好的软件工程思想? 一个工程师开了博客, 转发了很多别人的文章, 这算有思想么? 另一个工程师坚持做任何设计都要画UML图, 这算有思想么?
  • 提升职业技能(区别于技术技能) 。 职业技能包括: 自我管理的能力, 表达和交流的能力, 与人合作的能力, 按质按量完成任务的执行力, 这些能力在IT行业和其他行业都很重要
  • 实际成果。 绝大部分软件工程师的工作成果都是可以公开的, 你参与的产品用户评价如何, 市场占有率如何, 对用户有多大价值? 你在其中起了什么作用?行胜于言, 这些实际的工作成果, 是最重要的评价标准。 软件开发的工作量和质量怎么衡量呢? PSP认为有下列4个因素:
    a . 项目/任务有多大? 说明项目的大小, 一般用代码行数(Line OfCode, LOC) 来表示; 也可以用功能点(Function Point) 来表示。
    b . 花了多少时间? 可以用小时、 天、 月、 年来表示。 一组人所花费的时间可以用(人数×时间) 来表示, 例如某项目花费了10个人×月。
    c . 质量如何? 交付的代码中有多少缺陷?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值