软件工程实践寒假作业: 回首过去,展望未来

222100209李炎东 2024-01-29 19:49:14
这个作业属于哪个课程2302软件工程社区
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标回首过去,立足当下,展望未来,规划学习路线
其他参考文献《构建之法》

目录

目录

  • 目录
  • 1. 准备工作
  • 2. 回首过去
  • 2.1 当初你为什么选择软件工程这个专业?
  • 2.2 当初对软件工程这个专业的期待和想象是什么?
  • 2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
  • 3. 立足当下
  • 李炎东 - 后端开发工程师 - Java
  • 教育背景
  • 项目
  • 校园报修服务认证模块
  • 思锐微信小程序后端
  • 高校学习交流社区
  • 技能
  • 4. 展望未来
  • 4.1 阅读《构建之法》以及构建之法社区中前人提出的问题后针对部分问题的思考
  • 4.2 你未来的职业规划是什么?
  • 4.3 对于软件工程实践课程,你有什么理解和期望?
  • 5. 思维导图和学习路线
  • 5.1 思维导图
  • 5.2 学习路线

1. 准备工作

二火. / spring-cloud-demo · GitCode

img

2. 回首过去

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

当初我选择软件工程这个专业是因为我对编程领域的兴趣以及对软件开发的热情,我从高中开始负责班级电脑的管理,当时就了解到一些有关批处理命令和vb脚本,也在百度的帮助下编写过一些简单的脚本。在选择专业时,我意识到软件在现代社会中的重要性和广泛应用,它们几乎渗透到了各个行业和领域。而比起计算机科学与技术专业,我更加关注软件开发和实际应用方面的知识和技能,当时了解到计算机更偏向于学一些底层相关的东西,而我更想学习一些实际的开发编程技术 (当然也有成绩不够的原因)。我希望能够掌握软件开发的技能,为解决现实世界中的问题做出贡献。

另外,我也注意到软件工程是一个快速发展的领域,不断涌现出新的技术和方法。这使我感到兴奋,因为我喜欢面对挑战并不断学习新知识。我相信选择软件工程专业可以为我提供一个不断学习和成长的机会。

此外,软件工程专业也提供了广泛的职业选择和发展机会。无论是在大型软件公司、创业公司还是自己创业,都有很多机会可以实现自己的职业目标。我希望能够在软件工程领域中找到自己的定位,并通过我的技能和知识为社会做出积极的贡献。

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

当初选择软件工程专业时,我希望能够学习如何开发实用的软件。我对计算机科学和技术领域非常感兴趣,特别是对软件开发的热情。我想学习各种编程语言和工具,掌握开发高质量软件的技术和方法。我希望能够亲身参与实际的软件项目。我想在团队中合作,学习如何与其他成员有效沟通和协作,解决实际开发中的问题。我相信通过实践,我能够更好地理解软件开发的流程和项目管理的重要性。

我还期待软件工程专业能够培养我解决问题的能力。我希望学习如何分析和理解现实世界中的问题,并通过软件开发提供解决方案。我想为社会、企业或个人带来实际的价值和影响。

最后,我也看到了软件工程专业广阔的职业发展机会。我知道软件工程领域的需求很大,有很多就业机会和职业发展路径。我希望能够在软件工程领域找到自己的定位,发展自己的专业能力,并有机会参与创新和领导项目。

总的来说,选择软件工程专业是因为我对计算机科学和技术领域充满兴趣,特别是对软件开发的热情。我希望通过学习软件工程知识和技能,参与实际项目,培养解决问题的能力,并在软件工程领域找到职业发展的机会。

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

当我选择学习软件工程专业时,我非常积极地准备和投入学习。在进入专业之前,我做了一些准备工作,并设定了一些目标来激励自己。

