软件工程实践暑假作业

222200411张晨阳 2024-09-02 00:01:20

软件工程实践暑假作业

这个作业属于哪个课程https://bbs.csdn.net/forums/2401_CS_SE_FZU
这个作业要求在哪里https://bbs.csdn.net/topics/619258010
这个作业的目标加入班级社区,详细阅读作业要求,学习markdown语法,学习git使用,使用codeArts仓库并通过git上传代码文件,阅读《构建之法》撰写博客
其他参考文献《构建之法》

目录

  • 软件工程实践暑假作业
  • 1.准备工作
  • 1.1截图
  • 1.2 GitCode地址
  • 2. 回首过去
  • 2.1 当初你为什么选择软件工程这个专业?
  • 2.2 当初对软件工程这个专业的期待和想象是什么?
  • 2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
  • 3. 立足当下
  • 4. 展望未来
  • 4.1阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。要求在自己的思考中贴上原问题的链接。
  • 问题1: 如何让自己能够跟上软件工程发展,做一个永不落伍的开发者呢?
  • 问题2:AI辅助编程,是一个银弹么?
  • 问题3:有了GPT类的应用,传统的搜索引擎是否会被完全替代?
  • 问题4:如何区分一个好的程序员和不好的程序员呢?
  • 问题5: 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
  • 4.2 你未来的职业规划是什么?
  • 4.3 对于软件工程实践课程,你有什么理解和期望?
  • 期望:
  • 技术学习
  • 能力提升
  • 对老师与助教的期望
  • 理解:
  • 5.思维导图和学习路线
  • 5.1 思维导图
  • 5.2 学习路线

1.准备工作

1.1截图

img

img

1.2 GitCode地址

https://codehub.devcloud.cn-north-4.huaweicloud.com/9e4dc26519d24864b71aca8da8112af3/222200411.git

2. 回首过去

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

从职业规划的角度,应当结合时代趋势,选择自己喜欢或者擅长的专业。高考后的我从这些角度进行思考,没有特别喜欢什么专业,同时擅长英语生物,数理水平就相对偏弱。但是英语与生物的就业实在一言难尽,同时依托最核心的学习能力本身,各个方向的专业其实都可以学习。于是主要从时代趋势的角度进行考虑。尽管当时计算机已经大热到人尽皆知,也存在49入国军之疑,但是综合考量虚拟世界在未来会拥有更多的占比,更深入的深入到生活的方方面面。同时作为一个高新技术产业,仍然是下一个革命性变革最可能出现的领域,整个行业还是处于上升面。相比其他工科还是矮个里拔高个,最差也会回归到正常工科水平,于是报了这个专业。

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

当初其实没有期待,谈不上喜欢也谈不上不喜欢。想象就是最刻板的敲代码的程序员。但是两年学习之后现在对这个问题有了新的理解,我认为软件工程的魅力之一就在于创造。代码语言框架这些本质上还是工具,软件工程真正在干的事是将现实世界映射到虚拟世界,在虚拟世界中进行描述与创造,在反作用于现实世界。创造是一件相当迷人的事情。当掌握了必需的技术,面对生活中自己或社会的需求,便可以在虚拟世界中创造一个东西(写一个工程)来解决这一需求,解决需求便带来价值,于己带来便利,于社会有利则带来财富。

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

说来惭愧,当初并没有对自己如何投入进行规划,没有准备,更没有flag。事实上,我并不希望全身心的投入专业学习中。已经来到大学阶段,学习不再是唯一最核心的事,我希望去见世界,见众人,见自己,去进行更广泛的探索,从各个学科去建立对世界的理解,去寻找自己热爱并不知疲倦的事情。当然这也导致我在加入一堆部门担任团支书加入辩论队获得佳辩的同时成绩崩盘,错判了学习难度没有提前准备,一度要转专业但是还好坚持下来了,现在成绩也渐渐爬回30%走出那段黑暗迷茫的低谷。

3. 立足当下

