软件工程实践寒假作业

222100436魏文铮 2024-02-16 13:47:20
这个作业属于哪个课程https://bbs.csdn.net/topics/618011014
这个作业要求在哪里https://bbs.csdn.net/topics/618011014
这个作业的目标提前注册 CSDN;加入班级社区 、提前学习 markdown 语法、阅读《构建之法》、撰写博客
其他参考文献《构建之法(第三版)》、https://www.runoob.com/git/git-tutorial.html

目录

  • 准备工作
  • 回首过去
  • 当初你为什么选择软件工程这个专业?
  • 当初对软件工程这个专业的期待和想象是什么?
  • 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么 FLAG 吗?
  • 立足当下
  • 展望未来
  • 你未来的职业规划是什么?
  • 对于软件工程实践课程,你有什么理解和期望?例如:
  • 思维导图和学习路线

准备工作

img

回首过去

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

  1. 软件工程是计算机科学的一个重要分支,专业火爆,前景优良。

  2. 我从小就对计算机的知识感到有趣和好奇,拥有强烈的探索欲。

  3. 我专注于电子游戏的设计与开发,希望通过这个专业实现自己的游戏梦想。

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

  1. 学习软件工程可以制造各种平台上面的 APP,实现个人和社会的各种需求,我的心情是好奇、期望与激动的。

  2. 和我同一专业的同学们,才思敏锐,善于一起沟通和分析、解决问题。

  3. 随着计算机的迅速发展,软件工程人才需求越来越大,薪资水平提高。

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

在进入大学学习这个专业之前,其实并没有太多时间接触计算机,因为家长常常限制我接触电脑手机之类的电子设备;对成为游戏开发者的梦想,也是在进入大学之后拥有自己的笔记本电脑之后才诞生的。因此我并没有做过什么准备或立下过任何目标。

但是现在我有了一个比较明确地目标,就是成为一个优秀的游戏开发人员。

现在,对于自己是如何投入这个专业的学习的希望是,我能够从程序设计、美术、策划等等方面能够有所提升和特长,最终和同伴们打造出自己理想的游戏世界。

立足当下

个人简历
姓名
魏文铮
头像
电话
130****5726
兴趣爱好
电脑、吉他、动漫、绘画、游戏开发
特长
吉他
获奖经历
2022-2023学年下学期奖学金三等奖
专业水平
掌握的编程语言
C、C++、Java、C#、HTML、JavaScript、PHP、Python
技术框架
pygame、Yii2.0
开发软件
Unity、Dev-C++、IntelliJ IDEA、Visual Studio Code、Visual Studio
累计代码量
2w+行
项目经历
孤岛求生
独立游戏。基于python语言和pygame框架;结对开发;地图随机生成;背包系统;装备系统;战斗系统;实体系统;实体AI;音效;合成系统;保存系统;装备系统。
少女与战车
独立游戏。基于Unity引擎和自研WWZFramework框架;背包系统;装备系统;战斗系统;实体系统;音效;合成系统;保存系统。
基于Yii2.0的博客系统
Web实践课作业。通过yii框架实现设计一个个人博客系统,包含了文章管理,用户管理,与评论管理;实现了基于角色的权限管理;采用MySQL管理数据,实现了增删改查,利用“标签云”对数据进行统计可视化。

