软件工程实践总结——乘风破浪会有时

这个作业属于哪个课程202302软件工程实践
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标课程回顾与总结、个人技术总结
其他参考文献《构建之法》

一、课程回顾与总结

1. 寒假作业博客链接

软件工程实践寒假作业

2. 再次解答

Q1:AI辅助编程,是一个银弹么?
原回答:

在我看来,以ChatGPT为代表的AI辅助编程可以加速编码过程,通过智能建议、自动补全等功能,减少编码的时间和精力成本,提供实时反馈和建议,帮助学习者理解代码的逻辑和结构,加速学习曲线,同时在代码审查和纠错方面有很高的准确性,可以帮助减少由人为错误引起的bug,但过度依赖AI工具可能导致对基本概念和原理的理解不足,使得编程者对问题解决的能力产生依赖性,对于初学者来说,过度依赖AI工具会降低其学习热情和掌握深度;总的来说,AI辅助编程为编程者提供了便利和效率,所以使用者需要注意避免过度依赖,保持对基本原理和逻辑的理解

现回答:

AI辅助编程工具,如ChatGPT,在过去半年中得到了显著的发展和普及。它们不仅提供了智能建议和自动补全功能,还开始支持代码生成和重构,甚至能够理解复杂的编程概念和设计模式。然而,随着AI能力的提升,也出现了一些新问题,比如AI生成的代码可能缺乏可读性和可维护性,或者在某些情况下可能引入安全漏洞。因此,程序员在使用AI辅助工具时,需要更加谨慎,确保生成的代码符合最佳实践,同时保持对代码质量和安全性的控制

Q2:如何区分一个好的程序员和不好的程序员呢?
原回答:

在我看来,区分一个好的程序员和坏的程序员需要考虑多个方面,包括技术能力、职业素养、团队合作、解决问题的能力、持续学习和发展能力等;例如:好的程序员应该能够快速掌握新的技术和工具,并且能够有效地应用它们来解决实际问题。他们应该能够准确地分析和诊断问题,并能够提出有效的解决方案;好的程序员应该有高度的职业道德和责任心,能够按时交付高质量的代码,并且注重代码的可读性、可维护性和可扩展性。他们应该能够与团队成员有效沟通,并尊重他人的意见和反馈;好的程序员应该注重代码的质量,包括代码的可读性、可维护性和可扩展性。他们应该能够编写高质量的代码,避免出现错误和漏洞,并且能够及时修复问题等,说到底程序员是个职业,需要完成好相应的工作职责

现回答:

随着编程工具和环境的不断进步,区分好程序员的标准也在变化。除了之前提到的技术能力、职业素养等,现在一个好的程序员还需要具备快速适应新技术的能力,能够在AI辅助编程环境下保持高效的工作流。此外,他们还需要具备良好的数据素养,能够利用数据分析来优化代码和解决问题。不好的程序员可能在这些新技能上表现不足,难以跟上行业的发展步伐

Q3: 我都是大学生了,上课还要认真听老师讲课么?
原回答:

在我看来,老师在课堂上可能会提供额外的解释、案例和实例,有助于更深入地理解学科的概念,从而有可能在考试中取得更好的成绩,但是很多学生已经通过自学或其他途径了解了课程内容,因此在课堂上可能感到无聊和重复,觉得老师上课的进度十分缓慢,加上有些课程可能更适合网络学习,而不是完全依赖于课堂授课,便认为在课堂上学到的内容并不比自主学习效果更好,因此选择将时间用于其他学习方式,总体而言,上课认真听老师讲课的效果取决于个体差异、学科特性以及个人学习偏好,合理权衡利弊,选择适合自己的学习方式是关键

现回答:

随着在线教育和自主学习的普及,大学生有了更多的学习资源和方式。然而,老师在课堂上提供的互动和即时反馈仍然是宝贵的学习机会。特别是在编程和人工智能领域,老师可以分享最新的行业趋势和实践经验,帮助学生更好地理解理论知识与实际应用的结合。因此,即使可以通过自学获取知识,认真听讲仍然是一个有效的学习策略

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

原回答:

在我看来,程序员在为软件满足小部分人的需求或添加功能时,需要平衡用户满意度、市场竞争、成本以及整体软件质量等因素,确保做出的改变是有益的,而不是过度或不切实际的,举例来说,满足小部分人的特定需求或添加特定功能可能会使这些用户感到满意,在部分竞争激烈的市场中,通过满足特定人群的需求或提供独特功能,可以帮助软件在市场中脱颖而出,形成差异化竞争优势,但是往往需要额外的开发和维护成本,不仅会增加工作量,添加过多的功能也可能会使用户界面变得复杂,影响整体的用户体验,平衡好这些是程序员的一大考验