个人简介
姓名张晨阳
学号222200411
兴趣爱好阅读,旅行,打游戏,吃美食
成果和获奖经历
校优秀共青团员
院精神文明建设奖
技术栈
编程语言C/C++,,Java,html/css/js,SQL
技术框架Springboot,Vue,Qt
累计代码量5k+
开发工具IDEA,Vscode,活字格
项目经历
c++实现文字接龙
c++和qt实现可视化路径规划系统
java实现的多线小球游戏,计算器,基于UDP的本地聊天软件,图书管理系统
maimai二手物品信息交换平台(产品需求分析设计,UI设计,前后端开发,API对接)
在线电商管理系统
跨境电商ERP系统(活字格)

4. 展望未来

4.1阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。要求在自己的思考中贴上原问题的链接。

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

答:个人认为,技术是永远在快速迭代的,永远都会有更好更新的框架,专精一个技术的价值仅有效于这个技术还在广泛使用。只有持续深耕于不变的东西才能永不落伍。比如快速学习掌握新技术的能力,对产品需求的拆解分析,对系统架构的好的解决方案的经验积累,对开发团队的管理能力等等。如果在企业外就追逐着最新的技术去不断更新学习就好,如果在企业内,在职业的前期可以专精于提升技术,不断掌握新技术,但是在后期就要考虑向产品/架构/管理这些职位培养能力才不会被淘汰了。

问题2:AI辅助编程,是一个银弹么?

答:所谓银弹,是指让软件开发工作有一个 10 倍以上的效率提升的新工具。而对于ai辅助编程,如果仅仅是copilot这种ai辅助那对效率的提升还是达不到银弹的标准的。但是如果让大模型完全参与进入开发的过程,这样的ai辅助编程对于外行和新手程序员来说就是一个银弹的存在。让拆解问题进行系统分析模块设计,向ai提问需要哪些技术和技术选型,向ai提问具体功能的代码实现,让ai分析代码报错原因并进行修改,这样全流程的参与能大大降低开发难度,显著提升新手的开发效率。

问题3:有了GPT类的应用,传统的搜索引擎是否会被完全替代?

答:两者并非对立的替代关系,两者占据不同生态位,更好的应该是两者相辅相成。不考虑联网搜索的ai应用下,ai确实能对所有问题给出一个合理的基本答案,但是质量依赖于提示词质量,同时往往缺少人对于相关问题的独特理解与经验,仅仅只是知识。这点上是不如搜索引擎中各种各样的人的回答的,无法完全替代。但在考虑加入了联网搜索功能的ai应用之后,ai应用能针对问题自行通过搜索引擎进行搜索阅读整理,最后给出总结的回答与原网页链接。这样的合作之下形成的“引擎”确实是能完全替代传统的搜索引擎的,进一步简化了搜索难度,可以用更加随便的表述进行搜索,可以给出总结性的概述,这些是优于传统引擎能实现上位替代的。

问题4:如何区分一个好的程序员和不好的程序员呢?

答:好的程序员首先在思维和学习能力方面表现出色,他们具备强大的逻辑思维和抽象能力,运用系统化的问题解决策略。能够快速学习并深入理解技术原理,对新技术充满好奇心,愿意不断学习,并且能够快速适应新环境和解决问题。运用系统化的问题解决策略。其次应当具备扎实的编程技术技能,能够熟练运用多种编程语言和工具,对代码质量有严格的要求,编写的代码不仅功能完善,而且结构清晰、注释得当、易于维护。此外,好的程序员还具有良好的团队合作能力,能够有效地沟通和协作。

不好的程序员则是反面。在技术与设计上有所欠缺,编写的代码可能存在效率低下、潜在问题多等问题,导致代码难以理解和维护。对新技术的学习和应用不够积极,面对问题时可能缺乏有效的解决策略。在团队合作方面表现不佳,难以与他人有效沟通和协作,对项目的贡献有限。

问题5: 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?

