软件工程实践寒假作业

222100409任思泽 2024-02-17 00:04:48

作业基本信息

这个作业属于哪个课程<福州大学-202302软件工程实践>
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标回首过去、立足当下、展望未来、思维导图和学习路线
其他参考文献《构建之法》、菜鸟教程

目录

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

1. 准备工作

1.1 学习Markdown语法

Markdown是一种轻量级标记语言,与传统的富文本编辑器相比,Markdown更加简洁和直观。我通过附件链接学习了Markdown语法,并撰写博客内容。

1.2 创建GitCode仓库

仓库地址

在这里插入图片描述


在这里插入图片描述

2. 回首过去

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

我选择软件工程专业有几个重要的原因。

首先,从小时候开始,我就热衷于折腾能接触到的电子产品,也喜欢给游戏打各种mod和补丁,那时就觉得能使用电脑开发和设计游戏的程序员很酷,希望自己以后也能有机会尝试。

其次,我对软件工程专业的选择还源于它能给我带来较大的成就感。通过编程,我可以创造出功能丰富的应用程序和网站,将创意和想法变为现实。

此外,我受到了这个领域的就业前景和发展潜力的吸引。随着数字化转型的加速和对技术的不断需求,对软件工程师的需求愈来愈大,薪资待遇也相对较高。正如企业家雷军所说:“站在风口上,猪都能飞起来”。我相信选择软件工程专业将为我提供广阔的就业机会和职业发展空间。

最后,我还受到了多方的建议。高考结束后父母亲戚帮我分析和斟酌了许多专业,又连麦了网红张雪峰老师,结合自己相对普通的出身和比较宅的性格,他们也都建议我选择软件工程这一专业。

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

当初选择软件工程专业时,我对它抱有很多期待和想象。我期待自己能够深入学习并掌握软件开发的核心原理和方法,参与创新和前沿技术的研究和应用,具备开发大型应用软件和游戏的能力,做一些自己想做的事,毕业后成为一名出色的软件工程师。我也想象过之后在该专业的学习过程中会遇到各种痛苦和挑战,后来果然如此,debug就是一个常见但也具有挑战性的环节。当遇到问题时,debug 的过程会带来一些痛苦,但成功解决问题后的喜悦和成就感也是难以言喻的,通过不断地解决遇到的问题,我的逻辑思维和解决问题的能力也得到了提升。

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

被软件工程专业录取后,我希望自己能全身心地投入学习,并取得优秀的成绩。为了准备这个专业的学习,我在b站上自学了翁凯的C语言教程,并在网友的推荐下,开始阅读《深入理解计算机系统(CSAPP)》这本书并结合相关lab进行更深的巩固,以此来快速入门和理解整个计算机系统。

因为我有想从事科研的想法,因此给自己定下了读研的目标。在得知学校有保研名额后,我立下了拿到保研名额、多参与学科竞赛和参加学校实验室的FLAG。

3. 立足当下

个人信息
学号222100409

在这里插入图片描述