首先,我开始自学编程。在高中阶段,我通过一些编程网站学习了一些基础的编程知识和技能,了解了一些有关Windows批处理脚本以及visual basic的脚本开发。这为我在大学学习软件工程专业打下了一定的基础。在高考完的寒假我也是提前向学长了解到我们需要学习到的第一门编程语言是C语言,并且问到了较为靠谱的一些学习资料和教程,我也是自己购买了《C primer plus》并在寒假学完了C语言的一些基础内容(当然也只是基础内容,C语言真是博大精深,后面有关server开发的部分我现在还不会用c语言实现)

其次,我积极参与与软件工程相关的活动和竞赛。我在大一加入了西二在线工作室,较为详细地学习了Java和后端的整个开发流程,并且对linux服务器运维有了一些了解,还参加了一些编程比赛,这让我有机会应用所学知识解决实际问题,并与其他对软件开发感兴趣的同学交流和学习。

此外,我也为自己设定了一些Flag,来激励自己努力学习。我设定了学术目标。我希望在专业课程中取得较为不错的成绩,努力学习软件工程领域的核心知识和技能。我制定了每学期的学习计划,明确了要学习的课程内容和预期的学习成果。我努力参与课堂讨论,积极提问和解决问题,以充分理解和掌握所学内容。同时我设定了技术目标。我希望能够掌握一些高级语言特性、性能优化、主流开发框架和中间件的使用,包括JVM优化、Sql优化SpringCloud Alibaba微服务开发、Redis、RabbitMQ、ZooKeeper、Apollo、Nacos等。

在大学期间,我积极参与课堂讨论和实验项目。我努力完成作业和项目,并主动寻求与教授和同学的交流和合作。我也加入了西二在线工作室,并成为了Java组的组长,带着志同道合的同学一起学习和成长,为想要入门编程的同学们引领一条较为明确的方向,并为同学们整理一些文档和学习资料(这些文档也很大一部分公开在我们工作室的纳新群、学习路线的仓库以及我们的飞书文档中),与同学们共同学习。

总的来说,当初选择软件工程专业后,我通过自学、参与活动和设定目标等方式全身心地投入学习。我努力提升自己的编程技能,参与实践项目,并与同学和教授保持良好的交流。这些努力让我能够更好地适应专业学习的要求,并为未来的职业发展打下坚实的基础。

3. 立足当下

(Tips: 简历原为pdf格式(也是通过markdown编写的,通过应用木及简历帮助,但包含自定义特殊语法,遂略作更改),应作业需求作了一些更改,markdown中嵌入了一些html代码)

李炎东 - 后端开发工程师 - Java

  • info: 男/2003.03
  • phone: 13275900362
  • email: lear@qq.com
  • email: lear@qq.com
  • weixin: skydddog
  • github: https://github.com/SkyDDDog

教育背景

  • 福州大学 - 软件工程 (本科)
  • 2021.09 - 2025.07
* 担任班级班长,协助导员展开工作,协同班委共同管理班级事务
  • 成绩良好,多次被评为"优秀学生干部"

  • 加入学校西二在线工作室,担任Java组组长,主要负责纳新工作以及工作室事务日常管理

项目

  • 校园报修服务认证模块

  • 2023.11-2024.01
`SpringBoot` `Docker` `CAS`
  • 项目描述

    我参与了一个第三方系统认证模块的开发项目,负责将该模块与学校系统的CAS认证模块进行对接。该项目的目标是实现第三方系统与学校系统之间的认证和授权功能,通过整合CAS技术,实现用户在多个系统中的统一身份验证。

  • 工作内容

作为项目中的开发人员,我负责设计和开发第三方系统认证模块,并与学校系统的CAS模块进行对接。我与学校系统的开发团队紧密合作,了解CAS认证模块的接口和规范,并根据需求进行开发和集成。我编写了第三方系统认证模块的代码,确保与学校系统的CAS模块能够正确地进行认证和授权。

  • 思锐微信小程序后端

  • 2023.01-2023.06
