对于这次课程你对你自己的表现满意吗?为什么?
算不上满意,但给自己打7分良好。首先自己在这门课的初期表现比较挣扎,原因在于自己的代码能力不足,面对软工布置的第一次编程作业比较抗拒,害怕自己完成不了。但是到了后来,自己调整了自己的心态,由消极转变为积极,自从第一次的结对编程作业开始,即便面对的是从未学过的前端,自己也开始慢慢自学,从前端小demo到最后的小程序团队作业,每一步走得艰难,但最后自己都能坚持走完。自我感觉良好,是因为收获了新知识和成就感,同样也消除了对打代码的恐惧。说不上满意,是因为自己做出的成果还很欠缺,代码能力没有达到预期的高度。
通过这门课,你掌握了什么工具、技术?
掌握了墨刀,JS语言,前端和后端以及小程序项目的基础框架和实现模板
在课程中你经历了什么挫折或困难?你是怎么解决的?
困难主要是对新知识的无知和茫然。软工每一次作业都是一次新的体验,都是我之前从未接触的东西。软工的作业相比于其他的理论课或实践课的作业,我显得更加手足无措,不知道从何入手,只能自己慢慢摸索,面向github、面向CSDN、面向大佬...说到底 还是自己对编程的接触太少了,除了老师布置的,我基本没主动探索过,以至于刚开始面对很多专业术语时,自己一头雾水。可说到底,靠谁都不如靠自己,虽然自己一步一步学 效率很慢,理解很差,但是这都是必经之路,所以要解决编程问题,首先态度得摆正,必须自己学,不能靠“CV大法”,实践证明,learning by doing 才是最好的学习方式。
在课程结束后,你有什么收获和心得?
收获当然颇丰。
首先是态度方面,这门课程成功地把我对待编码消极的态度扭转过来了,以前对于编码作业,自己就是能混则混,享受CV大法给人的快感(当然自己不会真的只是CV,而是在别人的基础上慢慢修改)。但是通过这门课程,我自己慢慢地在尝试独立写demo(不光是这门课程的编程作业,还包括操作系统的实践代码和JAVA课程),one by one。渐渐地,自己也不再厚着脸皮去白嫖别人的成果了,在打代码的过程中,享受到了learning by doing 给人的成就感。
其次是知识广度。在学这门课程之前,自己的编码能力可能只是最初级的,只会C和C++,python也只会基本的操作而已。但是经过这门课程,自己学到了太多的东西,html、JavaScript,还真正了解到了前端和后端的运行机制、异步函数的含义,(自己有尝试跟着教程写python的django小demo,但是由于时间关系,也没有结果了,寒假自己应该会去学,毕竟技不压身)
最后是编码能力的提升,要是在以前,自己打代码很容易报error,而且bug很难查到真正的错误原因,每次一改就是好长时间,效率方面很欠缺。除此之外,自己的代码实现能力很差,也许自己有一个很好的想法,但是用代码却实现不了,查询方式也只是面向CSDN。但是经过这门课程的锻炼后,代码的能力确实有很大的提高,首先是代码学习能力的提升,目前我也能脱离CSDN,自己去查询各种语言的说明文档,例如菜鸟教程、MDN,以及学JavaScript使用https://zh.javascript.info/。其次是debug的能力得到了很大的提升,至少每次报error能很快的发现引发错误的原因是什么,造成错误的代码在哪里。
你在这门软件工程实践中,一共完成了多少行的代码?
具体的也记不清了,可能2000以上吧
累计花了多少个小时在软工实践上?平均每周花多少个小时?
累积:150h 平均每周12h
对于团队协作的心得或反思
团队协作,最好的效果是1+1>2,如果团队协作达不到这个效果至少也应该1+1=2,不然团队的组织和分工就是有问题的。亲身的经历告诉我,团队协作中,沟通是很重要的,有一个准确无误且一致的沟通为前提,工作才能顺利的进行下去。如何达到准确无误,至少得让对方清楚的明白你表达的想法,而一致性,是要让大家都朝着同一个目标来奋斗,若是各做各的,那么效率是最低的。
对于软工实践课程及助教工作,你有哪些建议?
实践课程方面,我希望个人的编码作业次数多一点,这门课程是为了提升代码的能力,这学期团队作业周期太长了,可以适当缩短一点,毕竟ddl是第一生产力,周期太长,可能前期并不会做什么事情(团队编程,可能就会有人摸鱼划水,达不到预期的效果)。个人的编码作业,难度应该逐步提高,step by step,让每个人都学到东西,就我个人而言,前期的个人编程作业和结对编程作业实现难度不算大,但是对于知识面接触少的同学,跨度就比较大(是因为练少了),当然,这个问题不在于作业本身,而在于学生自己的能力水平(实锤了,我就是个菜鸡。。。),这是门工程课程,跟智商毫无关系,只要多练,就能学到东西,练少了,是学不到东西的。
你的未来规划
代码方面,我肯定会自己学的。寒假,我会自己练python,用python实现一些小demo,用learning by doing的方式来达到自己的预期效果。个人感觉,以后自己工作或是读研,python的用处会很大,例如实现机器学习的项目就是用的tensorflow、keras,这得对python熟悉才行。python处理其他文件也很方便,比如excel表。个人最大的想法就是用自己学到的代码知识,来解决自己生活中的问题。
before the class | after the class | |
---|---|---|
Skills/技能 | assessment (1..10) | assessment (1..10) |
Software Engineering(SE)Overall / 对软工整体的理解 | 1 | 4 |
SE: Requirement (需求分析,典型用户,场景,创新) | 1 | 4 |
SE: Project Management (项目管理,spec) | 1 | 4 |
SE: Design (架构设计,模块化设计,接口设计) | 2 | 4 |
SE: Design (效能分析,效能改进) | 2 | 4 |
SE: Implementation (阅读代码的能力,实现,单元测试) | 3 | 4 |
SE: Test (测试方法、测试工具、测试实践、代码覆盖率) | 1 | 4 |
Software Tools (performance tool, version control, work item, TFS) | 2 | 4 |
Code Review/Writing Solid Code (代码复审/代码规范/代码质量) | 1 | 4 |
Programming Language (JS) (pick one language) | 1 | 5 |
App development Web/Mobile/PC (PC) | 1 | 4 |
Task Plan, estimation and Prioritization (计划任务,估计时间和优先级) | 2 | 4 |
Task Execution (按照质量要求、按期完成任务) | 2 | 5 |
Work with others (协同工作,提供反馈, 说服别人) | 3 | 5 |
Presentation (报告项目状态,提出想法,写博客等) | 2 | 5 |
comments on other improvements (自主学习能力) | 2 | 5 |