• 《构建之法(第三版)》第三章


    3.1 个人能力的衡量与发展

    1.软件开发流程不光指团队的流程,还包括个人开发流程。把每个人的工作有序地组织起来,就是团队的流程。“有序”,并不是“无争论”。每个人的工作质量直接影响最终软件的质量。

    2.初级软件工程师成长阶段

    • 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)
    • 积累问题领域的知识和经验(例如:对医疗或金融行业的了解)
    • 对通用的软件设计思想和软件工程思想的理解 (较虚)
    • 提升职业技能(区别于技术技能):职业技能包括:自我管理的能力,表达和交流的能力,与人合作的能力,按质按量完成任务的执行力。
    • 实际成果:绝大部分软件工程师的工作成果都是可以公开的,所参与的产品用户评价如何,市场占有率如何,对用户有多大价值?在其中起了什么作用?

    3.软件开发的工作量和质量的衡量标准

    • 项目/任务有多大?
    • 花了多少时间?
    • 质量如何?(可以用缺陷的数量来除以项目的大小,如 5 Bugs / KLOC 意味着每千行程序有5个缺陷)
    • 是否按时交付?

    软件领域可以分为两个方面:一方面是技艺创新的大爆发;而另一方面是坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了90%-95%的比例。对于这些任务,一个成熟的软件工程师应该能够降低任务交付的时间的标准差。在团队工作中,稳定、一致的交付时间是衡量一个员工能力的重要方面。

    3.2 软件工程师的思维误区

    软件工程师在开发过程中会走很多弯路,对软件的模块之间的依赖关系的极端态度都会导致延迟交付。

    • 分析麻痹:想弄清所有细节、所有依赖关系之后再动手,心理上过于悲观
    • 不分主次,想解决所有依赖问题
    • 过早优化:在局部问题上陷进去,无视此模块对全局的重要性
    • 过早扩大化/泛化

    3.3 软件工程师的职业发展

    1.如果我们对职业有认真的态度,就可以发现很多证明个人能力的方式。

    2.需要有一些核心技术和许多扩展的知识,并在实际工作中不断学习和不断成长:

    3.“不精通”者会把时间花在解决低层次问题上,所以要通过不断的练习,把那些低层次的问题变成不用经过大脑的自动操作,然后才有时间和脑力来解决较高层次的问题。有了工程基础,再去谈高层次的“科研”。

  • 相关阅读:
    WOW.js – 让页面滚动更有趣
    ps快捷键
    多语言网站(如何实现网站的多语言版本?)
    什么是海外镜像点?
    Photoshop视频教程全集:从零开始学习PS全集教学视频
    Storm流计算之项目篇(Storm+Kafka+HBase+Highcharts+JQuery,含3个完整实际项目)
    升级版:深入浅出Hadoop实战开发(云存储、MapReduce、HBase实战微博、Hive应用、Storm应用)
    Hadoop2.0/YARN深入浅出(Hadoop2.0、Spark、Storm和Tez)
    基于Hadoop2.0、YARN技术的大数据高阶应用实战(Hadoop2.0YARNMa
    Spark内核源码剖析、Hadoop高端
  • 原文地址:https://www.cnblogs.com/Jspo/p/8440443.html
Copyright © 2020-2023  润新知