软工实践个人总结

一、基本情况

1.1 请回望第一次作业,你对于软件工程课程的想象

  • 对比开篇博客你对课程目标和期待,“希望通过实践锻炼,增强计算机专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?
    • 回头一看才发现开篇博客写的有点简单了。当时写了“我期待能在这门课学到很多东西,无论哪个方面。”其实是因为对软件这一块一无所知,没敢说什么……目前这门课接近尾声,我认为我达到了开头对自己的期待——至少在各个阶段中知道自己该做什么,以及怎么着手去做。

    • 实践过程中,除了技术上的知识外我学到的更多是【如何解决问题】,无论是在编程中还是学习使用新工具的过程中都遇到了一些困难,通过搜索引擎能解决90%的问题,还有10%属于搜都不知道搜什么——比如结对编程的题目华容道,一开始搜华容道只能找到比较接地气的解法(就是告诉你怎么移动)而不是算法,后来才知道要搜八数码= =。←这是一个不足,【知识面太窄】,看完问题一大半都是没见过的词,一时无法理解要做什么,也不知道要搜什么。

    • Learn by doing】,在课程开始前我是没想到我能用java和js开发的,搞着搞着发现好像不是那么难,目标是能跑就行的话还是可以做出来的。还有微信的工具,包括微信云开发,都是直接上手尝试(因为教程太长估计看不完),先写能写的,遇到问题问搜索引擎——过程上还挺顺利的,而且印象更深刻,比看教程学效果好的多。

    • 文档撰写
      听说过类似↑的事,所以尝试写了一下需求分析文档。

    • 没接触到后端】,团队项目中发现云开发能实现大部分逻辑功能,就都在前端做了,有点遗憾?

1.2-a 总结这门课程的实践总结和给你带来的提升:

  • 在软工实践课程当中我编写了 2698 行代码。

  • 软工实践的各次作业分别花费的时间:

    # 作业 花费时间(分钟)
    2 个人编程作业 2715
    3 结对编程作业 2885
    4 团队介绍与选题报告 30
    5 团队需求分析报告 120
    6 团队项目之现场编程 900
    7-13 Alpha冲刺(含总结) 3060
    14-19 Beta冲刺(含总结) 1380
    20-22 每周小结 480
    不能理解PSP表格有什么意义,还有代码写几行,该不会真有人写到一半会去记这个吧。
  • 讲述令你印象最深刻一次作业?为什么这次作业令你影响深刻?

    • 印象最深刻的是【个人编程】。

    • 因为看题目就看傻了……每句话都似懂非懂,合起来就更不知道怎么做了。

    • 当时第一反应是:论文查重?→ 哦自然语言理解 → 啊我要是会搞这个我还坐在这里干嘛。(其实结对编程也是这样,看到题目哦这个是不是要做图像处理 → 啊我要是会搞这个我还坐在这里干嘛)但其实开始想怎么做之后发现没那么高深,找到tfidf算法之后基本就有思路了。结果在算法上没费太大功夫,在配置上卡了半天。

    • 总的来说是零经验的原因吧,之前从来没有接触过这样的作业,干的更多是照本宣科的事,加之要使用很多没用过的工具,因为什么都是第一次见,所以留下了深刻的痛苦印象。

  • 在软件工程课程上花费的时间(预计花费时间参考:开篇博客“你打算平均每周拿出多少个小时用在这门课上”的回答)

    累计时间(小时) 实际周均时间(小时) 预计周均时间(小时)
    192 12 20
    • 对照第一次作业希望的每周花一天时间在软工实践上,我认为我从开始到beta冲刺阶段都完成了目标,每周应该至少有个两三天都有做吧。最后的总结阶段实在是没办法了,补修的课程太多了,每周都有两三个考试加上几个实验……
  • 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用?

    • Markdown,java,jProfile,Intellij IDEA,Postman,Git,autojs,javascript,微信开发者工具……
    • 第一次博客作业学到了【Markdown】,当时觉得写这玩意真费劲,现在用vscode和Markdown写笔记,真香。
    • 个人编程和结对编程用的都是【java】,这两个阶段的提升主要在搜索引擎的使用,踩的坑太多了百度和csdn已经满足不了我了。【Stack Overflow】真好使。
    • 团队现场编程学了【autojs】和【JavaScript】,如果不是作业的话autojs真的很好玩。Javascript遇到的语法问题很多,现场编程报了一个好像是数组下标越界的问题(我仍未知道那天所报的错是怎么回事),大伙都把算法写好了,结果卡在一个报错,最后只能用硬编码,血亏。
    • js的使用在开发小程序的时候得到了进一步提升,大概开始明白前端后端需要做什么以及怎么交互,学了点前端三件套基础知识。另外【微信开发者工具】真的很玄妙,有个bug改了半天还在报错,最后重启一下莫名其妙好了= =
    • 发现好多IDE都支持【Git】,但是这个东西从头到尾我都没太明白怎么用……
  • 其他方面的提升。

    • 搜索的正确方式】 学好英语太重要了。实践过程中踩到的坑网上都能找到解决方法,但是这些方法不一定能用,比如编译器报错我又看不懂的话就会把报错内容拖到百度上找,反馈的大都是csdn的网站,而且基本是没用的。然后开始用Stack Overflow,能找到很多有用的回答,但它全英文..谷歌翻译不太靠谱,不如直接看代码(真·程序员通用语言),还有一定几率发现更好的写法。另外微信的工具在外网上找就没必要了,微信有官方的开发者平台(还挺活跃的)和中文文档,开发过程中大部分问题靠这两个都能解决。
    • Github】 总觉得在github上看完再定选题才是正确流程,开发过程中发现有的项目改个名字都能直接交差了,只能说复用也是一种能力吧。

