这个作业属于哪个课程 | 软件工程实践-2023 学年-W 班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 回顾过去,审视现在,规划将来 |
其他参考文献 | markdown教程,《构建之法》 |
文章目录
准备过程
回首过去
当初为什么选择软件工程这个专业?
首先,当时的我认为软件工程是一个充满未来前景的领域。随着科技的迅速发展和互联网的普及,软件工程师在当今社会中扮演着至关重要的角色。无论是大型企业、小型创业公司还是科研机构,都需要高素质的软件工程师来开发和维护各种应用程序和系统。
其次,软件工程是一个具有广泛应用的领域。无论是移动应用程序、网络安全、人工智能、大数据分析还是物联网,软件工程的知识和技能都能够应用到各个行业和领域。这意味着我将来可以选择从事我感兴趣的领域,并且有机会在不同的行业中寻找就业机会。
当然还有一个重要的原因,我是一个喜欢玩游戏的人,我对游戏开发和设计也非常感兴趣,并且希望写出自己的游戏。选择软件工程这个专业我可以将我的兴趣和专业知识结合起来,追求游戏开发的梦想。
当初对软件工程这个专业的期待和想象是什么?
最早我认为软件工程应该是这样的:
但后来随着对软件工程这个专业接触,我了解到软件工程并非像我最先想象的那样,而是在编写、调试、维护、修改软件的一个专业。因为希望创造出属于自己的软件,我最终还是选择了软件工程。所以我对软件工程最初的期待就是能够写出方便人们使用的软件
当初希望如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?
当初希望能够一直保持着对这个专业的热情,凭借热情带给自己的动力,不断学习新的知识。
至于flag嘛,肯定是立过的,但这都是当时年轻无知立下的flag了,这里就不详细说明了。肯定不会有人追究的吧(小声
立足当下
个人介绍
图片 | ![]() |
---|---|
昵称 | autumn |
兴趣爱好 | 板绘, |
特长 | 架子鼓 |
专业水平
掌握的编程语言 | C,C++,C#,JAVA,PYTHON,HTML,CSS,JS,PHP |
---|---|
开发软件 | VSCode,IDEA,PyCharm |
技术框架 | Yii2.0、SpringBoot |
项目经历 | 学籍管理系统,图书管理系统,宠物萌度评分 |
展望未来
阅读《构建之法》
Q1:对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
关于这个问题不同的人肯定会有不同的答案,学的“专”才能解决单个领域内各种各样的问题,展现属于自己的价值,但学的“广”能在更多的领域拥有发挥的空间,进而能够更好的保证自己能够得到那张“入场券”。那我们应该任何处理学习过程中“专”和“广 ”的问题呢?我认为,在不同的阶段应该要有不同的选择。
在初步接触一个新的领域时,我认为应该要学的专,技术之间应当是融会贯通的,一门技术学的“专”对于学习该领域的其他技术是利大于弊的。随着学习的逐步深入,我认为学习应当向“广”发展,学的“广”才能看到各个技术的不同,明白不同技术的优势区间,同时也能提高自己的竞争力。
同时我还认为,在不同的位置也应该拥有不同的学习思路,在一个团队中,一定存在专业技术强的人,但也需要学的“广”的人在不同的领域之间协调。
Q2:工作时是否应该带着个人、感情驱动的因素?
个人情感驱动的因素在工作中是一个复杂的问题。每个人在工作中都带有一定程度的情感,因为我们是情感化的生物。因此,我认为如何处理和表达这些情感才是这个问题的核心。
就软件工程师而言,专业性和客观性是非常重要的。在这种情况下,个人情感可能会干扰客观判断和决策的过程。因此,我认为软件工程师在工作中应该尽量保持客观和理性,避免过多地受个人情感驱动。
同时,我也认为个人情感能够在一定程度上对软件工程师的工作产生积极影响。例如,对于某个特定项目或产品,个人情感可能激发创造力和热情,帮助我们更加投入和专注于工作。
综上,我认为关键是要找到一个平衡点,应该学会管理和控制个人情感,确保不好的情感不会干扰工作的质量和效率的同时,好的情感能够激发我们的创造力和热情。
Q3:什么样的人/团队适合结对编程呢?
首先,结对编程是一种软件开发实践,其中两个开发者共同工作,共享一个计算机和任务。针对结对编程的特性,我认为拥有以下能力的人/团队更加适合结对编程。
1、开放和合作的态度
2、良好的沟通技巧
3、相似的技术水平
4、互补的技能
5、高度专注和耐心
6、共同目标和价值观
同时,我认为结对编程并不适用于所有人和所有情况。我们不能否认存在一定数量的程序员更加适合独立开发项目,或是部分项目并不适合结对编程。因此,在决定是否采用结对编程时,我们应该评估自身的情况,并根据成员特点和项目需求做出决策。
Q4:团队成员的学习能力不一,要如何平衡?
我认为当团队成员的学习能力存在差异时,平衡的关键是提供支持和创造学习机会,使得每个成员都能够不断成长和提升自己。同时,我认为以下方法能够在一定程度上解决这一问题
1、个性化培训计划
2、先学带动后学
3、资源共享和知识分享
4、小组合作项目
5、给予时间和空间
6、激励和认可
同时,我觉得每个人在不同领域的学习能力应是不同的。在出现学习能力差异较大的情况时,可以尝试将其调整到其他领域,说不定会有更好的效果。
Q5:顾客真的知道他们想要什么吗?
在软件开发中,因为顾客对技术细节和可行性了解有限或是对最终产品的需求不够明确,他们有时可能并不完全知道他们想要的具体解决方案或功能。
这就要求软件开发团队在与顾客进行需求分析和沟通时,发挥积极的角色,帮助顾客更好地理解他们的需求并提供解决方案。以下是几种方法可以解决这个问题:
1、深入的需求分析:与顾客进行详细的需求分析和讨论,充分理解他们的业务需求和目标。通过提出问题、澄清疑虑和探索各种可能性,帮助顾客更好地定义他们的需求。
2、原型和演示:创建原型或模拟版本,与顾客进行演示和用户测试。通过可视化和实际使用的方式,帮助顾客更好地理解他们的需求,并提供反馈和改进意见。
3、迭代开发和敏捷方法:采用敏捷开发方法,通过迭代开发和短周期交付,与顾客保持紧密的合作和反馈循环。这样可以及时调整和优化产品,以更好地满足顾客的需求。
4、用户研究和反馈:进行用户研究,收集用户的反馈和意见。通过直接与最终用户进行交流,了解他们的需求和体验,从而更好地指导产品的开发和改进。
5、积极沟通:与顾客进行积极的沟通,解释技术的可行性和局限性。帮助顾客了解各种选项和决策的后果,以便他们能够做出明智的决策并调整他们的期望。
未来的职业规划是什么?
目前是准备先参与到工作中,进一步了解目前的市场需求和科研方向,学习新技术。在工作逐渐稳定,能做到经济独立后,再评估自身条件决定是否要考研,来提高自己的市场竞争力。
对于软件工程实践课程有什么理解和期望?
对于本次课程,我会将其视为对我个人能力和团队协作能力的一次考验。我希望本次课程,能够锻炼我在团队中的合作和沟通能力,使我能够有效与他人协作解决问题。同时也希望能够通过本次课程积累一定的实际项目开发经验。