软件工程实践寒假作业

222100128黄煦陶 2024-02-15 13:10:25
这个作业属于哪个课程< 2302软件工程>
这个作业要求在哪里< 软件工程实践寒假作业>
这个作业的目标<完成课程准备工作、回首过去、立足当下、展望未来、规划学习路线>
其他参考文献《构建之法》、Markdown教程、Git学习

@

软件工程实践寒假作业

  • 1.准备工作
  • 1.1仓库截图
  • 1.2使用git上传代码
  • 1.3仓库地址
  • 2.回首过去
  • 2.1 当初你为什么选择软件工程这个专业?
  • 2.2 当初对软件工程这个专业的期待和想象是什么?
  • 2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
  • 3.立足当下
  • 4.展望未来
  • 4.1阅读《构建之法》,并思考该社区中前人提出的问题。
  • 4.2 你未来的职业规划是什么?
  • 4.3 对于软件工程实践课程,你有什么理解和期望?
  • 5.思维导图与学习路线
  • 5.1思维导图
  • 5.2 学习路线

1.准备工作

1.1仓库截图

在这里插入图片描述

1.2使用git上传代码

在这里插入图片描述

1.3仓库地址

https://github.com/singularity119/Yii2.0-blogsystem

2.回首过去

2.1 当初你为什么选择软件工程这个专业?

我选择这个专业有以下几个原因:

  1. 兴趣:我对计算机科学和编程有浓厚的兴趣。在高中时期,我就开始自学编程,并且享受通过编写代码来解决问题的过程。我发现自己对软件开发和技术的探索非常感兴趣,因此决定将其作为我的职业方向。

  2. 就业前景:软件工程是一个迅速发展的领域,有着广泛的就业机会。随着信息技术的普及和应用领域的不断扩大,我相信软件工程领域会有更多的就业机会和发展空间。

  3. 贡献价值:软件工程可以通过开发各种类型的应用程序和系统来解决现实世界中的问题,这使得我有机会通过我的技能和知识为社会做出贡献,改善人们的生活和工作环境。

  4. 挑战与成长:软件工程是一个充满挑战性和不断学习的领域。随着AI技术的不断更新和发展,我可以不断地学习新的编程语言、开发工具和ai技术,不断提升自己的技能水平和解决问题的能力。

2.2 当初对软件工程这个专业的期待和想象是什么?

当初选择软件工程这个专业时,我对未来的期待和想象包括以下几点:

  1. 创造性和创新性: 我期待能够通过软件工程专业学习到创造性的解决问题的方法和创新性的技术应用。我希望能够参与开发具有前瞻性和创造性的项目,为未来的科技发展做出贡献。

  2. 技术成长和专业发展: 我希望自己在软件工程领域能够不断学习新的技术和工具,不断提升自己的编程技能和软件设计能力。希望能够成为一名AI算法工程师,引领团队开发出高质量、可靠性强的人工智能软件产品。

  3. 团队合作和项目管理: 我期待能够在团队合作的环境中学习和成长,在项目开发过程中与他人合作,共同解决问题、实现目标。我也希望能够学习项目管理的知识和技能,能够有效地组织和管理软件开发项目,确保项目按时、保质地完成。

2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?