二、总结与收获

  • 个人或结对或团队项目实践中的经验总结+实例/例证结合的分析。
    • 上面写了很多了。

    • 时间都花在debug上了,真正实现某个功能反而不是很困难..因为之前没写过js,编码的时候只知道用C艹怎么写,然后换个语法套进去,结果一堆error和warning。总结下来大概是这样↓

    • 吐槽一下题目
      每一次的题目都是写完了,课上才讲。个人编程的文本相似度,做完了搜索引擎课上讲到了;结对编程的八数码,算法写完了人工智能课上讲到了;现场编程的一笔画,结束了才看到离散数学书上的欧拉图= =题目出的好啊(应该是我懂得太少了1551

    • 忘了哪个老师说的不会java也能做个有模有样的东西,竟是真的。语言也是工具,目的是让人用的而不是花大量时间在学习上,所以速成还是有一定效果……但是我在开发过程中更多是在适应语言,而不是去利用它们的优势,比如java有很多方便的api和外部依赖,这个是我没有接触过的,而且不知道如何去发现它们。

    • 还是语言的问题。js调用函数不是顺序执行的,在这里卡了半天,结果发现一个变量没赋值,因为程序没等函数返回就执行下一步了..js是有同步的方式,我嫌麻烦最后还是写成了嵌套查询。(还是我在适应语言)

    • 注释是美德。看别人的代码(没有注释)会减十年寿。还有编码和文件名尽量都不要用中文,这学期被中文编码坑过很多次了……小程序有个图标显示不出来的问题,也是中文命名图片导致的。

三、这学期下来,你最感谢的人是谁?有什么话想要对TA说呢?

  • 感谢团队的每个成员,是结对的队友拉我进去的(因为感觉队友很靠谱团队应该也很靠谱,总之选对了。大家一起完成了《带代》这个项目,是非常棒的经历,虽然最后因为wx审核的各种原因只能阉割上线有点打击人,但完成一个小程序的过程还是让我获得了很多宝贵的知识吧。
  • 感谢柯老板,在实践过程中逼着我去接触各种东西,虽然看着三个C班舍友结课的时候很sad。
  • 2021新年快乐,新的一年多给点分吧
posted @ 2020-12-25 00:15  blacksheep107  阅读(188)  评论(4编辑  收藏  举报