软工实践个人总结

一、基本情况

  • (1.1)请回望第一次作业,你对于软件工程课程的想象
    • 首先呢,经过了软工实践,写了茫茫多的代码,改了茫茫多的bug,对于写代码已经不是特别畏惧了,纸上谈兵程序员的外壳已经慢慢脱离我了。
    • 其次,就是学习了很多当下比较前沿、热门的技术,比如Django。同时也让我对python这门语言使用的更加熟练,更加得心应手,整个软工实践大部分时间我都在使用它完成编程任务。
    • 最重要的是,通过两次团队作业的冲刺,我见到了凌晨四点的福大。那时,天还很黑,我还很困,代码还差很多。
    • 不足之处:
      • 距离一个小全栈程序员还有一段很长的距离
      • 没有对Web前端开发进行更深入地学习,只会前端三件套,本来说是想借结对编程的机会,学习一个Vue或者React这种框架,但是学习时间比较长,最后还是选择了学习成本和开发成本比较低的微信小程序,从现在来看,是比较遗憾的。
      • 对于自动化测试的学习还是很浅显的,并没有十分深入地去了解,自身的测试水平仅仅是够应付作业。

  • (1.2)总结这门课程的实践总结和给你带来的提升
    • 在软工实践课程当中我编写了6000+行代码。

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

      # 作业 花费时间(分钟)
      1-2 个人编程作业 1360
      3 结对编程作业 3190
      4 团队介绍与选题报告 120
      5 团队需求分析报告 600
      6 团队项目之现场编程 600
      7-13 Alpha冲刺(含总结) 3000
      14-19 Beta冲刺(含总结) 3000
    • 讲述令你印象最深刻一次作业?为什么这次作业令你影响深刻?

      • 印象最深刻的一次作业:是结对编程作业的猪尾巴。
      • 原因:
        • 选择的是微信小程序完成这个作业,但是之前一点都没接触过相关的内容,所以从0开始2倍速播放教程,到自己把这个结对作业除算法部分的其他所有内容落地实现,过程坎坷且刺激。
        • 原型设计也是第一次接触,了解了这是啥后,也使用了诸如墨刀、AdobeXD等一些列原型设计工具。
        • 前后端交互也是第一次深有体会,无论前端还是后端都不容易,看舍友和后端小哥积极battle,反映bug,也遗憾自己了解这些东西太晚。大三才入了这些坑。(现在应该还不算入门阶段,算是入坟吧!)
        • 由于要实现AI算法,又去学习了一些博弈论的知识,可以体会到博弈过程中的乐趣与紧张感,并且也同时回顾了一下强化学习的入门算法——蒙特卡洛树搜索。
        • 众多的第一次汇聚在同一根猪尾巴上,想不印象深刻都很难。
    • 在软件工程课程上花费的时间

      累计时间 实际周均时间 预计周均时间
      198 16.48 15
      • 对开篇博客关于时间分配上的回答
        • 当初的开篇博客并没有说具体的时间分配,只是说了,不会就得学。
        • 当然,给一个确切的数字很容易,但是想真正按那个做到却很难,用大致模糊的时间去估量学习时间,我觉得是很合理的。不会、不懂就得去学,永远是真理。
    • 介绍学习到的新技术或生产力工具以及它们给你带来了哪方面的作用?

      • 学习到了正则表达式:在第一次个人编程作业中敏感词匹配问题上,给我带来了极大的便利。处理字符串不用正则?那就是一种折磨!
      • 学习到了如何开发一个微信小程序:学习微信小程序,当然是为了更好更方便地完成结对编程任务咯!并且它写起来也没有网页那么复杂,而且是基于前端三件套的wxss、wxml、js。总而言之,简单!
      • 了解到了ProcessOn这个在线画图工具:画UML图还是比较折磨的,这个在线画图的网页有一些文档,并且还有一些模块,可以让枯燥的画图变得有趣。
      • 了解到了墨刀和AdobeXD这两款原型设计工具:设计原型=设计艺术品,原型设计就得天马行空!(小图标直接导出png真的巨爽,不用ps去抠图)
      • 学习了python的后端开发框架Django:有了框架,开发无异于在毛坯房里装修,省去了很多不必要的麻烦。
      • 学习了Auto.js的使用:为了团队的现场编程,速成的。同时这也是我第一次接触和安卓有关的东西。没有安卓实体机很难受,只能靠模拟器度日。
      • 学习了pytest自动化测试框架和用于微信小程序的测试框架minium:由于每次作业基本上都有对测试做一些要求,需要学习一些自动化测试的方法。学习了这两个框架后,算是对自动化测试有了一些整体上的了解。
      • 学习了如何更好地使用pycharm:第一次个人作业的时候,需要测试性能啊,覆盖率之类的东西,以前都没有听过,脑海里没有一个印象,好在pycharm中自带这些性能分析工具,也让我了解到了pycharm待我探索的地方其实还有很多,不仅仅是编写代码。
      • 学习了java:学这个当然是为了看队友代码啦,团队作业的后端是用java写的,虽然java和c++差不太多,但是还是有区别的,不然真的不是很懂java的代码结构。
    • 其他方面的提升。

      • 无论是结对编程还是团队作业都离不开队友的相互协助,如何让1+1发挥出大于2的功效,如何与队友更好地沟通都是需要在一次次实践中去体会的。
      • 代码量upupup,整体的编程能力有了比较大的提升。
      • 对软件开发的流程有了大致的了解,同时也了解了一些开发中的设计模式,比如单例模式、观察者模式、工厂模式等。
      • 写博客和博客排版能力大幅提升!真的写了好多博客啊!以前从来没想过做一个东西,有这么多内容可以记录。

