软件工程第一次作业
这个作业属于哪个课程 | 软件工程 |
---|---|
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 1.掌握Git的使用,完成GitHub主页搭建 2.学会GitHub团队协作 3.完成博客,进行自我评估与学习规划 |
学号 | 102301309 |
Github团队主页搭建
团队主页网址:https://github.com/YQL-light/Groups-warehouses
团队主页截图:
成员资料截图:
自我评估
已具备的专业知识和能力
-
编程能力
- 熟练掌握c和c++的使用
- 会用基本的数据结构和算法解决简单问题
- 了解计算机网络,操作系统的原理
-
会使用的工具
- 会使用Git的基本操作
- 能够使用VS Code等开发工具
技术兴趣方向
对嵌入式开发、人工智能和机器学习应用有一些兴趣
需要提升的能力
- 缺乏大项目的设计经验
- 缺乏团队协作开发的实际经验
- 缺乏项目管理能力,比如不了解代码规范、测试、部署等完整流程以及如何规划项目进度和风险管理
代码量评估
当前代码量:约2万行
学期目标:希望达到5-8万行代码量,通过完成课程项目积累经验
课程期待
- 不想只懂写代码,想了解一个软件从构思、开发到上线的完整流程。
- 学会协作: 掌握和团队高效协作开发的方法与工具,告别小组作业的混乱。
- 实用的工程流程: 如敏捷开发、Git协作、代码审查的具体实践。
- 连接理论与实践: 希望这门课能告诉我,课堂上学的数据结构、算法等知识,在真实项目中到底怎么用。
- 主流开发工具链: 熟悉项目管理、持续集成等现代开发中必不可少的工具。
AI生成的学习指南分析
使用 Deepseek 生成的软件工程学习指南:
软件工程入门学习指南
核心理念:不要只编码,要“工程化”地编码。
第一阶段:基础奠基(约1-2个月)
- 精通一门编程语言:
- 目标: 选择一门主流语言(如 Python、Java 或 JavaScript),掌握其核心语法、数据结构、面向对象编程等概念。达到能熟练编写小型程序的程度。
- 方法: 完成在线教程、阅读入门书籍、做练习题。
- 版本控制入门 - Git:
- 目标: 理解版本控制的概念,学会使用 Git 进行代码的提交、分支管理、合并等基本操作。
- 方法:
- 学习 git init, git add, git commit, git push, git pull 等核心命令。
- 在 GitHub 或 GitLab 上创建账户,尝试将你的代码推送到远程仓库。
第二阶段:工程思维与流程(约2-3个月)
- 软件开发生命周期:
- 目标: 了解不同的开发模型,如瀑布模型、敏捷开发、Scrum、看板方法。理解为什么“迭代”和“用户反馈”如此重要。
- 方法: 阅读相关文章或书籍章节,了解每个阶段(需求分析、设计、编码、测试、部署)的目标。
- 需求分析与设计:
- 目标: 学会将模糊的用户需求转化为清晰、可执行的技术规格。学习绘制简单的用例图、流程图。
- 方法: 尝试为一个你想象中的小项目(如“个人博客系统”)编写一份简单的需求文档。
- 软件测试:
- 目标: 理解测试的重要性。了解单元测试、集成测试、系统测试的区别。学会为你的代码编写简单的单元测试。
- 方法: 学习并使用你所用语言的测试框架(如 Python的 pytest, Java的 JUnit)。
第三阶段:核心技能深化(长期持续)
- 代码质量与重构:
- 目标: 学习编写“干净”的代码。理解什么是可读性、可维护性。学习基本的重构技巧,如重命名、提取函数等。
- 方法: 阅读经典书籍《代码整洁之道》,定期回顾和修改自己的旧代码。
- 设计与架构基础:
- 目标: 了解什么是设计模式、软件架构。知道为什么要把代码分成“模块”和“层”(如 MVC 模式)。
- 方法: 了解几个常用的设计模式(如单例、工厂、观察者模式)。尝试将一个简单的程序进行模块化设计。
- 协作与工具:
- 目标: 熟悉团队协作的基本工具和流程,如如何使用 Git 进行团队协作(Pull Request)、如何使用项目管理工具(如 Jira, Trello)。
- 方法: 与同学组队完成一个小项目,实践完整的 Git 协作流程。
合理性
- 理论与实践相结合:
· 每个理论知识点后都附带了实践建议(如“为小项目写需求”、“编写单元测试”)。这避免了“纸上谈兵”,确保你能将所学知识立即应用,加深理解。 - 聚焦核心,避免信息过载:
· 软件工程领域极其庞大,包含了运维、安全、大数据等众多分支。本指南聚焦于每个软件工程师都必须掌握的核心基础,没有过多涉及细分领域,这对于初学者建立清晰的知识地图至关重要。 - 强调现代工程实践:
· 指南将 Git 和敏捷开发放在重要位置,这完全符合当今工业界的实际工作方式。学习这些能让你更好地与未来的工作接轨。
对我的帮助
- 帮我构建系统化的知识体系:
· 让我理解软件工程不仅仅是“写代码”,而是一个涉及分析、设计、协作、测试、维护的完整系统工程。让你看到树木,更看到森林。 - 给我提供清晰的学习路线图:
· 解决了“不知道下一步该学什么”的迷茫。你可以按照这个路径,一步一个脚印地前进,减少决策疲劳。