软件工程实践寒假作业

软件工程实践寒假作业

这个作业属于哪个课程2023年福大-软件工程实践-W班
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标回首过去,立足当下,展望未来,规划学习路线
其他参考文献CSDN、《构建之法》、稀土掘金、知乎

1. 准备工作

[仓库地址](临渊阁主 / 软工实践寒假作业 · GitCode

在这里插入图片描述

在这里插入图片描述

2. 回首过去

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

1. 兴趣和热情:选择软件工程专业的初衷是出于对计算机科学和技术领域的充满兴趣,对软件开发有着浓厚的热情 。此外,对IT行业感兴趣,尤其是对那些日常使用的软件以及游戏的背后代码组成感到好奇和兴奋 。
2. 职业前景:软件工程的就业前景非常好。随着智能手机等技术的普及,对编程人才的需求很大,程序员职业相当受欢迎。软件工程专业不仅专业性强,且不易被替代,同时工资待遇和职业上升空间较大,可以感受到投入与回报之间的正比关系 。
3. 技术和创造力的追求:对于技术的学习和掌握有着强烈的愿望,希望能够通过大学阶段的学习,掌握强大的技术,以便在未来能够设计和制作自己的软件产品 。
4. 技术环境和社群:软件工程领域的活力十足,技术更新迅速,与其他专家一道学习新技术是一种难以抗拒的吸引力 。
5. 个人成长和目标:通过学习软件工程的知识和技能,可以参与到实际的项目中,培养解决问题的能力。个人设定了目标,希望在该领域找到职业发展的机会 。

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

对软件工程这个专业的期待和想象主要包括以下几点:

1. 理解软件运行机制:对软件的运行原理感到好奇,包括自动化操作、人机交互和复杂显示等,希望通过专业学习能够编写实现这些功能的软件。
2. 问题解决能力:期待软件工程专业能培养解决实际问题的能力,通过分析和理解问题,用软件开发提供解决方案,为社会、企业或个人创造价值。
3. 学习实用技术:在专业学习中,希望能够掌握如何开发实用软件,并对计算机科学与技术领域产生浓厚兴趣,尤其是软件开发,包括学习各种编程语言和工具。
4. 对编程的基本认识:在大学之前缺乏编程经历,期待软件工程会教授如何编程,设计和制作网站、软件等,预料学习过程中会很辛苦但也能掌握高级技术。
5. 编程语言选择:对于大一新生常问的问题“要学习什么语言”,已经认识到编程语言的选择不是最重要的,重要的是学习编程的思想,通常建议从C和C++学起,以掌握编程的核心语法思路。

2.3 当初希望自己是如何投入这个专业的学习的?

首先熟练掌握一到两门编程语言,然后逐步深入学习算法与数据结构,并且活学活用,争取自主完成某种编程语言的实战项目。当具备了一定的编程基础后,再接触各种技术栈,拓宽眼界。

3. 立足当下

个人简介
昵称临渊阁主
电话18250702465
gitee临渊阁主 (linyuan-pavilion-master) - Gitee.com
兴趣爱好台球,手指滑板, 电竞
专业水平初级程序员
掌握的编程语言C++、Java、C#、HTML、CSS、JavaScript
技术框架Yii2.0、SpringBoot
开发软件IntelliJ IDEA , VSCode , Visual Studio, DevEco Studio
累计编写代码量1w+行
项目经历电商购物系统, 博客系统

4. 展望未来

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

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

程序员是否需要为了满足少数人的需求去开发软件或添加特定功能,这是一个需要综合考虑多个因素的问题。首先,根据《构建之法》中提到的原则,成功的软件应该是解决了用户迫切需求的软件,但需求的多样性意味着不同用户群体可能有不同的需求。因此,如果少数用户的特殊需求确实能够反映出一个较大用户群体的潜在需求,或者这些需求能够以某种方式提升软件的整体价值或者用户满意度,那么开发这样的功能是有其必要性的。

然而,程序员在决定是否为软件添加特定功能时,必须考虑开发成本和资源。如果开发某个功能的成本远远超过了这个功能可能带来的收益,或者这个功能的开发会极大地影响开发人员的工作负荷,那么这可能不是一个明智的决策。如参考资料中所讨论的,程序员和项目经理(PM)需要协同工作,对需求方案进行审查,以确保提出的解决方案既能满足需求,又能从技术角度保持可行性。

在实际情况中,程序员还需具备耐心和软实力,如同故事中提到的质量监督一样,有时候对于问题的耐心分析和解决才是提高效率和产品质量的关键。这也适用于软件开发,对用户需求的深入理解和精细化处理能够提高产品的质量和市场的响应度。

最后,社区和共享的精神对于软件开发也十分重要,正如某些程序员通过参与社区并乐于分享知识,帮助了他人一样,程序员在考虑为软件添加功能时也应该考虑到这种社区精神,是否能通过满足少数人的需求来促进知识的分享和技术的发展。

综上所述,程序员为了少数人的需求开发软件或添加功能是有必要的,但需要根据实际情况考虑成本效益、资源分配以及可能的长远影响。同时,应采取耐心和细致的态度,并考虑到社区和共享文化的价值。

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

区分好的程序员和不好的程序员需要从多个维度进行考量。首先,一个好的程序员通常具备较强的问题解决能力,他们能够有效地定位和解决编程中遇到的问题,例如在Web开发中能够从请求到服务端处理再到日志记录的整个链路中快速定位问题在。此外,他们往往拥有持续学习和自我提升的意识,能够通过不断学习最新的技术来提高自己的能力。

另一个重要的标准是态度。优秀的程序员和一般程序员在对待问题和挑战时的态度上存在显著差异。优秀的程序员面对问题时更加积极主动,愿意深入挖掘问题的根源,而不仅仅是表面的修复。他们也更倾向于分享知识与经验,与他人协作,共同推动项目的成功。

基于上述信息,可以总结出一些评估程序员好坏的具体指标:

1. 问题解决能力:好的程序员能快速准确地定位并解决问题。
2. 学习能力:好的程序员拥有强烈的学习欲望和能力,能够不断跟进新技术。
3. 态度和主动性:优秀的程序员对待问题和任务的态度更加积极,并主动寻求解决方案。
4. 经验:通过不断实践和积累经验,优秀的程序员能够识别并避免常见的错误。
5. 合作与分享:优秀的程序员愿意与他人分享知识,通过团队合作共同实现目标。

而对于个人来说,最好的提升方法是不断提高自己的水平,当能够识别出他人工作中的不足之处,很可能就能够判断出自己与他人的水平差异。

最后,对于程序员自身而言,应当始终保持谦逊,意识到总有更多的知识和技能需要学习,这样才能不断进步成为一个更好的程序员。

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

要想成为一个永不落伍的软件工程师,需要将终身学习作为职业发展的核心。具体来说,首先要培养对新技术的好奇心和热情,保持对新知识的渴望,这是驱动自我发展的内在动力。同时,学习不应仅限于理论,实践也同等重要,需不断尝试和实践新工具和技术。

其次,跟上技术发展趋势是关键,这需要通过阅读业界的新闻和文章,参与技术社区和论坛,以及参加相关的技术会议等方式来实现。数字世界的高速发展要求软件工程师不仅要精通自己的技术领域,还应对其他领域有所了解,这有助于更全面地理解问题和客户需求。

此外,基础知识的牢固掌握是非常重要的,这包括但不限于数据结构、数据库、编译原理、操作系统、算法和计算机网络等方面。深入理解这些基础知识的原理和本质,能够在技术面试中表现出技术的深度和对问题的理解能力。

综上所述,作为一个永不落伍的开发者,应该做到以下几点:

1. 维持对新技术的持续兴趣和热情。
2. 通过多种渠道跟踪技术发展和行业动态。
3. 不断实践和尝试新技术,通过实际操作提升技能。
4. 加强对基础知识的理解,确保技术深度。
5. 理解多个技术领域的知识,以便更好地满足问题和客户需求。

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

在面对市场上众多复杂多样的APP时,您可以通过以下几个策略来提升您的APP的竞争力:

1. 寻找差异化:您的APP应该具备别的产品无法复制或不具备的功能和特点。这些差异化的特征将帮助您的产品满足用户的特定需求,从而脱颖而出。
2. 深入了解目标用户群体:了解您的主要用户群体的特定需求,比如大学生用户,他们可能有不同于一般人群的特殊需求。通过满足这些特殊需求,您的APP可以在该细分市场中获得成功。
3. 建立价值主张:多数公司试图做到面面俱到,但那些精益和积极的公司会为目标用户建立明确的价值主张。您需要寻找您的APP可以提供的独特好处,而不仅仅是更多的功能或更低的价格。
4. 产品同质化问题:如果您的产品功能高度相似,您需要考虑是否有足够的市场需求来支撑另一个类似的产品。如果市场已经饱和,您应该考虑寻找新的创新点或者寻找新的市场细分。
5. 了解竞争对手:通过分析竞争对手的在线状态和他们的产品,您可以了解如何区分您的客户,并为他们提供独特的好处。
6. 关注区域优势:在电商、外卖、教育等领域,如果没有价格或服务上的优势,可以考虑利用地方优势,集中服务于特定地区的特殊需求。

综上所述,即便市场上存在功能相似的APP,仍然有开发新APP的必要,但前提是您的产品能够在市场中找到独特的定位,并为目标用户提供真正的价值。通过差异化、专注特定用户群体、建立清晰的价值主张以及深入了解竞争对手,您的APP可以在竞争激烈的市场中脱颖而出。

Q5: 软件的缺陷是否应该在规格书中说明?

软件的缺陷通常不会在规格书中明确说明,因为规格书旨在定义软件应有的功能和性能要求,而不是列举可能的缺陷或错误。规格书应当明确软件所需满足的功能和性能标准,而软件缺陷则是在软件开发和测试过程中发现并记录的,通常是在测试阶段通过缺陷报告来进行管理和修正的。软件缺陷是指存在于软件(程序、数据、文档)中的那些不符合用户需求的问题,如软件未达到产品说明书标明的功能,软件难以理解、不易操作、运行缓慢,或者是测试人员和用户认为不好的部分。

缺陷报告则是软件测试人员在发现问题后制作的重要文档,它帮助开发人员快速定位并修复Bug,同时便于测试人员进行缺陷的统计、分析和跟踪管理。因此,规格书和缺陷报告服务于软件开发的不同阶段,前者定义期望的软件行为,而后者记录实际的偏差和待解决的问题。

在软件开发实践中,确保软件尽可能无缺陷是非常重要的,因为带有缺陷的软件如果提交给客户,可能会给公司带来不可估量的损失 。测试是为了发现并解决这些问题,以保障客户满意度的关键过程。

综上所述,软件缺陷应该通过测试和缺陷报告来识别和处理,而不是在规格书中预先列出。规格书的目的是描述软件应有的状态,而不是它的不足之处。

4.2 未来的职业规划

目前是准备参加考研,拟定的专业是有关人工智能的,希望以后能更多接触大模型,或者智能家居,智能汽车之类的前沿科技。如果在人工智能方向找不到符合预期的工作,我会选择加入华为鸿蒙生态开发,或者java后端之类的开发岗。

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

对于这次软件工程实践课,我将其视为一次珍贵的模拟企业实际开发的团队编程机会,我希望能在老师定期布置的任务实践中学习提升自己的编码能力,还有团队协作能力。

5. 思维导图和学习路线

5.1 个人对于SpringBoot框架学习的思维导图

在这里插入图片描述

5.2 学习路线

在这里插入图片描述

  • 27
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值