首页 > 编程知识 正文

如何自学软件工程,软件工程好学不

时间:2023-05-06 11:43:16 阅读:261068 作者:4283

    还记得当初考研时,我选择考的考研方向就是软件工程,当时对软件工程概念还是略微模糊的,专业知识学的也好少,所以最后专业课时软件工程方面的大题基本都没有做出来,这成了我永久的痛,现在经过十多年的开发总结,总结出来了,软件工程就是软件行业知识体系的硬核,无论后续我们想走技术路线,还是转做管理,只要你想要走的更快更稳,软件工程是必修课。

    软件工程知识架构全景图

    在《软件工程----实践者的研究方法》这本经典软件工程教材中,作者给出了一张图,高度概括了整个软件工程的核心知识:

    我们可以清晰从这个金字塔图看到,“质量焦点”在最底层,很想然软件工程的目标就是为了要聚焦于质量,构建和维护高质量的软件,质量就是软件工程的基石。

过程

    要构建高质量软件,必须要解决软件过程中的混乱,将软件开发过程中的沟通、计划、建模、构建和部署等活动有效地组织起来,软件过程就是在软件项目生命周期内,从诞生到结束期间,在开发与构建系统时要遵循的步骤。我们了解的瀑布模型和敏捷开发,是近些年来形成的两种主流的软件过程指导框架。

方法

    方法指整个过程中构建系统的方法学,如分析用户需求;产品验收;系统架构设计等。

工具

    我们知道了过程,掌握了方法,具体落实到操作层面,就会涉及到工具的使用,比如自动化测试工具,自动构建部署工具;Bug跟踪、源代码管理工具。

    有一个简单的公式来表达软件工程:软件工程=工具+方法+过程。

   下面把软件工程整理成一个思维导图,方便我们更好理解、高效学习:

如何学习软件工程

    我们从“道、术、器”三个维度讲,也对应了软件工程的四重境界

    第一重:用器

        “器”就是工具,工具规则简单、易上手,能很快看到效果,例如原型设计工具可以帮助我们确认需求,持续集成工具能够帮我们简化测试和部署的流程。

    第二重:学术

        “术”就是方法,学会方法,我们就能应用方法去完成一个任务,例如用需求分析的方法,去搞清楚用户想要什么,用Scrum去组织项目开发过程。掌握了术,我们可以脱离器的,我们可以不用原型设计工具,用纸和笔,用白板一样可以完成沟通确认需求,做到手里无剑心中有剑。

    第三重:悟道

        “道”就是本源,软件工程知识的核心思想和本质规律,就想敏捷开发,本身并不是一种方法,而是一套价值观和原则。我们掌握了敏捷开发的道,就可以领悟出Scrum、极限编程这样的术。

    第四重:传道

        如果我们能够把复杂的知识通过浅显易懂的方式传授给别人,就说明我们对知识的领悟已经到了更高的境界。同时教学也是最好的学习方式,通过传授的方式我们可以对知识本身有更深入的理解。

    这么多年的工作经验我总结了达到以上四重境界的方法就是“做中学”和“教中学”。

    “做中学”是一种自下而上的学习方法,通过实践,从使用工具到学习方法,再从方法中提炼出道。

    “教中学”是一种自上而下的学习方法,通过教学,去进一步深入领会别人总结出来的道,去模仿推导方法,去学习如何使用工具。

    推荐几本书籍,《构建之法》、《人月神话》、《人件》、《知行合一:实现价值驱动的敏捷和精益开发》、《软件工程----实践者的研究方法》、《持续交付》、《走出软件作坊》,我相信我们在不断的学习和实践中深刻领悟到软件工程的精华。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。