答:应该是一专多广最有价值。太专了便是将鸡蛋放在一个篮子里不具备流动性不安全,太广了则没有突出的方向没有显著的竞争力。应该要在专精一个细分方向做到比较顶尖的同时,向外拓宽视野,学习掌握其他各个方向的技术,也就是“全栈”。从而拥有更加广泛的全局视野,能更全面更多角度的思考问题,让自己细分方向的代码更具合作性更好与其他人对接,同时即使原方向没落,也能快速的找到第二职业曲线再次专精发展。

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

目前先考虑考研,在研究生的学习生涯中更多的探索计算机领域的方方面面,同时接一些横向或纵向的项目来丰富实践经验。然后毕业后从程序员做起,职业前期先积累技术,后期转向产品经理的方向。同时积极学习全栈的内容,做到拥有个人独立开发的能力,能够独立接一些业务赚一些副业的钱。

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

期望:

技术学习

  1. 最新的技术知识:期望课程能够涵盖当前行业最前沿的技术,如云计算、大数据、人工智能、区块链等。
  2. 软件开发工具:期望课程能够教授如何使用现代的软件开发工具,如IDE、版本控制系统(如Git)、构建工具(如Maven或Gradle)、测试框架等。
  3. 最佳实践:希望学习到软件开发的最佳实践,包括代码规范、设计模式、敏捷开发方法等。
  4. 安全意识:期望课程能够强调软件安全的重要性,并教授如何编写安全的代码。

能力提升

  1. 问题解决能力:期望通过实践课程提高解决复杂问题的能力,包括问题分析、解决方案设计和实施。
  2. 团队合作:希望在团队项目中提升沟通、协调和领导能力。
  3. 项目管理:期望学习到项目管理的知识和技能,如需求分析、时间管理、风险评估等。
  4. 创新思维:希望课程能够鼓励创新思维,培养学生的创造力和解决问题的新方法。
  5. 自我学习:期望课程能够培养学生的自主学习能力,使他们能够在课程结束后继续自我提升。

对老师与助教的期望

  1. 专业知识:期望老师和助教具有深厚的专业知识和丰富的行业经验。
  2. 教学热情:希望老师和助教对教学充满热情,能够激发学生的学习兴趣。
  3. 互动性:期望课程能够鼓励师生互动,老师和助教能够及时回应学生的问题和需求。
  4. 指导和反馈:希望老师和助教能够提供有效的指导和建设性的反馈,帮助学生改进和进步。
  5. 资源提供:期望老师和助教能够提供丰富的学习资源,如额外的阅读材料、在线课程、行业案例等。
  6. 可接近性:期望老师和助教在课程期间和之后都能够保持可接近性,以便学生在需要时能够寻求帮助。

理解:

  1. 理论与实践的结合:实践课程通常包括理论学习与实际编程任务,让学生理解软件工程的基本原则,并将其应用于实际项目中。
  2. 项目驱动的学习:学生通常需要参与到一个或多个软件项目中,从项目规划、需求分析、设计、编码、测试到部署和维护,全方位体验软件开发的全过程。
  3. 团队合作:软件工程实践课程强调团队合作的重要性,因为大多数软件项目都是团队合作的结果。学生需要学习如何在团队中有效沟通和协作。
  4. 需求分析:学生学习如何与客户或利益相关者沟通,以准确理解他们的需求,并将其转化为软件需求规格。
  5. 设计与建模:课程教授如何设计软件架构、数据库模型、用户界面等,并使用UML(统一建模语言)等工具进行建模。
  6. 编码实践:学生通过编写代码来实现软件功能,同时学习代码规范、重构和优化技巧。
  7. 测试与质量保证:学生学习如何编写测试用例,进行单元测试、集成测试和系统测试,以确保软件质量。

5.思维导图和学习路线

5.1 思维导图

img

5.2 学习路线

img

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

111

社区成员

发帖
与我相关
我的任务
社区描述
202401_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 言1837
  • 防震水泥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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