现回答:

随着个性化和定制化需求的增加,程序员越来越需要考虑为特定用户群体开发功能。AI技术可以帮助分析用户行为和偏好,从而为特定需求提供更精准的解决方案。然而,这并不意味着要牺牲软件的通用性和易用性。程序员需要在满足特定需求和保持软件整体质量之间找到平衡点

Q5: 团队成员的学习能力不一,要如何平衡?
原回答:

在我看来,在开始项目前应当了解每个团队成员的学习风格和需求,对于学习能力较强的成员,可以提供更深入的学习资源和挑战性的任务,而对于学习能力较弱的成员,则可以提供更基础的学习资源与任务,在时间允许的前提下尽量给予每个成员充足的学习时间,同时团队管理者应该提供给每个成员足够的帮助和关心,让他们能够对自己保持自信,团队成员也应该尽力而为,跟上团队的进度,争取不拖团队的后腿,为项目开发带来更多的选择

现回答:

在AI辅助编程越来越普及的背景下,团队成员的学习能力差异可能会更加明显。为了平衡这一点,团队可以利用AI工具来个性化地提供学习资源和任务,确保每个成员都能在自己的节奏上进步。同时,团队领导者应该鼓励成员之间的知识共享和协作,利用AI分析团队的工作流程,找出瓶颈并优化团队协作。这样,即使学习能力不同,团队成员也能共同进步,实现项目目标

3. 产生的新问题

  • AI了有较大突破后,各个岗位的招聘人员都有了一定的下降,这与AI的蓬勃发展是否有关系呢?如果有的话,程序员应该怎么做才能在未来仍然具有竞争力,不被AI淘汰呢?
  • 团队中总会有技术大拿,这类人提供的建议都十分宝贵,然而其中有一些也会对后期有较为不利的影响,怎样才能取舍与辨别建议的优劣呢?
  • 团队中总会有代码能力较弱的人,如果从0开始教他的话,成本要比自己写还要大,如何给这些人分配工作才能保证他们有所收获呢?
  • 后端可以对各个接口进行自动化测试,前端mock数据总是会不准或是没有代表性,有没有前端比较方便的测试方法呢?

4. 每个阶段收获的知识或能力

需求阶段:

收获的知识/能力:

  • 个人项目: 在爬取世界游泳锦标赛官网数据时,我学会了如何识别和定义数据需求,比如需要哪些游泳运动员的数据、比赛结果、赛程等
  • 结对编程: 在设计数据网站时,我与搭档共同讨论用户可能的需求,比如用户可能对排名、赛程的查看方式有何偏好,这让我学会了如何从用户角度思考问题
  • 团队项目: 在3D RPG游戏开发中,需求分析更为复杂,需要考虑游戏玩法、故事情节、角色设定等多方面的需求,这让我学会了如何在团队中协调不同角色的需求

个人理解:
在个人项目中,我学会了如何明确自己的目标和需求,而在团队项目和结对编程中,我学会了如何与团队成员和可能的客户沟通,确保需求的准确理解和传达

设计阶段:

收获的知识/能力:

  • 个人项目: 在设计数据爬取方案时,我学会了如何选择合适的工具和技术栈,比如使用Python的requests库和BeautifulSoup进行网页解析
  • 结对编程: 在设计数据网站架构时,我与搭档一起讨论如何组织数据,如何设计用户界面,这让我学会了如何进行前端和后端的交互设计
  • 团队项目: 在3D RPG游戏设计中,设计阶段涉及到游戏世界的布局、角色技能系统、任务系统等,这让我学会了如何进行大型项目的系统设计

个人理解:
这让我学会了如何平衡不同设计方案的优缺点,并考虑可扩展性和可维护性,同时也提高了我作为程序员的综合素质,而不是只有代码能力

实现阶段:

收获的知识/能力:

  • 个人项目: 在实现数据爬虫时,我深入学习了HTTP请求、HTML解析等技术,提高了我的编程能力
  • 结对编程: 在实现数据网站时,我与搭档一起编写代码,学习了如何使用数据库存储数据,如何使用前端框架如React或Vue.js展示数据**
  • 团队项目: 在3D RPG游戏实现中,我学习了Unity引擎的使用,包括场景搭建、角色控制、动画制作等,这极大地提升了我的游戏开发技能**

个人理解:
在个人项目中,我学会了如何明确自己的目标和需求,而在团队项目和结对编程中,我学会了如何与团队成员和可能的客户沟通,确保需求的准确理解和传达

