• 2018-2019-1 20189206 《构建之法》第三章学习笔记


    2018-2019-1 20189206 《构建之法》第三章 学习笔记

    第三章 软件工程师的成长

    个人能力的衡量与发展

    软件开发团队与个人

    软件开发流程不光光指团队的流程,还包括个人开发流程,软件团队也是由个人组成的。在团队的大流程中,也是每一个具体的人在负责开发、测试、用户界面设计、管理、交流等工作。
    
    把每个人的工作有序地组织起来,就是团队的流程。
    
    一个好的团队流程能把冲突的积极方面释放出来,而避免消极方面。
    

    individual contributor (IC)

    软件团队中,软件系统的大部分模块都是由个人开发或者维护,这些成员称作IC。
    
     IC在团队中的流程:
    

    通过交流、实验、快速原型等方法,理解问题、需求和任务

    提出多种解决方法并估计工作量,其中包括寻找以前的解决方案,因为很多工作是重复性的

    与相关角色交流解决问题的提案,决定一个可行的方案

    执行,把想法变成实际中能工作的代码,同时验证方案的可行性其他特性

    和团队的其他角色合作,在测试环境中测试实现方案,修复BUG。如果方案有严重的问题,就考虑其他方案。

    在解决方案发布出去之后,对结果负责

    软件工程师的成长

    • 积累相关开发的知识,提升技术技能
    • 积累问题领域的知识和经验
    • 对通用软件设计思想和软件工程思想的理解
    • 提升职业技能(区别于技术技能
      • 其中包括了自我管理能力、表达交流能力、与人合作能力、按质量完成任务的执行能力
    • 实际成果
      • 你的工作成果用户评价如何?是想占有率如何?对用户多大价值?你在其中起到了什么作用?

    软件开发的工作量和质量的衡量

    • 项目/任务大小
      • 一般用代码量来衡量;或者用功能点衡量。
    • 花了多少时间
    • 质量如何
      • 交付有两个概念,一个是代码完成时交给测试人员;另一个是软件最终发布时交给顾客。
    • 是否按时交付
      • 在工作团队中,稳定、一致的交付时间是衡量一个员工能力的重要方面

    团队对个人的期望

    TSP团队软件流程,对团队成员也有所要求:

    • 交流:能够有效地与其他队员交流,从大的技术方向到看似微小的问题。
    • 说到做到
    • 接受团队赋予的角色并按角色要求工作
    • 全力投入团队的活动
    • 按照团队流程要求工作
      • 团队有自己的流程,能力再强,也要按照团队指定的流程工作
    • 准备
      • 准备工作很重要!
    • 理性地工作

    软件工程师的思维误区

    • 分析麻痹
      • 极端情况就是想弄清所有细节、依赖关系之后再动手,不想修复问题,出了问题都赖在相关问题上。
    • 不分主次,想解决所有依赖问题
      • 这种极端情况是过于积极,想马上修复所有的主要和次要的依赖问题,而不是根据现有条件找到一个“足够好”的方案
    • 过早优化
      • 一个工程师在写程序时,经常容易在某一个局部问题上陷进去,花大量时间对其进行优化,无视这个模块对全局的重要性,甚至不知道“全局”是怎样的。
    • 过早扩大化/泛化

    解决大问题固然美好,但是所有的大问题都是从解决了无数的小问题上积累来的

    软件工程师的职业发展

    读完这一小节的内容,其实是很有感受的,学习也好工作也好,爱好是推动着我们不断前进的主要动力。比如在读书的时候,真的喜欢的内容读起来是十分有乐趣的,一方面想理解其中的逻辑,另一方面不断深究阅读。如果未来目标确定为软件工程师,那么就要发自内心地热爱和了解这份职业并向着职业的要求成长、学习。

    职业成长

    就像上一小节所说,规划自己的职业发展可以分为以下几个方面

    考级之路

    • 计算机等级考试 全国计算机技术与软件专业技术资格考试
    • IEEE提供了一系列职业认证服务

    Steve McConnell版本

    首先一个软件工程师需要具备一定的知识和能力:

    • 知识:将软件知识分为十大领域
    • 能力
      • 入门Intoductory
      • 熟练Competency
      • 带头人Leadership
      • 大师Mastery

    工程师需要做到以下几点:

    • 阅读:4-6篇经典文献的深入分析和阅读
    • 工作经验:参与并完成6个具体的项目
    • 课程:参加3个专门的课程

    技能的反面

    当时在写简历的时候,知道在写技能的时候,会有精通-熟练-了解这些等级。

    如何提高技能——通过不断的练习,把低层次的问题都解决里,变成不用大脑的自动操作,才有脑力来解决较高层级的问题。

  • 相关阅读:
    基础查询语句
    操作函数(续)
    操作函数
    DDL语言的学习
    基本数据类型
    数据库的介绍
    Servlet组件合并
    Tomcat02
    Tomcat演变史
    08.17《jsp》——html+css+js+jsp+servlet+oracle简单项目练习
  • 原文地址:https://www.cnblogs.com/zz-1226/p/10055373.html
Copyright © 2020-2023  润新知