687
社区成员
这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 回首过去,立足当下,展望未来,规划学习路线 |
其他参考文献 | CSDN、《构建之法》、菜鸟教程 |
选择软件工程这个专业可能也是在志愿填报时对于兴趣和现实因素的折中选择,当时对于脑科学,人工智能,脑机研究的方向的学科比较感兴趣,但是一是由于分数原因,二是对于未来的发展还未选明方向(考研or就业),所以选择了软件工程这一学科作为了解计算机方面知识的一个敲门砖。
同时软件工程的就业市场广阔,薪资待遇高,更容易在本科毕业后快速变现,这几点可以让自身在大学期间对于未来的规划有更大余地,所以选择了软件工程这个专业。┓( ´∀` )┏
在大学之前对于电脑可以说是一窍不通,对于软件工程的第一印象也是,
哇,要学会修电脑了,,觉得软件工程也是一门很高深的学科,可以用有限的代码创造出无限的可能。当初对于软件工程的期待也是在大学的学习中能够自己开发一款好用、能够给大家带来便利的软件,同时也想象着像许多学长学姐那样,在毕业后有着高额的薪资,最终能够实现财富自由。
最初也是希望自己能够像高中一样投入到课内学习中,学习和掌握自己不会的知识,同时在课外时间自学一些软件框架与人工智能方面的知识,所以在高考结束的假期就去买了Python语言的学习书籍阅读(
读的时候也是有些囫囵吞枣),大一的时候开始接触到人工智能,感觉很有意思,所以也是在在课外时间学习pytorch框架和神经网络相关知识;在这过程中也是立下了很多flag,像学习spring框架,参加比赛,做项目,加入工作室······当然其中还有很多没有实现,还是要继续加油下去ヾ(◍°∇°◍)ノ゙
| ||
---|---|---|
C语言、C++、Java、C#、HTML、CSS、JavaScript、PHP、XML、python | ||
Yii2.0、pytorch | ||
Dev-C++、IntelliJ IDEA、LINGO、Visual Studio Code、Visual Studio、Android Studio | ||
2w+行 | ||
| ||
Web实践课作业,通过yii框架实现设计一个个人博客系统,包含了文章管理,用户管理,与评论管理;实现了权限管理;采用mySQL管理数据,实现了增删改查,并对数据进行统计可视化。 | ||
这是一个完善的健康饮食运动应用,具有推荐食谱,识别卡路里,管理人员等功能 个人负责了应用卡路里智能识别与个性推荐部分的开发,采用yolo算法对已标定数据集进行训练,采用DJL以java代码调用模型;同时通过计算用户浏览数据、采用Als算法对用户进行个性化推荐。 | ||
数据库实践课作业,实现对学生信息的基本管理以及统计,同时可视化展现了历年毕业生去向的统计结果。 |
Q1: 程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?
A:在我看来,程序员是有必要为满足小部分人的需求去做软件的,这里引用原文中的一句话,“成功的软件总是解决了我们生活中的迫切需求”。不可否认的是小部分人的需求也是具有实现价值的,就以我自身的例子来说,在完成Web实践作业时,由于wamp版本兼容性问题,无法正常的使用composer为yii框架下载依赖包,但是重新下载配置wamp又十分繁琐,但是通过查找资料,找到了一个网站专门为少数无法使用composer的人打包依赖包,这就让我省下来很多时间专心于代码的编写,同理对于软件开发也是,为满足小部分人的需求去做软件是有必要也是有意义的。
但是为满足小部分人的需求为软件增加功能,我认为是要依照情况而定的,我们应该对开发软件的受众等各种情况综合而看是否要加入新功能,同时应该对各种新的需求进行精化,判断是否会影响已有需求的实现,从而决定是否为软件加入新功能
A:对于一个程序员,评价其好坏是有多方面因素的,在我看来,其中比较重要的几点可能分别是,技术水平和业务的理解能力
先就技术水平来说,对于一个程序员好坏的评判最简单暴力的方法就是看他的技术水平了,程序员的技术水平是吃程序员这碗饭的敲门砖,而在当下计算机内卷的环境下,技术水平就更为重要了,各种企业也是凭借技术水平的高低对求职人员进行筛选,可以说,技术水平决定了程序员开始工作时的高度。
其次是业务理解能力,如果说技术水平是判断程序员好坏的第一印象,那么业务理解能力就是判断程序员好坏的最终命题,多年的工作下,可能已经将业务水平拼得差不多了,这时就开始拼对业务的理解能力了,如果空有一身本事,在企业的评价中,也只能是赛博搬砖人,难以迈过35岁的坎。同时,在面试时对于项目经验的叙述,也是为了提前判断程序员的业务理解能力,从而判断其好坏。
Q3: 顾客真的知道他们想要什么吗?
A:我认为,顾客并不完全知道自己想要什么,或者说具体知道自己想要一个具有什么样功能的软件,只能说,顾客仅有对自己所需软件的大致方向和一些基本的需求,需要产品经理和软件开发人员与顾客一遍又一遍的洽谈、协商,通过原型图、PPT等方式为客户一步步呈现出最终的软件,同时,在我看来需求的提出更需要产品经理的引导,大部分顾客由于不了解软件开发,没有办法通过专业的术语单次明白的阐述自己的所有需求。而以我自身实习产品经理助手的经历来说,对于顾客需求的获取不是一蹴而就的,我们通过原型图为顾客展现目前对于需求的实现,而顾客则在此基础上提出新的需求,可以说一个软件的产生更是软件开发人员与顾客磨合的结晶。
Q4: 我们如何可以和市面上那些繁复多样的APP进行竞争?如果功能相似是不是就没有开发的必要?
A:我认为与市面上那些繁复多样的APP进行竞争需要从产品定位、产品质量与用户体验两方面入手,正所谓选择大于努力,如果能抓住市场需要,将产品定位在目前市场需求的痛点上,无疑能够比其他众多APP更容易脱颖而出,获得更多的用户流量,同时,产品定位益精不宜多,给用户完美的解决方案强于诸多的解决选择,而产品质量与用户体验是决定用户留存度的关键,一个出水大于进水的池子是蓄不起水的,只有在保留用户的前提下才能更好的收获用户,使得自己的产品在竞争中独占一头。
同时功能相似不意味着没有开发的必要,功能只是评判一个APP好坏的一小部分,如上所说产品定位、产品质量与用户体验在评判中更为重要,举一个例子,功能相似只意味着有人对于用户需求提出来一种解决方案,但我们是否可以给用户一个更好的答卷就成为了一个新的问题。在功能相似的基础上,开发中仍有着很多可以突破、创新的点,并不是说就没了开发的必要
A:我认为软件的缺陷必须在规格书中说明,因为是否说明这一问题已经涉及到一个企业的信誉问题,一个没有良好信誉的企业是在行业里走不长久的,为了掩盖软件的缺陷而造成损失客户、与合作伙伴的行为实在是不值得。同时作为软件的开发者,我们有义务提醒客户软件的缺陷,防止客户因为使用软件而造成损失伤害,客户也有权利知道该软件的所有信息,无论好坏。
对于未来,目前还是计划考上研究生,最好能够走脑机研究,人工智能的方向(
又一个flag),希望能在研究生的学习中额外增加项目经验,参加比赛来丰富一下简历。如果参加工作的话,对于工作方向的选择上可能会选择java后端相关的职位,还是希望能够进入大厂去寻求更多的机会。也不确定未来自己会不会转变心意去考公务员来寻求一个铁饭碗,当然这也是另外一种选择了。
对于这门课程,我认为是一门为我们展现软件开发全过程以及各阶段细节的课程,可能会在开发过程中尝试不同的工作职责来使我们为未来的职业方向提前进行规划。
可能比较期望能够在这门实践课中完成之前那个开发一个好用APP的flag,能够开发出一个像样的项目,而不是像之前诸如图书管理系统的小作业,如果可以的话也想在开发中加入类似人工智能相关的功能,希望能够通过这门课程初步掌握spring框架以及java开发所需要的其他工具的使用。
赞优秀作业
每个问题都回答的很详尽,思维导图和计划也做得很好,赞