Assignment Course | 2302软件工程 |
---|---|
Assignment Requires | 软件工程实践寒假作业 |
Assignment Goals | Past,Present,Future,Learning Path |
References | 《构建之法》、Git学习-菜鸟教程、Markdown教程、CSDN |
1. Preparations
本人的博客使用英语夹杂中文的理由如下:
- 防止抄袭
- 从细微之处积累学习新知识(虽然可能只是积累一小部分单词)
- 锻炼中英文互相转换的能力
PS:绝对不是因为想哗众取宠捏
仓库目录初始化
仓库推送至gitcode
成功部署至gitcode
2. Past
2.1 Reasons Why I Choose to Major in Software Engineering,Initially?
一切源于报考时,精准的分析——随大流(宇宙机yyds,可以赚很多money~)
然而俺的分数,刚好差2分少于计算机专业的的录取分数,于是滑到软工这样
(咱想这俩都是学计算机知识的,报一个软工保底可不是嘛)。
当初报考时,对这个专业,不能说是非常了解,只能说是毫无认知(实话实说)。
那为啥还选呢?直白点说,all for money~
2.2 My Expectations and Imaginations for the Software Engineering Major,Initially?
还没录取之前,印象里的软件工程应该是这样:
团队协作<–>高手云集<–>友好交流<–>互利共赢
当初就觉得,这是一个与其他工科所不同的专业,更多在于个人任务完成与团队合作交流(相当于是脑力交锋?)
同时这也是一个能够不断进步的专业,毕竟是与时俱进的专业嘛~
在想象中,经历了枯燥的搬砖过程后,完成任务的快乐与收获应该也很难有东西可以比拟!
2.3 How I Devote to this Major in the first place, Any Preparations and Any FLAGS?
来之前,没有任何准备(
没有超前学习,也没有提前学习,只是在听课上学而已)
唯一的一个小flag也只是平平安安地毕业捏=-=
既来之,则安之。来到了软件工程专业,那我可得好好学习~
初来乍到,没有特别宏大的想法,只想着先把学校所教授的课程学好,考好。
仅此而已,毕竟是个实践性非常强的专业,更多的内容应该是在实操上
然而我只是停留在课堂知识而已捏(实话实说)
3. Present
My CV
个人简介 | |
---|---|
大头贴 | |
昵称 | selfsuki |
性别 | 男 |
兴趣爱好 | music |
联系方式 | 222100313@fzu.edu.cn/519983977@qq.com |
当前值 | ||
---|---|---|
成果和获奖经历 | 多次获得福州大学优秀学生综合奖学金二、三等奖 2023年5月获院三好学生 | |
专业水平 | 编程语言 | C/C++、C# 、Java、ArkTS、PHP |
技术框架 | Bootstrap、Yii2.0、ArkUI | |
开发软件 | DevEco Studio、IntelliJ IDEA 、Visual Studio Code、Visual Studio2019 | |
累计代码量 | 1w↑↓ | |
项目经历 | ||
基于yii2.0框架的个人博客 | 该项目利用yii2的框架搭建了一个功能丰富,排版简洁大方的个人文章博客。本人负责全栈开发,基于yii2.0框架进行了前后端版面规范与补充工作,后端添加较为丰富Dashboard界面,显示热门标签与网站数据,引入富文本可视化编辑器,包含附件管理功能以及前后端RBAB权限过滤等功能,最终在实践作业中获得良好的成绩。 | |
基于Java GUI的学生成绩管理系统 | 学生成绩管理系统包含登录登出,包括了课程管理,学生管理,教师管理,成绩管理等界面与功能。本人在该项目中负责编写sql代码,编写frame包,测试数据库建表,和项目主要功能测试,并攥写对应部分的报告,实践项目作业成绩优秀。 |
4. Future
4.1 Answering 5 Questions From Community of Build to Win
A1: 我认为有以下几点
1.是否有着过硬的软件开发本领:
诸如:逻辑思维能力,理解能力,学习能力,沟通能力,底层知识等基本功;
优秀的程序员通常具有非常缜密的思维,会从大的框架上考虑软件实现的各种可拓展性,使得软件开发出来后更好维护;
同时具有非常清晰的思维,编写代码的过程中清楚地知道自己当前或者今后几步在做什么等等;
具有谨慎的思维,不会盲目下手,而是在各个节点不断澄清需求与任务;
再就是良好的编程习惯,自己的代码赏心悦目,不至于谁来都看不懂
2.是否对软件开发工程有着清晰的、全面的认识:
简单来说,就是有无丰富的软件开发工程经验;
各个环节都要熟络,才不会拖泥带水,从而提高效率。
3.是否能有效和团队沟通交流:
软件开发工程不是一个人的任务,而是整个团队的任务,和团队的沟通至关重要;
4.不可单纯以完成项目的速度快慢作比较:
开发软件时,有的程序员以实现功能为主,有的程序员以增强可维护性为主
二者不好比较,比较的标准应该锁定在对任务的需求分析上。
以上是个人拙见,敬请指教。
软件工程师能力自我评价表
Q2.|3.1 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?
A2:这个问题也不能单纯从一个层面来看。
对于一名求职者,“专”已然成为了他获得工作的“救命稻草”
连工作都找不到的工程师,没有一门“专”,再怎么“广”,也不见得有人要,是吧?
而对于有一定经验,在工程团队中扮演重要角色的人物,显然“专”已经不能满足他所处的位置了。此时的工程师,不仅要“专”,而且还要“广”来拓宽自己解决问题的思路,学习更广泛的技能,才能解决更多问题,有能耐的那可是又“专”又“广”了。
因此我认为,二者都不可抛弃。想要成为优秀的工程师,就要在专精两三门技术的基础上,多多广泛地学习;
Q3.|1.1 程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?
A3:首先我们需要思考一个问题。软件为何产生?
是因为需求吗?是,但不全是。
在我看来,应该要根据软件工程开发软件的不同用途来分析这个问题。就像《构建之法》
里讲述的,软件有不同的用途。用于学习科研的、用于展示成果的、用于提供服务工具的、用于在市场上赢得用户的,要视用途而分析该问题。
具体而言,还与投入产出比有关呢。
(试想谁会一直把钱和精力灌注在一个只进不出的吞金黑洞里呢?)
显而易见的道理~
因此这个问题我认为,要分析具体的用途与投入产出比,看情况而定。
A4:
“无论内心中多么真实的话语,脱口后就会有所粉饰,成为谎言。”——no name
你若问我这句话是什么意思?
Oi!甲方你是不是在开玩笑,你心里想的不好好沟通交流,我怎么知道?
(因此,顾客想要的东西,即使是知道的,但是作用于我们——“乙方”,也便成了“不知道”了。)
言归正传,顾客即使知道真正想要的东西,通常在第二天,甚至后一秒就变化了,为了解决这样的问题,需求分析方面就必须不断更进。我认为制作一个最小化功能版本的简化版,在顾客使用的过程中不断及时反馈改进,便能很好地解决问题。
这时,以增强可维护性、可扩展性为主的工程师就派上用场啦,优美的架构、可扩展性强的软件设计架构,能很好地根据顾客的反馈来拓展新增的功能。
(甲方你不知道你想要什么?我来让你知道知道(紧握拳头))
A5:结对双方差距较大时,也不无意义。
正如任何人都是从菜鸟经过时间和经历的打磨才能成为大佬一样,没有人是一开始就会编程的,没有人是一开始就会团队合作的。因此这时候结对编程的作用就凸显出来了不是吗。
即使双方差距大,但总有能够互补的点,可能你的逻辑思维比我强,但我的实践效率比你高,那么二者就可以很好的互补,既能提高双方的信心,又能有很好的投入产出比,在一个团队里,又能够有效地学习交流,分享知识。真是赢赢赢,赢麻了。
4.2 My Career Planning for Future?
在领略了两年的软件工程专业教学以后,我觉得我还需要继续在研究生院学习更多知识才能确定好研究方向。理想化的状况,应该以后就研究偏向计算机科学,人工智能,生命科学同计算机科学相结合(
机械飞升)(脑机接口)方面的工作了。如果没能上岸,那就认命打工叭~
4.3 My Expectations for this Course?
软件工程实践,顾名思义,是一门实践性非常强的课程,学生们要在理论的基础上,通过不断的实践和试错,才能最终获得成果,才能体会到何为软件,何为工程。
希望老师和助教能够分享软件工程中,关于前沿技术(最前线)、优秀架构和团队交流方面的知识。
希望助教们能够帮助同学们解疑答惑,多谢多谢~~
5. My Learning Path
5.1 Mind Map
人工智能系统学习
5.2 Learning Timeline
实际安排暂时如上所示,具体安排视情况而定
请多多批评指教,感谢!
Thu Feb 15 2024 00:44:26 GMT+0800.