姓名任思泽
昵称rsz9
出生年月2004.05.05
爱好折腾电子产品、打游戏、敲代码
专业水平
编程语言C/C++,Java,C#,HTML,CSS、JavaScript,PHP
技术框架Yii2.0
开发软件Visual Studio Code,Visual Studio,Dev C++,IntelliJ IDEA
累计代码量40K
成果与获奖经历
2021-2022学年2021-2022学年第一学期一等奖学金、2021-2022学年第二学期一等奖学金
2022-2023学年2022-2023学年第一学期一等奖学金、2022-2023学年第二学期一等奖学金、SRTP科研训练项目一项
2023-2024学年世界大学生超级计算机竞赛(ASC24)二等奖、全国大学生数学建模竞赛省三等奖、全国大学生数学竞赛省三等奖
项目经历
学生信息管理系统(C语言)通过使用C语言,设计教师端和学生端,实现登录管理、对学生信息进行增删查改等功能,注重身份证验证和班级参数设定等检验。
消防救援系统(C++)利用C++和QT设计一个具有图形用户界面的应急救援力量调度程序,支持用户设定地图的大小和用户设定各项参数,即各个地点的个数、位置、各救援点的车辆数、各疏散点的人数等,所有车辆可同时实施救援。该程序以动画显示车辆调度方案,并统计出疏散完所有群众所用的时间。
DIY计算器(Java)使用Java GUI编程写一个计算器,具有较为美观的界面设计,实现了进行四则运算、清除、检错等功能。
炮打飞机游戏(C#)通过Winform进行页面设计,实现了飞机的飞行、炮弹的控制和碰撞效果的模拟,并加入了关卡的设计和通关的判定。
个人博客系统(Yii2.0)基于Yii2.0框架的Advanced模板进行个人博客的编写,在该模板的基础上,后端对文章管理等功能进行优化,优化为更符合用户使用的界面,同时添加了文章分类、附件管理、用户权限管理等功能,可进行增删改查等操作,整体上使用MVC模式对前后端功能进行数据交互以及管理。

4. 展望未来

4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下思考。

Q1:代码量与个人的编码能力有直接关系吗?

在我看来,编写更多的代码通常能够提升一个人的编码能力。通过多次解决类似问题,我们可以快速掌握解决方法,提高工作效率。然而,我们也不能一直局限于相似的问题领域。一旦我们对某个方面足够熟练,就应该尝试主动解决其他类型的问题。练习的过程需要逐步深入,编写更多代码只是提升编码能力的一个方面,不断学习和拓宽视野同样重要,这样我们才能在编码领域不断进步。

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

我认为可以采取以下措施。首先,持续学习和自我提升是至关重要的。通过阅读技术书籍、参加培训课程和参与在线教育平台,增加自己的知识储备。其次,积极参与开发社区和技术圈子,参加技术会议、研讨会和社区活动,与同行交流和分享经验,了解最新的技术动态和方法工具。此外,要勇于实践,将学到的知识应用于实际项目中,尝试使用新的编程语言、框架或工具,参与新领域的项目,通过实践来巩固和提升自己的技能。最后,制定职业发展规划,明确长期目标和短期目标,定期评估自己的技能和知识,寻找提升的机会,并不断调整和完善职业规划。

Q3:低层次的问题能依赖工具解决么?

工具的高效性、准确性和时间节省确实是它们的优势,可以帮助工程师更好地完成工作和项目。工具的存在旨在提高生产效率和项目完成度,这是不可否认的。现如今,AI工具的智能化发展让它们不仅局限于解决低层次问题,甚至能够生成代码。这种方便和快捷的工具不仅提高了开发效率,也推动了行业的革新。对于经验丰富的工程师来说,他们可以利用工具来提升效率、减少错误并将时间用在更有意义的事情上。

然而,对于初学者和学生来说,低层次问题的重要性也不容忽视。拿我个人的经历来说,当我刚开始学习编程时,常常在一些基础问题上犯错,比如数组的创建、循环的编写等等。一开始我使用的是纯文本编辑器,需要自己手动编写所有代码。但后来,我开始使用像VS Code这样的集成开发环境,配合插件,我发现这些工具的功能确实非常强大。它们不仅提高了效率,还帮助我避免了许多小错误。然而,我也开始担心,这样是否会影响我今后理解底层的原理和机制?这种理解可能需要对底层的算法、数据结构、编程语言特性等有着深入的知识和经验,想要建造房屋,应当先打好地基,这种理解能够帮助我们在专业领域走得更远。在这种情况下,依赖工具可能会限制你对底层问题的理解,并且可能无法提供足够的灵活性和控制力。

我们应该适当利用工具的便利性,但也要重视细节和基础知识的掌握,以保持竞争力和适应行业的变化。

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

我本人对于一名“好”的程序员的理解,首先程序员应具备扎实的专业知识和编码能力,能够灵活运用知识解决问题,编写高效、可读性强的代码,并符合最佳实践。其次,程序员应具备良好的逻辑思维能力和独立解决问题的能力。能够精准理解需求,设计合理的解决方案,并有效地排查和修复错误。此外,程序员应具备较强的团队合作和沟通能力,能够与团队成员有效沟通和协作,理解自己在团队中的职责范围,并为整个团队目标贡献力量。最后,程序员应坚持持续学习和适应新技术,保持学习状态,关注行业趋势,不断提升自我,将新技术应用于实际问题,提高工作效率和质量。

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

依我所见,对于担任核心技术角色的工程师而言,专一性更为重要。专注于特定领域能够使他们成为该领域的专家,具备深入理解和解决复杂问题的能力。这使得他们在竞争激烈的岗位上保持核心竞争力,并能够在项目推进过程中深入开展工作,积累更多经验并取得突破。相反,对于担任领导和协调角色的工程师而言,广泛性更重要。了解各个方面的知识和技能可以帮助他们更好地协调团队成员,合理分配工作内容,避免资源浪费,推动项目的顺利进行。广泛性的知识背景也使他们能够更好地与不同领域的人员进行沟通和协作。因此,在职业发展中,需要根据自身所处的工作位置和职业目标来平衡专一性和广泛性的发展。

4.2 未来的职业规划

现阶段,我希望先提升自己的Java语言水平,通过保研进入理想的研究生院校,专注于科研工作,目前比较感兴趣的研究方向是计算机系统,如高性能计算等。在研究生阶段,我将跟随导师学习,积累更多的项目经验和提升编程能力,并在该领域持续深入研究,争取取得一定的成果。待研究生毕业后,我计划根据个人情况决定是否继续攻读博士学位。若自己更适合从事科研,我将考虑攻读博士学位,进一步拓展我的学术能力和知识深度。如果在研究生阶段发现自己更适合进入工业界,我将寻找适合的工作岗位,进入公司上班,并继续发展我的职业生涯。

4.3 对于软件工程实践课程的理解和期望

理解:我认为软件工程实践是一门强调实际操作的科学课程,将使我们完整理解和参与软件项目的各个阶段,培养好软件工程的思维,为未来的工作打下坚实的基础。

期望:我期待通过这门课程的实践学习,能够提升自己的编码水平和逻辑思维能力,最终完成一个功能完善、高质量的软件产品。我也希望在课程学习中,能够遇到专业素质高、经验丰富的老师和助教提供指导和支持,解答我们在学习过程中的疑惑和困惑。

5. 思维导图和学习路线

5.1 思维导图

在这里插入图片描述

5.2 学习规划

在这里插入图片描述

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

109

社区成员

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

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