blog0

这个作业属于哪个课程2302软件工程
这个作业要求在哪里软件工程实践寒假作业
这个作业的目标学习markdown语法、总结过去、制定学习计划、规划未来、思考《构建之法》、学习GitCode
其他参考文献《构建之法》、CSDN菜鸟教程GitCode/帮助文档

目录

1. 准备工作

1.1 使用git上传代码文件

1.2 仓库截图

在这里插入图片描述

1.3 仓库地址

meiyuan0369 / 22210129

2. 回首过去

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

填写志愿之前,我并没有很好的电脑基本操作基础,更别说编程基础,活泼好动的我也不喜欢成天在办公室敲键盘的工作。高三那时候很喜欢地理,想高考志愿填报土木工程、城乡规划类的专业。
但是高考分数出来,没有发挥得很好,于是对未来、对目标专业丧失信心和期待。于是目标变成了学校优先,哪个学校好报哪个学校。然后筛选了很多不错的211或者西北地区的985大学。
但后面听好朋友推荐,还是来了福州大学,分数刚好可以报计算机。现在看来多亏我这位好朋友,不然就算我去了其他学校,我也不能分配到很好就业或感兴趣的专业。
在填写福州大学专业志愿的时候,我查看历年计算机相关各专业的录取分数,从高往低填写。也就是这个时候我没有明确的专业目标,因为那个时候我仍然对计算机没有很感兴趣,觉得哪个专业都行,随遇而安。分数越高,说明报的人越多,我就填写在第一志愿,以此类推填满了六个专业,最终上哪个专业就看我高考分数够上哪个了。说实话我已经想不起来我把软件工程填在专业志愿的第几位了。
所以选择福州大学,是我的好朋友指点迷津。选择软件工程,是高考分数使然。虽然机缘巧合的因素很大,但我现在一点不会后悔,反而很庆幸。

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

其实当查询录取信息的时候,我笃定是被福州大学录取,但被什么专业录取,就像开盲盒一样紧张。看到录取的专业是软件工程,我其实心里有咯噔一下,因为我都不记得填报志愿的时候有“软件工程”这个专业了,或者这个专业在志愿中没有填得很靠前,说明至少计算机科学与技术大数据这两个填写在前面的专业我分数不够,对我又是一个打击。
我当初觉得软件工程专业,和计算机科学与技术大数据这两个专业相比,会更无聊一点,更乏味一点。因为平时生活中软件接触的太多了,而计算机科学与技术大数据,在生活中并没有这么常见。所以想象中的软件工程就是成天坐在电脑面前打键盘,熬夜打键盘,最后秃头。
当初对软件工程这个专业研究学习的内容非常陌生,所以对专业连期待都没有。只期待到了大学我能够好好学习,考研究生的时候上个好点的学校,弥补高考的遗憾。

2.3 当初希望自己是如何投入这个专业的学习的?曾经做过什么准备,或者立下过什么FLAG吗?

得知录取专业是软件工程的那个暑假,因为家里面一些矛盾,我并没有很高的学习欲望。在开学之前,我最多学习了电脑的一些基本操作,其他在暑假就没有计算机相关准备了,只希望可以保留高中的冲劲投入学习,在大学冲个好的研究生。可能暑假那时重新拾起高中没时间读的沈石溪、杨红樱写的小说吧。
在大一上学期结束的寒假,我因为加入了学院的网科部,里面有一些考核学习任务,我在寒假想认真对待学长指导,学习HTML语言,学一些当时课程没有的技术。但多方面的借口,导致我最终寒假成果只交出去一点点笔记,没有任何run的成果展示。
同样的情况还有大一下学期结束的暑假,我也立志好学好python,因为那学期选择了王灿辉的C++,感觉自己编程能力变强了,啥都可以自学了。于是在b站上面学习python发教学视频。视频讲的很好,案例也有,但我一直都是眼睛看,手没有跟着打代码,所以记得非常不牢固。即使最后有跟着视频写代码爬取了网页内容 ,但没过多久就忘记简单爬虫怎么实现了,包括现在也不会,只会让chatGPT生成示例代码,学习一下再修改使用。
毕竟来到软件工程都两年半了,自学能力肯定比前两年好太多了。写代码以前是复制粘贴,现在是ai生成,知道这个功能用什么实现,会使用就可以了。在多动手实践中才能记住代码怎么写,而不是死记硬背语法代码。

3. 立足当下

个人简历
昵称
梅&源
头像
电话
130****0369
github
https://github.com/meiyuan0369
兴趣爱好
锻炼
特长
学习
获奖经历
2022年
福州大学优秀共青团团员
专业水平
掌握的编程语言
C语言、C++、Java、C#、HTML、CSS、JavaScript、PHP
技术框架
Yii2.0
开发软件
Dev-C++、Visual Studio Code、Visual Studio
累计代码量
2w+行
项目经历
web程序设计实践。基于Yii2.0的博客系统
使用Yii框架构建的个人博客系统实现了全面的功能,包括文章、用户和评论管理,以及权限控制。数据库采用MySQL进行数据管理,通过Yii的强大功能实现了对数据的增删改查操作。此外,系统还实现了对数据的统计可视化,使用户可以直观地了解博客内容的情况和用户活动。
电商管理系统
数据库系统概论实践。实现商品购买,消费者、商家、管理员相关权限