当初投入软件工程专业学习时,我做了一些准备并立下了一些FLAG,以确保自己能够全情投入并取得成功:

  1. 制定学习计划: 我制定了详细的学习计划,包括课程安排、学习目标和时间表。我确保每天都有足够的时间用于学习编程、理解课程内容和完成作业。

  2. 编程练习: 编程是软件工程学习的核心,因此我经常进行编程练习,我利用在线资源和编程社区进行练习和交流。

  3. 课外阅读: 我不仅仅局限于课堂上的知识,还主动寻找和阅读与软件工程相关的书籍、论文和文章。我希望通过广泛的阅读来拓展自己的视野,加深理解CS领域的理论和实践。

  4. 设立FLAG: 我在学习过程中设立了一些具体的FLAG,如在特定时间内学会某种编程语言或工具(python、pytorch)、完成特定的编程项目或参加特定的比赛(动手学习深度学习)等。这些FLAG激励着我不断努力学习和进步,确保自己能够达到预期的学习目标。

    3.立足当下

    个人简历
    昵称singularity
    兴趣爱好篮球、健身
    特长自驱动、时间规划
    成果和获奖
    职务经历班长
    获奖经历 2022-2023学年第一学期本科生综合奖学金
    专业水平
    熟悉的编程语言C、C++、Java、HTML、XML、CSS、JavaScript、PHP、C#、Python
    开发软件 Visual Studio Code、Visual Studio、Xcode
    累计代码量 20K+行
    项目经历
    基于Yii2的简单博客系统采用Yii2框架构建的博客系统,通过实现系统后台前分离,成功实现了博客文章、评论和用户管理等基本功能。在此基础上,进行了细致的改进,确保系统功能更加完备:1.进行了前后台前端美化工作,如图片轮播组件的实现;2.后台添加Dashboard界面;3.文章编辑界面增强,引入可视化编辑器,前端文本和前端创建文章用富框4.添加文章分类功能;5.完善后台RBAC管理功能。6.登录页面重写
    Winform炮打飞机小游戏 C#课程作业,使用WinForm进行页面设计,成功实现了炮台转动、开炮等操作。为了实现用户操作的实时监听、飞机的飞行以及碰撞检测,使用了多线程技术。整个项目的完成不仅让我加深了对C#编程语言基本语法的掌握,还让我学会了如何运用多种技术实现复杂的图形界面和动画效果。
    简易女鞋商城 C#课程作业,利用MySQL数据库进行数据的存储和CURD操作,使用WinForm进行页面设计,成功实现了商品的筛选、查看和购买功能。

    4.展望未来

    4.1阅读《构建之法》,并思考该社区中前人提出的问题。

    1.2.3 大模型+CoPilot 会成为银弹,还是阻碍了初级程序员的成长?

    大模型+CoPilot 在某种程度上可以被视为一种“银弹”,因为它们能够提供强大的自然语言处理和代码生成能力,帮助程序员更快地完成任务并解决问题。但是,它们也可能成为初级程序员成长的一种障碍,主要取决于个人如何使用和依赖这些工具。

    对于初级程序员来说,依赖大型模型和辅助工具可能会导致以下问题:
    1. 初级程序员可能会倾向于直接依赖大型模型和辅助工具来生成代码,而不是自己动手解决问题。这可能会减少对编程语言、算法和编程技术的理解和掌握。
    2. 如果过度依赖工具,初级程序员可能会失去解决问题的创造性和思考能力,从而陷入只会应用现成解决方案的困境,缺乏对问题进行深入分析和独立解决的能力。
    3. 大模型和辅助工具生成的代码可能不够健壮、高效或安全。如果没有足够的经验和技能来审查和改进生成的代码,可能会导致代码质量和安全性方面的问题。

    尽管如此,大型模型和辅助工具也可以成为初级程序员成长的一种机会:
    1. 初级程序员可以利用大模型和辅助工具来学习编程语言、算法和最佳实践。通过与工具交互,可以快速了解不同编程概念的应用和实践。
    2. 可以提高程序员的工作效率,更快地完成任务和项目。这有助于初级程序员在短时间内积累更多的经验和技能。
    3. 尽管工具能够提供一定程度的解决方案,但程序员仍然需要运用创造性来调整和优化生成的代码。这可以激发初级程序员的创造性思维,并促使他们思考如何改进和完善生成的代码。

    大模型和辅助工具既可以成为初级程序员的银弹,提高工作效率和学习效果,也可能成为成长的一种障碍,导致初级程序员缺乏独立解决问题的能力和对编程技术的深入理解。因此,作为初级程序员应该适度使用这些工具,注重自己的学习和成长,锻炼坚实的代码基本功。

    2.1 单元测试中,测试用例是提前准备好的,还是看过代码后针对性编写的?

    在单元测试中,测试用例可以有两种方式准备:

    1. 提前准备好的测试用例: 这种方式是在编写代码之前就根据需求或规格文档准备好测试用例。在这种情况下,测试用例是基于对功能和需求的理解编写的,而不是基于代码的具体实现。这样做的好处是可以确保测试覆盖了所有的功能点,并且在代码实现之前就能够明确期望的输出。
    2. 针对性编写的测试用例: 这种方式是在阅读代码后根据代码的实现细节编写测试用例。在这种情况下,测试用例是根据代码的具体实现和逻辑来编写的,以确保对代码各个部分的功能和边界条件进行了有效测试。这种方式的好处是可以确保测试覆盖了代码的各个分支和边界情况,并且能够及时发现代码中的问题。

    无论是哪种方式,都有其适用的场景。一般来说,在开发初期或对需求已经明确的情况下,提前准备好测试用例是更有效的方式,可以在代码实现之前就确保了测试的全面性和准确性;而在阅读和理解代码后编写测试用例,则更适用于对已有代码进行测试和维护的情况,能够更准确地覆盖代码的各个执行路径和边界条件。

    2.3 花费时间越多,代表工作量越高吗?

    不一定。花费的时间多少并不一定代表工作量的高低,因为工作量的评估还取决于其他因素,例如任务的复杂度、所需技能水平、资源可用性等。
    一个任务可能只需要短时间就能完成,但可能需要较高水平的技能和专业知识,这样的任务可能具有较高的工作量。例如,一个有经验的程序员可能只需要几分钟就能解决一个简单的bug,但这个bug的解决可能需要对代码进行深入的分析和理解,需要较高水平的技术能力。

    3.1 为什么软件工程师个人能力的衡量中重复性工作更重要?

    重复性工作在软件工程师个人能力的衡量中具有重要的作用,它不仅可以体现工程师的工作效率和生产力,还可以影响软件系统的质量和稳定性,以及软件开发过程的标准化和自动化程度。一个优秀的软件工程师应该能够高效地处理重复性工作,并不断优化和改进工作流程,提高工作效率和质量。

    3.1 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?

    1. 持续学习和自我提升: 软件工程是一个不断发展和演变的领域,需要保持持续学习的态度,不断更新自己的知识和技能。学习新的编程语言、框架、工具和最佳实践,参加培训课程、在线课程、研讨会和行业会议,保持对新技术和趋势的敏感度。
    2. 参与开源项目和社区贡献: 参与开源项目和社区贡献是一个很好的学习和提升的机会,可以与其他开发者合作、交流经验、分享知识,并且通过实际项目的参与来提升自己的实践能力和解决问题的能力。
    3. 关注行业动态和趋势: 保持关注软件工程领域的最新动态和趋势,包括新技术的出现、行业标准的变化、市场需求的变化等。了解行业的发展方向和趋势,及时调整自己的学习和发展方向。
    4. 不断实践和积累经验: 学习知识只是第一步,更重要的是将所学知识应用到实践中,不断积累实际经验。通过参与实际项目、解决实际问题、开发实际应用程序等方式来提升自己的实践能力和解决问题的能力。
    5. 建立良好的职业网络: 与其他软件工程师建立联系,加入行业组织和社交网络,参加技术论坛和线下活动,建立良好的职业网络。通过与其他开发者的交流和合作,可以获得更多的学习机会和职业发展机会。

    4.2 你未来的职业规划是什么?

    做人工智能领域相关的工作(算法、开发),机器学习、深度学习等,同时持续积累软件开发的经验,理论和实践两手都要抓,在未来如果AI方向及岗位的bar过高自己无法满足要求,可以退而求其次找开发岗qwq。不过,目前更需要做的是积累科研和实习的经历,在研究生阶段的求学中尽快找到实习,为未来找工作积累经验。

    4.3 对于软件工程实践课程,你有什么理解和期望?

    希望能完成一个足够写进简历的项目qwq,最好还能涉及到应有比较前沿的AI工具、模型、代码等

    5.思维导图与学习路线

    5.1思维导图

    在这里插入图片描述

    5.2 学习路线

    在这里插入图片描述

...全文
155 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

122

社区成员

发帖
与我相关
我的任务
社区描述
FZU-SE
软件工程 高校
社区管理员
  • LinQF39
  • 助教-吴可仪
  • 一杯时间
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