学院和大学现在提供了许多名称奇特的专业:
技术导向:云计算、大数据、人工智能、物联网
部分应用类别:电子商务、信息管理
但我个人觉得懂编程语言、会使用开源框架的人很多,但中国太缺乏系统分析、系统设计、系统架构方面的人才。 而且我个人认为这些课程应该是软件工程的核心课程,但是中国大学的软件工程专业似乎并没有教授这些东西。
(1)
软件工程也是工程。
当我们想到工程时,我们会想到:
规划、勘察、设计、试验验证、评审
标准和规范、注册和认证
建筑、预制、大型施工工具
质量监督质量保证、安全生产监督
项目进度管理/成本管理/变更管理、工程文件管理
(2)系统分析
我从来没有学过任何关于需求分析和系统分析的好书。 我大学时也没有通过系统分析师考试。
我读过的唯一一本关于需求分析的书是:《用户故事》。
在我读过的关于系统分析的书籍中,我推荐:《分析模式:可重用对象模型》。 事实上,将这本书命名为“分析模式”而不加副标题可能会更好。
如果说分析方法论,我会推荐一本书:《金字塔原理》。
(三)系统设计
在系统设计中,我特别注意层与块之间的关系。 如何解耦和关联这种关系需要技巧。 所以我推荐两本书:《领域驱动设计:如何应对软件的核心复杂性》和《设计模式》。
设计标准符号:“UML Essence”。 还有一本中国人写的书叫《大象:UML中的思考》也很好。
(四)架构设计
关于架构,这两本书非常好:《企业应用架构模式》和《架构清洁之道》
多年来,软件架构风格已经从组件发展到 SOA 服务再到微服务,所以我建议:
面向对象时代:没看到什么好书。 另外,我个人觉得Booch大师的《面向对象分析与设计》并不是一本关于使用面向对象方法进行架构设计的好书。
组件时代:《COM本质理论》与《没有EJB的J2EE开发》
SOA时代:《SOA核心技术与应用》
微服务时代:《服务架构设计模式》
(5)软件开发
关于编程语言和编程框架的书籍有很多,但从软件工程的角度讨论软件开发和实现的书籍却很少。
我推荐几本书:
《测试驱动开发》
“重建”
《如何清理代码》
《极限编程》
(六)质量保证
本来,软件测试和质量保证是软件工程非常重要的组成部分。 不幸的是,我从未见过一本好书。 可见大家并不重视软件质量这个事实。
(7) 工具
说到软件开发的各种工具,大家都熟悉开发IDE、框架、前端UI组件、运行中间件和数据库。 从软件工程的角度来看,大家都熟悉各种CI持续集成、CD持续发布、DevOps工具。
也许我孤陋寡闻,但我读过的这方面唯一的好书是:《持续交付:发布可靠软件的系统方法》。
(8)流程管理
软件工程管理,如果你想从总体框架的概览来学习,我首先推荐《TOGAF标准手册》。 不知道为什么,很多人把TOGAF当作一种软件架构方法,我个人觉得不合适。 如果你真的想做软件架构,建议看上面系统架构设计部分我推荐的书籍。 只有掌握了这些知识,您的软件才能真正具有架构性。 读完 TOGAF 后,你不会让你的软件架构起来。 很多企业IT决策者特别喜欢引入TOGAF,认为学习并使用TOGAF就可以让软件变得结构化。 这真的是...
综合的我推荐《代码百科》,实用的我推荐《微软秘笈》。
关于项目管理书籍,我推荐《PMBOK指南》。 我强烈建议在软件开发过程中引入全职项目经理。 不要让产品经理、开发部门经理或开发负责人承担项目管理职责。 这是一个很大的误会。