展望未来

  1. 认为软件系统十分复杂是不是因为软件工程还没有充分发展?

    原问题的链接:https://bbs.csdn.net/topics/605357244

    当然不是。

    其实和其他学科和行业一样,软件工程同时具有复杂性和充分发展性,而且一个事物的复杂性和其是否已充分发展没有必然关系。汽车由众多系统组成,引擎、外形设计、内饰、轮胎、防抱死、安全系统等等,其当然是十分复杂的事物,然而我们可以说汽车行业没有充分发展吗?除此之外,还有医学、航天、建筑、硬件等等科学,它们都得到充分发展,然而也具有高度的复杂性。

    软件系统的复杂性,是在软件工程的任何发展阶段,都一直存在的。软件工程的概念大概在 70 年代被提出,而软件的出现时间则更早。现在的软件,可谓是琳琅满目、层出不穷,无时不刻地存在和影响人们的生活;众多的软件工程技术和概念已被研究和发展,如面向对象、基于组件、云计算、大数据等等,可见软件工程已得到充分发展。而软件工程的复杂性是一直存在的,在这个领域,人们积极而努力地进行需求分析、程序理解、质量保障和提升用户体验,甚至形成了商业模式和道德规范。

  2. 如何能“证明”一个软件是可以继续发展的?

    原问题的链接:https://bbs.csdn.net/topics/607194899

    1. 代码规范良好,耦合度低,提供大量 API,最好有文档。这一点的主要目的是,为开发人员提供一个良好的编程环境,吸引更多开发人员。只有这样,才能更好地进行分工,大幅提升扩展性,让软件“可持续发展”。举一个经典的例子,Minecraft,这是一个 3D 沙盒游戏,官方提供了大量 API 和详细文档,让一些第三方工作室甚至玩家都可以参与到这个游戏的开发,极大丰富了游戏内容,使之成为经久不衰甚至热度持续攀升的游戏。

    2. 迎合当前和未来市场需要,积极听取用户意见,展望未来。一个软件在刚开始推出的时候,可能确实只是为某一个特定功能而诞生的,但是,有的用户觉得它好用,但是发现了一些 bug,甚至提出了更多需求,那么开发人员需要根据新的需求,积极更新这个软件,就可以让这个软件继续发展下去,还可以得到用户的推荐,甚至一些大型公司的采购和合作。

  3. 为什么过早优化的后果会严重到成为“万恶之源”

    原问题的链接:https://bbs.csdn.net/topics/608532729

    1. 过早优化的效果可能不够理想,付出大于汇报。 问题中的“过早”,应该意味着一个项目还没完成,进度只到 5% 左右,甚至没有一个最终整体的框架。而这个阶段去做优化,通常来说只是对一些部分、局部的模块去做优化,我们对其优化了 50% 的效率,然而这个模块的代码量只有整体代码量的 5% ,在最终的整体看来,优化的效果可以说是微乎其微,可以忽略。

    2. 代码可能面临重构甚至项目中断,优化工作前功尽弃。这一点我在游戏开发过程中深有体会,在前期开发过程中,可能对一个功能进行优化,但是游戏的需求发生了变化,也就是玩法发生了改变,让这个功能被摒弃了,于是优化的工作被直接丢弃。优化过程花费了不少时间,但是最终却没有任何作用。

    总之,在 demo 开发过程中,不应该太过注重于局部的优化,而应该关注一个功能能否实现、整体的效果,在最后对效率低下而使用频繁的部分进行性能的优化。

  4. 写博客也会花挺多时间的,如果把这些时间花在写代码上面会不会更好?

    原问题的链接:https://bbs.csdn.net/topics/605554949

    我认为我们应该同时抓写代码和写博客。

    1. 其实写博客和写代码并不冲突,两者甚至是大同小异的。从体力消耗来看,都是脑子想,手敲键盘;从语言来看,写博客使用自然语言,写代码是用计算机程序语言,而当前高级计算机程序语言已经与自然语言十分相似,都有自己的语法、逻辑和规范;从目的来看,博客和代码的目的都是要呈现通俗易懂的内容,表达和记录作者的思想,关注人与人之间的交流,实现伟大的功能。

    2. 写博客是有利于写代码的。写代码是为了实现功能,并呈现良好的可读性和逻辑性,锻炼人的逻辑思维;写博客通常是为了总结和描述作者的编程思想和经验,可以让我们总结经验,改正错误,让我们更好创造优质的代码。如果一个人只会在代码上面秀功夫,而不擅长通过博客或其他形式总结思想和经验,来与他人沟通,那么对于今后的团队合作是不利的。

  5. 我们如何可以和市面上那些繁复多样的 APP 进行竞争?如果功能相似是不是就没有开发的必要?

    原问题的链接:https://bbs.csdn.net/topics/605554748

    当前市面上的 APP 的确非常丰富,几乎满足了用户的各种需求。但是,这不意味着我们不能开发功能相似的 APP。理由如下:

    1. 首先,虽然我的产品的竞品已经实现了相似的功能,但是质量和用户体验度不一定高,我可以着重这方面,通过精心的设计和质量保障来提高自己产品的竞争力,增强用户粘性。这样,我认为最初的开拓者也不一定是最终的赢家。

    2. 其次,一些 APP 存在市场垄断,如果我们不能开发出自己的功能类似的产品,那么就会失去一个核心竞争力,甚至任由他人摆布。例如最近火爆的 ChatGPT,国内已经有许多产品争先模仿与跟进,也许我们的产品不如市场开拓者优秀,但是我们不能没有这类产品,我们必须跟随时代发展的潮流。

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

  1. 首先,进入游戏公司进行实习。对游戏行业进行必要的了解,例如工作流程、团队合作、必要的技能等等。

  2. 其次,实习转正或者找别的公司入职。在这个过程中赚钱和提升自己的技能。

  3. 最后,建立自己的工作室。能够与自己的团队开发独立游戏。

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

  1. 我对软件工程实践的理解是,它研究的是一个软件项目的构建、团队、和维护。通过软件工程实践,人们可以学习并更好地创造出高质量、维护性强、服务于社会的软件。

  2. 我对这门课程的期望是,我可以更好地学习 Unity 游戏引擎。我还希望能够学习更多的关于游戏程序开发的方法,学习一些计算机图形学方面的知识。

  3. 对于老师,我希望他/她能够运用生动的例子与比喻来讲解知识,讲课嗓音洪亮,课间和课后都能给学生提供“干货”;对于助教,我希望他/她可以对于各个学生的每次的作业,做出一些批注,方便学生改正和吸收知识点。

思维导图和学习路线

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

109

社区成员

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

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