测试阶段:

  • 个人项目: 在测试数据爬虫时,我学会了如何验证爬取的数据的准确性和完整性。
  • 结对编程: 在测试数据网站时,我与搭档一起进行单元测试和集成测试,确保网站的各个部分都能正常工作。
  • 团队项目: 在测试3D RPG游戏时,我参与了更复杂的测试流程,包括功能测试、性能测试和用户测试,这让我学会了如何系统地测试大型软件。

个人理解:
在个人项目中,我学会了如何系统地测试自己的代码,而在团队项目中,我学到了如何进行更全面的测试,包括自动化测试和性能测试

发布阶段:

  • 个人项目: 在发布数据爬虫时,我学会了如何使用GitHub等平台进行代码管理和版本控制。
  • 结对编程: 在发布数据网站时,我与搭档一起部署网站到服务器,学习了Web服务器的配置和维护。
  • 团队项目: 在发布3D RPG游戏时,我参与了游戏的打包、发布和市场推广,这让我了解了软件发布的全过程,包括如何处理用户反馈和进行版本迭代。

个人理解:
在团队项目中,我参与了软件的发布过程,这让我了解了软件生命周期管理的重要性,以及如何根据用户反馈进行迭代

综合理解与心得

结合自己的经验,我认为“做中学”的关键在于实践与反思的结合。在每个项目阶段,不仅要积极参与实践,还要在实践后进行反思,思考如何改进和优化。例如,在实现阶段,我可能会遇到编码上的挑战,通过不断尝试和调整,我能够提高自己的编码能力。而在测试阶段,我可能会发现一些之前未注意到的问题,这促使我学习更深入的测试方法和工具

此外,我认为团队合作是软件工程中不可或缺的一部分。在团队项目中,我学会了如何与不同背景的人合作,如何分配任务,以及如何处理冲突。这些软技能对于未来的职业生涯同样重要
最后,我认为持续学习是软件工程师的核心能力之一。技术不断进步,新的工具和方法层出不穷,只有不断学习和适应,才能保持竞争力。在每个项目中,我都尝试学习新的技术或方法,这不仅丰富了我的技术栈,也提高了我解决问题的能力

5. 结合经历谈谈理解或心得

  • 目标1: 90分

我理解软件工程师的职业道德规范,如诚实、公正、尊重知识产权等。在个人项目中,我确保遵守版权法,不侵犯官网的数据使用权。在团队项目中,我与团队成员共同维护积极的开发氛围,尊重每个人的工作和意见

  • 目标2: 85分

在个人项目中,我学会了独立识别和定义数据需求。在结对编程和团队项目中,我通过与搭档和团队成员的沟通,提高了辨别多样化需求的能力,并学会了使用UML等工具来表达需求。

  • 目标3: 80分

我在个人和团队项目中都经历了软件开发的全过程。我学会了遵循设计原则,如模块化、封装等,并通过技术评审来完善设计。在团队项目中,我参与了更复杂的体系结构设计,如3D游戏引擎的使用

  • 目标4: 80分

我能够进行技术评测,并具备一定的评判能力。在团队项目中,我参与了设计方案的讨论,学习了如何优选方案。但我认为自己在创新设计意识方面还有提升空间

  • 目标5: 90分

我遵循软件开发各阶段的文档标准,掌握了需求规格说明书和系统设计说明书的撰写方法。在团队项目中,我参与了系统测试报告的编写,提高了我的文档撰写和交流能力

  • 目标6: 85分

我在所有项目中都展现了良好的团队意识和合作技能。在团队项目中,我学会了如何更有效地与其他成员沟通和协作,但我认为在组织和协调大型团队工作方面还有提升的空间

  • 目标7: 80分

我能够辨别软件项目管理中的构成要素,并掌握了一些估算方法。在团队项目中,我参与了进度规划和项目管理,但我认为在管理更复杂项目的能力上还有待提高

总体而言,我认为自己在这些课程目标上的表现是相对不错的,但仍有提升的空间。特别是在创新设计意识、大型团队组织协调以及复杂项目管理方面,我需要更多的实践和学习来进一步提高

二、个人技术总结

1. 技术博客链接

个人技术总结——Unity3D游戏的图标与预制件配置

2. 概述

预制件配置:负责将游戏中需要使用的各种预制件按照设计要求进行配置;为场景设计ui和交互界面,绘制图标,与游戏设计师、程序员和紧密合作,根据他们的需求和反馈及时调整预制件配置和图标设计

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值