`Springboot` `Mybatis-plus` `Druid` `MySQL` `Redis` `Nginx` `Docker`
  • 项目描述
    这个小程序是一个运动赛事直播平台。为客户提供赛事直播预约、直播片段获取、剪辑等功能。我在其中负责小程序后端以及对应管理系统后端的开发,以及服务器的管理和运维工作

  • 工作内容

    • 采用SpringBoot单体架构开发,设计整体架构和数据库
    • 赛事实时积分榜等热点数据使用Redis进行缓存,减轻数据库压力
  • 基于maven进行开发,并利用其继承特性管理共有jar包的依赖,利用其聚合特性拆分后台管理系统 ,实现分层工程开发。

  • 封装了http请求,整合了微信支付、腾讯云、快手等第三方接口

  • 采用Docker技术对服务进行交付,使用Docker-compose对容器进行统一的编排管理

    • 采用Nginx做反向代理,部署前端服务
  • 高校学习交流社区

  • 2022.06-2022.09
`Springboot` `MySQL` `Redis` `Mybatis-plus` `ffmpeg` `Oss` `Nginx` `Docker`
  • 项目描述:

    是一个兼顾学习资源整合、社交属性、学习工具等工具的综合性学习交流平台。我在其中负责后端服务开发,以及服务器的管理和运维。

  • 工作内容:

    • 使用redis缓存热点帖子数据,减轻数据库压力,提升服务反应速度

    • 使用SpringSecurity进行用户权限校验与拦截

    • 使用aspose包对上传的文件进行加工处理,形成带水印的预览图等提供给前端展示

    • 通过对象存储服务,对文件、图片等学习资源进行统一管理,采用ffmpeg技术对视频加工并截取预览图

技能

  • Java基础:熟悉Java基础知识,熟悉多线程并发,熟悉JVM原理。
  • 数据库:熟练使用Mysql、Redis及常见的优化手段。
  • 框架:熟悉Spring Boot、MyBatis等主流开发框架。
  • 分布式:了解SpringCloud、Dubbo等主流分布式开发框架,了解分布式系统的设计与应用。
  • 工具:熟悉Git、Maven等项目管理及构建工具。

4. 展望未来

4.1 阅读《构建之法》以及构建之法社区中前人提出的问题后针对部分问题的思考

  • Q1: 程序员在哪些地方是必须依赖一个额外的用户体验设计师的?-CSDN社区

  • A1: 我认为,尽管程序员可以在一定程度上关注用户体验,也需要能够稍微关注到用户体验 (便于与产品battle),但专业的用户体验设计师拥有独特的技能和经验,能够提供更深入的用户洞察和设计解决方案。他们专注于用户体验领域,能够更好地理解用户需求和心理,从而创造出更好的用户体验。因此,程序员和用户体验设计师之间的合作是非常重要的,可以共同努力实现优秀的软件用户体验。术业有专攻,每一个职业都有他存在的理由,这也就是为什么大企业基本上开发产品都有一套较为完整的流程,包括产品美术开发测试等等。

    ​ 当然不止是程序开发角度是如此,其他行业亦然如此。(下图列出一个游戏设计师的例子)