4. 展望未来

4.1 阅读《构建之法》,并阅读构建之法社区中前人提出的问题,选择5个及以上的问题写下自己的思考

[问1] 我都是大学生了,上课还要认真听老师讲课么?

[答] 我认为得分课程和老师情况讨论。以我自己的例子,课程有兴趣高低之分,老师有备课优劣之差。
先说课程兴趣。我高中就对政治历史不感兴趣,书上怎么说,我就怎么背,书上说有什么意义,我就背什么意义,不管这个意义我能不能理解。还有马哲中的理论,有什么原理方法论,我在生活中会看到事物的两面性,但课本上的条条框框讲这么多,不理解的就是一个简单的道理为什么在课本中会有这么大篇幅生硬的文字来描述,还得背下来。老师怎么解释都没错,但很难说到我心上让我记下来。毕竟高中上课肯定认真听都听不进去,更别说大学了。所以我不感兴趣的课,自己没有主观能动性,在好的老师我也听不进去,只有期末多背书取得高分,这种情况下我也许会在课上背背单词,但我不会有睡觉、讲话、打游戏等不尊重课堂不尊重老师的行为,更不会旷课。虽然没有认真听,我也不会戴耳机完全不听,老师有互动的时候,我会相应点头、回答等动作。
而像马哲中经济部分内容或者毛概中邓小平社会主义经济制度改革,我是感兴趣的,我就会认真听,听得懂,想听愿意听。毕竟经济是有规律的可以验证的,不是课本上说啥是啥一样死记硬背。我高中政治经济学部分就考得不错,大学毛概准备的关于邓小平南方谈话主题报告,我就有主观能动性,查阅很多资料,自己写的报告草稿,跟组员修改后,在课堂讲台上脱稿完成汇报。
再说老师备课。很简单,就看老师上课口述的内容和ppt内容的差别。如果老师照着ppt念,基本没有ppt以外的东西,那我想认真听也很难,这样子的课堂是最无聊的,不一会儿我就困乏了。所以我宁愿在课上自己看ppt,所以就希望老师可以在课前就把ppt发下来,如果这部分我已经理解了,但老师还没讲完,我就先看下一部分的内容,遇到不理解的地方,等老师讲到这地方的时候再认真听,再不理解就下课去问老师了。如果老师没有提前发ppt,那我只能自己看书,或者看网络上与课堂相关的文章,等课后老师发ppt以后我再看。不会在上这门课的时候看另外一门课的内容,毕竟眼睛和耳朵接收相差很大的情况下,自己看其他课程的效率也很低。
如果老师上课的内容和ppt内容差别很多,或者经常有课堂练习或者提问,那怎么样都会认真听的。都是大学生了,不否认自己水平远低于老师,但对老师传授的内容是否是社会需要或者是否落后时代发展,我自己会有是非观念,但为了考出不错的成绩,不管老师教什么,我都得学,大部人情况下,认真听课对取得好成绩性价比最高。

[问2] 在一个被认定为“足够好”的软件发布后,得到的用户反馈中,哪些是有用的?什么时候才能将这个软件优化到相对稳定的版本?

[答] 既然是用户的反馈,怎么会没用呢?只不过看这个反馈符不符合法律法规和产品定位了。在软件里面增加赌博功能,肯定是不合法的。在微信中增加网盘的功能,这很明显社交功能定位的微信不适合放百度网盘这类软件的功能。所以只要合法且合乎产品定位的功能,都算有用,只不过产品经理愿不愿意开发这个功能罢了。
愿不愿意开发这个功能的标准又是什么呢?盈利肯定是最重要的原因。如果需要这部分功能的用户数量少,功能开发出来和其他功能一起,难以回本,就把这部分功能设置成付费才能使用,例如会员权益功能,或者成为付费的专业版软件。
至于什么时候才是稳定的版本。当用户活跃量大并且有用的反馈少的时候,用户对软件基本挑不出什么毛病了,这个时候软件就稳定了。这个时候除非是产品经理自己想增加功能来增加流量利益,程序员们不会从用户反馈中对软件进行较大改进了。
当软件功能越来越多趋于复杂的时候,可以对软件进行拆分。例如滴滴打车和美团外卖,把消费者和服务者使用的软件分开了。百度网盘针对部分图片存储大的用户推出一刻相册。如此可以减小软件的认知阻力,也分别达到稳定的版本。

[问3] AI辅助编程,是一个银弹么?

