这个作业属于哪个课程 | 软件工程实践-2023学年-W班 |
---|---|
这个作业要求在哪里 | 软件工程实践寒假作业 |
这个作业的目标 | 学习markdown,git,csdn使用,规划学习路 |
1 准备工作
2 回首过去
2.1 当初你为什么选择软件工程这个专业
选择这门专业其实没有太多的理由,只是因为当时高考成绩不算很高,然后想从事计算机行业,所以在计算机行业中选了一些专业并最终调剂到这里。但实际进行了学习后发现这个专业所需要的技术,确实是比较适合我的,也是我比较感兴趣的,只能说命定如此。
2.2 当初对软件工程这个专业的期待和现象是什么
当初对就业的想象就是在办公室坐着打代码开发一些软件并负责对应的软件维护,现在接触了更多的信息后开始了解软件工程专业出去后就业面也是比较广的,分布式开发,网页开发,移动端开发,确实是十分的多样。但总体坐在电脑前工作的期待还是没有被打破。要说较大的出入则是IT行业的开发团队合作与其他的专业是有些不同的,需要一些适应。
2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么flag吗?
当初希望的是通过课内和b站大学的学习充实自己,然后根据自己在科研还是开发方面更有兴趣而决定将来的方向。
准备的话,其实就是加入学校的一些实验室或开发社团,从而锻炼自己的科研能力或者开发能力
3 立足当下
3.1 个人简历
昵称 | 小何 |
---|---|
头像 | |
兴趣爱好 | 台球,代码,游戏,桌游 |
特长 | 我的特长就是毫无特长 |
获奖经历 | 除课内奖学金无其他获奖经历 |
科研成果 | 无 |
编程语言 | c/c++,java,c#,python,JS,PHP,HTML,CSS,TS,Go |
技术框架 | MyBatis,Spring,Springboot,Yii |
开发软件 | 暂无 |
累计代码量 | 2w+ |
项目经历 | 电商购物平台(java) 个人博客系统(wampserver+yii2.0) |
4 展望未来
4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考。要求在自己的思考中贴上原问题的链接。
我认为接手一个团队的项目后,想要快速的上手这个项目,有以下几个步骤:
- 找到项目的入口并运行项目,熟悉这个项目的每一个功能
- 从文件名或者依赖项判断项目使用的框架(如前端vue框架回带有config.vue文件,Springboot框架需要springframe依赖等),从入口切入查看项目启动时运行的模块并将对应代码归类
- 接着尝试一个个功能的启动,查看调用了什么模块的代码,并对同属一个大模块的模块进行分类
- 对整个项目进行划分后,对每一个模块,基于前团队留下的注释(如果有的话),尝试理解实现方式,并通过更改一些小部位来实验是否理解正确
- 代码理解后加入自己的文档注释,并进行独特版本的改动,测试,运维,每个版本的改动都需要留下对应的开发日志
以上是我对上手项目的粗浅理解,由于经验不足,可能存在较大的问题,还望老师给予指正
我认为无疑是企业实习成长更快的。计算机行业迭代迅速,如果不是在行业内实践,我认为是很难跟上最新进度的。软件开发这门技术,需要不断地反馈和修改,在实验室是比较困难的,如果要在实验室深造的话,我认为先工作几年再去研究生也是不错的选择。有了几年的工作经验后,再去深造神经网络等技术,我认为是很有说法的。
首先声明我的观点,我认为低层次的问题有限度的依赖编译工具是没有任何问题的。关于数组如何定义,怎么设置断点这些低层次问题,在我们学习语言阶段无疑是会不断遇到的。我认为在这个阶段应该使用辅助性能没有那么强的编译器,如同我学习c语言时用的dev-cpp,这很好的锻炼了我的语言基础。但是一旦从事到开发,使用IDEA这些工具是必须的。项目的开发效率,维护效率,这些都是需要尽可能高的,由各种工具解决低层次问题是工作的需要,是无法避免的。所以,可以依赖,但需要有限度
最重要的一点,是因为重复性工作在软件工程师所涉及到的工作中占较为巨大的比重。引用原帖中原话,坚持不懈的工程工作,包括软件的改善、维护和测试等,这一方面占了90%-95%的比例。从软件需求这一方面来说,软件所需要的是各个部分稳定,满足局部需求,在这样的基础上,软件的整体才能尽量保证稳定。而软件的开发工程有着严谨的规划,细致的流程,所看中的是软件工程师完成基础工作,完成重复性工作的能力。所以这一方面来看,同样是重复性工作的能力更为重要。当然,创新性的灵感也是无比重要的,但我认为如果没有大量的重复性工作作为基础,也是无法爆发出这样的灵感和创造力的。
我认为一定是会有这样的工程师的,因为如果我有这个能力的话,我也想这么做,诶嘿。正经来说,我认为工程师没必要一味地追求短时间与极高效,因为这是很难以保证与维持的一件事情。我认为一个交付任务时间十分稳定的工程师,才是行业的抢手。结合我几次团队合作的经验,团队合格的管理制度下,以及配合燃尽图、代码提交、issue等方式,可以大致看出任务的完成度,PM也可以很好的规划团队每个成员的任务,很大程度上可以防止“摸鱼”现象的存在。因此我认为是可以在限定的时间要求下不断打磨,或者故意实现这样的时间“浪费”的。
4.2 职业规划
现阶段秉持保研和就业双下的策略。读好课内以及夏令营的同时,学习java技术栈和go技术栈(网站,运维,测试都可以),积累项目经验。推免资格没拿到的话,就全力争取拿到一个好的入行起点。
4.3 对于软件工程实践课程,你有什么理解和期望?
我希望能在这门课上了解一个软件的开发过程,都有哪些常用的开发方式,平台,如何多端部署,以及如何对一个软件进行长期的维护。同时希望老师可以针对我们专业各方向的岗位需求的技术栈进行一下总结,从而与我收集到的进行比较