img

  • Q2: 程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?-CSDN社区

  • A2: 作为程序员,我们的目标本来就是开发出符合用户需求的软件。当然,有时候也会出现一些特定的需求,只针对某个小部分用户或特定场景。在这种情况下,程序员是否有必要为满足这些小部分人的需求去做软件或添加某些功能呢?这涉及到一个权衡和决策的过程。(一般这种事情交给产品就好了) 程序员还需要考虑时间、资源和成本等因素。如果为了满足小部分人的需求而投入过多的开发资源,包括还要考虑到技术难度等,可能会影响整体项目的进度和可行性。总之,需要考虑各方因素,结合具体情况权衡利弊。

  • Q3: 软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?-CSDN社区

  • A3: 软件开发确实是一个快速发展和不断学习的行业,年轻人在学习新技术和适应变化方面可能具有一定的优势。然而,年纪大的程序员也可以通过一些策略和方法来应对快速学习能力上的差距,并发挥他们的经验优势。很多业务上的坑是年轻人刚入门时很难能够了解到的,以及对于架构的了解,技术的选型,这些都是很依赖与经验丰富的程序员leader带着学习的,而年纪大的程序员可以通过持续学习、专注领域持续深耕开发领域,或是可以尝试转型,面向管理层。

  • Q4: 在找工作方面,计算机科学相比软件工程的同学是否不存在任何优势?-CSDN社区

  • A4: 在找工作方面,计算机科学专业的学生与软件工程专业的学生之间确实存在一些差异。但我觉得这些差异根本无伤大雅,我认为两个专业在找工作方面没有什么差别,更多的差异在于个人。大学阶段,同样是计算机学院的同学,在大部分公共课甚至是专业课上都有很大一部分重叠。而对我而言,其实大学教给我们的知识远远不足以我们进行工作,或者说是得到较好的工作,我们更应该自主进行学习,学习课外的知识,很多大学课程的内容也十分老旧,我们需要自己学习最新,企业中使用更多的知识,才能更好地找到工作。

  • Q5: 如何提高单元测试的覆盖率(尤其是对于经验不足的新人)?-CSDN社区

  • A5: 在编写单元测试之前,首先要深入学习和理解要测试的代码。了解代码的功能、逻辑和预期行为是编写有效测试用例的基础。边界条件和异常情况往往是导致软件错误的主要原因之一。在编写单元测试时,确保优先考虑这些情况,并编写相应的测试用例来覆盖这些路径。这可以帮助发现潜在的问题并提高代码的健壮性。代码覆盖工具可以帮助你确定测试用例是否覆盖了代码的所有路径。这些工具可以告诉你哪些代码行被执行过,哪些代码路径没有被覆盖到。通过使用这些工具,你可以有针对性地编写测试用例,以提高覆盖率。

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

​ 我暂时没有进行科研和深造的想法,接下来会准备实习和就业。毕竟我之前也进实验室体验过一段时间,同时也在放假期间去企业中进行过实习,对我个人而言,同样是摄取知识,我更喜欢从实践中学习和了解知识,这样不仅可以接触到最新或者说是较为成熟的技术,也能够有前辈指导,并付诸实践,将知识化为可以看得见的成果。未来计划作为一名Java应用开发工程师,主要面向后端开发,希望能够多接触到一些较新的技术,学习更多有关云原生、大数据等知识。

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

理解:

​ 软件工程实践课程应该以实践为导向,注重培养学生的实际开发能力。通过项目实践、团队合作和实际案例的学习,学生可以亲身体验软件开发的各个阶段,并学习如何应对实际项目中的挑战和问题。

期望:

​ 说实话,其实没有很多期待。因为我在之前的实践已经体验过多次团队开发,以及软件开发的完整生命周期。(还是比较自信能又一定的团队开发能力的) 当然还是很期待能够学到一些感兴趣的新知识的,同时能够博采众长,从其他同学们身上学到一些东西。

  • 你希望通过软件工程课程学习到什么技术(前端、后端、平台、语言、框架、工具、软件、研究方向等,仅列出一个即可)、提高哪些方面的能力;

    • 希望多学一些云原生相关的中间件吧,比如我现在对Apollo等的使用还不太了解;
    • 想要更多地学习到一些CI/CD方面的流程,学习一些自动化的工作流(比如github的Action,以及一些脚本的学习)
    • 更深入学习一些微服务系统架构,比如k8s等,现在对集群的了解还是不足
  • 你对老师助教有什么期待?

    • 希望老师助教不要太拘泥于课内的一些知识,能够根据同学们的兴趣,让同学们能够更多自由地学习一些感兴趣的知识
  • 或者其他相关内容

    • 有机会的话想尝试接触一些有关ai的东西(?)

5. 思维导图和学习路线

5.1 思维导图

img

5.2 学习路线

计划先把寒假最近在写一个微服务创业项目整顿好,项目是一个与AI整合的创作辅助和发布工具。基于Spring Cloud Alibaba实现开发。框架基于准备工作中上传的那个demo开发。(那个demo是我自己基于阿里巴巴最佳实现做的,结合了自己学习的一些知识,添加了RBAC等)

img

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

116

社区成员

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

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