二、总结与收获

  • 总结

    • 个人作业总结

      • 个人作业是最早的一次编程作业,也是步入软工之旅的第一步。
      • 一开始看到这个作业的时候其实有点头皮发麻,感觉工作量并不小,但是深入分析,把检测敏感词所需要的几个必要条件(拼音、偏旁等的匹配问题)筛选出来后,再逐一攻破,问题就引刃而解了。
      • 学会拆解问题也是我在这次作业学习到的核心能力。大问题化小,小问题化了。
      • 当然,有许多模块是前人已经帮我们实现差不多的,我们需要做的就是如何高效地寻找到那些有用的工具并学习使用他们(python第三方库真的好多!)。
      • 学习一个库,对于当时的我来说也是很费劲,有些库文档没有给出相应的示例代码(如pychai),需要自己去分析函数的构成,然后摸索着去使用,这十分锻炼我的学习文档能力,对于后面结对作业学习微信小程序的官方文档有了极大的帮助,看文档速度upup!
    • 结对作业及团队作业总结

      • 一个人完成的任务可以自己随心所欲,自己看着舒服就好。但是一旦涉及到两人及以上的团队任务时,一定要有明确的标准与规范,那时候自己的代码就不仅仅是给自己看的了,更需要让别人能够读懂,代码可读性方面一定要做好,否则将会事倍功半。
      • 每布置一个新任务对于我来说其实都是一个新的学习过程,需要总结出一套适合自己的路子,让学新知识更有效率,能够灵活地把新技术应用到开发上。
      • 这学期别的学科的大作业和考试是比较多的,每个都是赶DDL,这学期可以说是DDL驱动型的一个学期了,很难受。考验的不仅仅是如何快速得出一个合理的规划,更是在考验我们的潜能,突破极限的感觉真的很好。
  • 收获

    • 打了茫茫多的代码,学了茫茫多的新技术,了解到了各种便捷的工具、网站、软件。
    • 了解了整个软件开发过程中产品经理、前端、后端、测试等等一系列岗位如何各司其职,不再是个软件工程领域的文盲。
    • 速成新知识并且快速投入生产的能力有了长足的进步。
    • 交流至关重要,一个好的交流可以让开发事半功倍!

三、致谢

  • 最想感谢的人是我的室友兼组员——黄志翔
  • 他总是能在我困惑的时候给我一些启迪和想法。
  • 他总是能在我代码写的一团糟的时候告诉我一些更好的设计模式(不然我在结对作业做微信小程序的时候可能就已经寄了!)和编码方式。
  • 他会推荐给我一些更好的生产力工具,让我更高效的完成工作。
  • 黄少无邪的笑,让人充满了力量!
  • 黄少!我的超人!
posted @ 2021-12-21 17:38  CoupleYoghourt  阅读(76)  评论(0编辑  收藏  举报