[答] 是的,AI编程可以给程序员提高10倍以上的效率,尤其是初级程序员可以轻而易举的得到AI生成的代码,稍作修改就可以为自己所用。图灵奖得主、中美法三国院士 Joseph Sifakis 认为“大模型会毁了初级程序员!”我认为,只要初级程序员懂得怎么正确使用,并利用AI来提高自己学习能力和编程水平,是没问题的。例如实践作业要求做一个电商管理系统,可以直接向AI提问:“给我一个电商管理系统的所有代码”,也可以程序员自己构建好系统结构以后,再分别对各个小结构向AI提问,例如“登录信息包含…,给我生成一个登陆页面”、“添加一个加入购物车功能的按钮,给我按钮点击后会发生…”等,具体哪种提问方式就看初级程序员的自觉性,很明显愿意进步吧的程序员都会选择第二种提问方式。
都说高级别的程序员改bug的时间比写代码的时间长。用AI辅助写代码同样也是改bug的过程。首先AI生成的变量名大概率与自己程序中已有的不同,其次AI生成的一段代码该如何放入已有的程序中,最后运行AI代码是否达到预期要求。以上三部分在使用AI中经常会出现问题,刚好可以锻炼初级程序员找bug的能力。如果非要强调程序员要亲手从键盘上把代码的每个字母敲出来,那我觉得在实践项目作业中,是非常无聊且无用的。只有在接触一门新语言,学习新语言的语法的时候,才必须要亲手敲代码,这样才会学得扎实。会了以后多项目实践,用熟新语言,哪怕又学了其他内容后,忘了这门语言的语法,也没啥大不了的,找找资料,让AI生成示例代码就可以很方便回想起来的。
关于AI是否会取代程序员、AI对程序员岗位报酬的影响,我深受曾经一篇文章的启发。文章中有一个比喻,正如高自动化纺织技术和化学布料的出现,不会淘汰原有的纺织业,反而创造了现代如此庞大规模并且充满多样性的服装产业。AI于编程,亦如此。

[问4] 对于一名工程师而言,究竟应该是更”专“一点好,还是更”广“一点好呢?

[答] 我仍为有未来的软件工程师应该先在某个方面“专”,然后在团队实践中累计经验,慢慢变“广”,但不用又”广“又”专“。在第三版《构建之法》的60页,表格3-4列出了数据库系统不同方面不同层次的要求,例如安全性在基本技术中只要保证数据库安全、网站安全。而进一步的拓展技术要求懂得密码学、各种病毒工作原理。而软件工程如此庞大的体系,做到样样精通是不可能的,但样样都略知一二也是没有竞争力的。所以一开始应该先”专“一个技术,在企业开发中能站稳脚跟,在团队合作中保持学习的能力,学习团队其他成员负责的技术内容,为未来能领导团队做准备。没有人愿意一辈子只敲代码。

[问5] 想从事软件开发的大学生是去企业实习成长更快还是在学校实验室实习成长更快呢?

[答] 在我看来,去企业实习是培养自己项目经验,在学校实验室实习是培养自己科研经历。前者可能面向就业,后者面向深造。如果个人偏向于利用现有工具生产产品,那么科研去企业实习。如果个人偏向于学习新技术、解决新事物带来的问题,那么可以去学校的实验室跟着导师研究。不管是企业还是实验室,都需要选择能提升自己的事去做。进企业不是混一份实习证明,进实验室不能水一篇论文,得踏踏实实地给自己做实事。
题目说到的是从事软件开发,那大部分都是偏向于利用已有工具生产产品了,那也许在企业中实习会更好。但大型软件遇到一些问题,并不是项目经验越长的人能解决的,而是有相应技术的科研经验。例如12306铁路售票系统的算法、高德地图的实景导航等。
所以选择去企业实习成长还是在学校实验室实习成长,取决于自己未来职业规划向从事的类型。

4.2 未来的职业规划

  首先本科毕业后能读一个985大学的研究生,弥补高中遗憾。偏算法的研究方向吧。

  然后找一个薪资高点的工作,累一点也没关系,但不能一直做”搬砖“的活,必须以更高职位为目标。

  最后拿着自己的积蓄,回到农村,拥抱乡村振兴。

(非常理想,没有很具体,自己现在并没有很大能耐,能给未来作做出清晰的规划,只能走好当下的路)

4.3 对软件工程的理解和期望

  • 课程理解:在个人和团队中学会如何分析需求、设计产品、代码实现、测试维护以及把软件发给别人,别人不用配任何环境,就可以像我本地开发环境一样运行。
  • 课程期望:能成为团队负责人,清楚各环节是如何协调配合的,各环节需要什么技术。希望以后读研中能利用本科知识自己做一些软件程序玩儿。为工作中成为领导者打下基础。

5. 学习路线

5.1 Java学习思维导图

在这里插入图片描述

5.2 学习路线图

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值