软工第一次作业

第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 1. 了解github的基础操作以及如何在github上提交自己的贡献;2. 清楚自己的能力和本学期软件工程课程的目标
学号 102301302

一、我们团队的github主页

https://github.com/YQL-light/Groups-warehouses

我们的logo:
image
image

二、成员资料

目录:
屏幕截图 2025-10-02 130839

个人资料:

屏幕截图 2025-10-02 130921

屏幕截图 2025-10-02 130957

屏幕截图 2025-10-02 131018

其他成员:

屏幕截图 2025-10-02 131058

屏幕截图 2025-10-02 131119

屏幕截图 2025-10-02 131157

屏幕截图 2025-10-02 131302

(篇幅有限只取了其中几位成员的截图)

三、自我评估

后端:

C/C++语言:会c和c++基础的语法,会使用c++的面向对象编程,近期正在学习c语言的多进程编程以及网络编程;

Java语言:会基础的java语法,完成过模拟宠物店的项目,也完成过嵌入mysql的数据库项目,包括基本的增删改查功能,了解一部分Spring的使用但并不熟练;

python语言:会python基础的语法,正在学习用python辅助网络编程的部分

前端:

了解一些HTML简单的语法。

技术偏好:

更偏好于使用C++进行的编程,对前端也有兴趣但目前还没有开始体系的学习,计划在本学期开始接触相关的知识展开学习。

目前缺少的能力:

算法能力薄弱:较不擅长数据结构于算法方面的学习,和树有关的问题掌握得不是很好,计划本学期通过学习和刷题实现提升;

前端语言了解少:只在学习java的过程中了解到了一些html的基本语法,还没有体系地学习过相关的知识;

python语言不够深入:目前还不太能够独立地用python语言进行程序的编写,但可以通过需要的时候及时搜索和学习来弥补一部分不足。

四、目标

之前的代码量:(单个项目内最多)六百行

希望达到的代码量:单个项目两千+行

五、期待的收获

希望这学期能在这门课程中学习到一个项目开发的各个过程,找到适合自己能力和兴趣的那一部分。用课程的需要引导我弥补现在自身的不足。

六、学习指南

deepseek

当然!这是一份为初学者设计的简要软件工程学习指南,它遵循一个从基础到进阶的循序渐进路径。

软件工程学习指南(简要版)

本指南的核心思想:软件工程不仅仅是写代码,更是关于如何系统化、高效地构建和维护高质量软件的一系列方法、工具和最佳实践。


第一阶段:编程与计算机基础(基石阶段)

这是你成为软件工程师的起点,必须打牢。

  1. 掌握一门编程语言

    • 推荐:Python 或 Java。
    • Python: 语法简洁,易于上手,应用领域广泛(Web、数据科学、AI、自动化等)。
    • Java: 严谨、面向对象特性明显,是企业级后端开发的主流语言,能帮你建立牢固的编程思想。
    • 目标: 不仅要学会语法,更要理解其核心概念(变量、数据类型、控制流、函数、面向对象)。
  2. 理解计算机科学基础

    • 数据结构: 数组、链表、栈、队列、哈希表、树、图。了解它们的特点和适用场景。
    • 算法: 学习基本的算法思想(排序、搜索、递归)和复杂度分析(大O表示法)。这是面试和解决复杂问题的关键。
    • 计算机组成原理(初步): 了解程序是如何在计算机上运行的(CPU、内存、硬盘)。

第二阶段:软件开发核心技能(工匠阶段)

学会如何像一个工程师一样“造东西”。

  1. 版本控制 Git

    • 必须掌握! 这是团队协作开发的基石。
    • 学习: clone, add, commit, push, pull, branch, merge 等基本操作。学会使用 GitHub 或 GitLab。
  2. 数据库知识

    • SQL(关系型数据库): 掌握基本的增删改查(CRUD)、表连接、索引等概念。MySQLPostgreSQL 是很好的起点。
    • NoSQL(非关系型数据库): 了解一种如 MongoDB 的使用场景,知道它与SQL的区别。
  3. 软件开发方法与设计

    • 面向对象设计(OOD): 深入理解封装、继承、多态,并学会用它们来设计可维护、可扩展的代码。
    • 设计模式: 了解常用的设计模式(如单例、工厂、观察者模式),它们是解决常见设计问题的经验总结。
    • API 设计: 学习如何设计和构建 RESTful API,这是现代前后端和微服务通信的标准方式。

第三阶段:工程化与协作(工程师阶段)

从“写代码”到“交付软件”。

  1. 软件开发生命周期与敏捷开发

    • 了解 Scrum 或 Kanban 等敏捷开发流程。理解迭代、冲刺、每日站会等概念。
  2. 构建、测试与部署

    • 测试: 学会编写单元测试、集成测试。了解 TDD(测试驱动开发)。
    • CI/CD(持续集成/持续部署): 了解其基本概念和流程(代码提交 -> 自动构建 -> 自动测试 -> 自动部署)。
    • 容器化: 学习 Docker。它可以将你的应用及其依赖打包,实现环境一致性。
  3. 操作系统与网络

    • Linux: 学会基本的命令行操作,因为大多数服务器都运行 Linux。
    • 网络基础: 理解 HTTP/HTTPS、TCP/IP 协议、DNS 等基本概念。

做一个完整的项目

    • 将前面学到的所有知识结合起来,独立或与朋友合作完成一个完整的项目(例如:一个简单的博客系统、待办事项应用)。
    • 过程: 需求分析 -> 设计 -> 编码 -> 测试 -> 部署到云服务器(如 AWS, Azure, 阿里云)。
  1. 阅读优秀的代码

    • 在 GitHub 上关注一些高质量的开源项目,阅读它们的源代码,学习其代码组织和设计思路。
  2. 保持学习与专精

    • 软件工程领域日新月异。选择一个你感兴趣的方向深入下去,如:
      • 后端开发: 深入学习分布式系统、微服务、消息队列、性能优化。
      • 前端开发: 深入学习现代框架(React, Vue)、用户体验、性能。
      • 移动开发: 深入学习 Android (Kotlin/Java) 或 iOS (Swift)。
      • ** DevOps / 云原生:** 深入学习 Kubernetes, 云服务平台等。

推荐学习资源

  • 在线课程: Coursera, edX, Udemy,以及国内的慕课网。
  • 经典书籍:
    • 《代码大全》
    • 《程序员修炼之道》
    • 《设计模式:可复用面向对象软件的基础》
    • 《重构:改善既有代码的设计》
  • 社区与平台: Stack Overflow(解决问题),GitHub(参与项目),技术博客(如掘金、InfoQ)。

总结:

理论(计算机基础) + 实践(动手写项目) + 工具(Git, Docker等) + 协作(敏捷,代码规范) = 一名合格的软件工程师。

这条道路没有捷径,但遵循这个路线图,一步一个脚印,你一定能成功入门并成长为一名优秀的软件工程师。祝你学习顺利!

分析:

我认为整体来说是比较合理的,大体上我或许会跟着这份指南往下学习,但更多的情况或许还是随着项目的展开而让学习紧紧跟上脚步,从实践当中去学。且人的精力有限,上述指南所需要的知识也需要慢慢积累。

博客后台截图

image

posted @ 2025-10-02 13:25  绿盐  阅读(25)  评论(0)    收藏  举报