688
社区成员
发帖
与我相关
我的任务
分享| 这个作业属于哪个课程 | 2023年福大-软件工程实践-W班 |
|---|---|
| 这个作业要求在哪里 | 软件工程实践总结&个人技术博客 |
| 这个作业的目标 | 课程的回顾和总结、个人技术总结 |
| 其他参考文献 | 《构建之法》 |
Q1:程序员是否有必要为满足小部分人的需求去做软件,或者为软件添加某些功能?
Past: 这需要取决于软件的目标用户,在目标用户是普通大众的情况下,如果“小部分人”只是所有使用者中的比例小,但总体人数并不少,且该需求是刚需,如有视力问题的中老年微信使用者,字体更大,按钮更大的“关怀模式”对这类小部分人来说是刚需,没有这个功能就难以使用微信,微信为他们添加“关怀模式”则是必要的;如果小部分人的需求不是刚需,只是单纯的心血来潮或满足个人小小的便利,在开发资源紧张和避免软件功能冗余的原则下,则没必要满足需求。在软件的目标用户就是小众群体的情况下,程序员为这“小部分人”的需求做软件,则是理所当然的,但在为软件添加功能时也需按照第一种情况所说的判断是否需要满足其需求。
Now: 我觉得这个问题要综合考虑各个方面,不仅是目标用户还有考虑软件要交付的时间以及所拥有的资源等等,当有某一条件受到限制的时候,可以暂且不去添加这些功能,后续开发者可以利用增量模型或者是其他的过程模型再逐步地完善软件功能,扩大用户的范围。
Q2:软件开发是年轻人的饭碗,吃的是青春饭?那年纪大的程序员经验丰富但是快速学习能力拼不过年轻程序员的时候该怎么办呢?
Past: 不可否认,写程序就是一个吃青春饭的工作,通常来说一个程序员最久能做到35岁左右,因为随着科技的发展,程序员无论是知识还是学习上都比不过年轻人,写程序最需要的就是就是脑力,所以你会发现很多程序猿还没到中年就已经满头白发,这都是天天加班造成的。对于老程序员来讲,有以下路可以走:第一,走技术路线,只要技术精通,愿意不断学习提升自己,就一定有市场;第二,走管理路线;第三,往运营转移,技术出身的人员,往运营转移是相对好跨界的事情。
Now: 软件开发和竞技选手类似,都是吃青春饭的工作。除了我之前讲的那三条路以外,我觉得可以趁35岁到临之前做好充足的准备,如资金的储蓄和经验的积累,投资理财,扩大自己的机会。争取岗位往上升,不停留在打代码的阶段,这样被淘汰的概率也会小一点。如果真的面临下岗的情况的时候,只要手里的资金充足,之前有做一些投资,那也不怕被辞退。
Q3:在找工作方面,计算机科学相比软件工程的同学是否不存在任何优势?
Past: 软工的本科会有更多软件工程领域的一些课程,如软件工程与UML,项目管理,软件工程,但是这些课程对于本科毕业学生就业来说很多时候都还不会使用到,因为大部分本科毕业来说,很多都还是做软件开发,还没有上升都可以使用这些课程知识的机会。相反,与计算机专业一样的程序设计语言,操作系统,编译,数据结构等倒是考察的重点。而软工还有一个不同在于会有项目实训或者实习课程,这一点对于提高动手能力与实践经验也有一定的好处,对就业也有一定的帮助。所以,我觉得就本科而言,软工与计算机相比在一些课程上有特色,但是在就业方面应该还是都差不多的,还是需要具体到人吧,不能一概而论软工是否有优劣势。
Now: 我还是跟之前一样,我觉得应该分人,因为在招聘的公司看来,软工和计算机科学都属于计算机类,没什么太大的区别,招聘企业更多看的还是个人的能力。
Q4:花费时间越多,代表工作量越高吗?
Past: 工作总量=工作效率×工作时间。在工作量一定的情况下,减少时间就可以提高工作效率。一般情况下,两者成正比例的关系。即,工作时间越长,完成的工作量就会越多。当然也有特殊情况,假如一个人工作中磨洋工、不提高工作效率、不合理利用时间的话,他的工作效率就会很低,完成的工作量也不会高。
Now: 我还是同意我之前的那个公式:工作总量=工作效率×工作时间。工作总量不仅由时间度量,还要考虑工作效率。
Q5:舒适区,学习区,恐慌区?
Past: 在我看来,正确的阶段应该是:学习区中穿插着舒适区和恐慌区。学习尚未开始时是舒适的,而后进行学习,在不断学习中锻炼较好的学习能力以及思维能力,从而在后续学习中也能较好的处于舒适区中。而在学习的过程中,由于目标定得过于远大而自己能力又难以达成、心态不够成熟、遇到难以克服的困难时,我们会被误导地进入恐慌区,从而偏离学习区,出现一系列的恐慌、懈怠甚至放弃的负面情绪。结合我自身的情况,我认为我是处于恐慌区,因为既定的学习目标过多,而学习进度较慢,导致自己在一段时间的懈怠后有了放弃的想法。在看到这个问题以及博主的看法后,我对自己的学习阶段有了更多的了解,也大概明白了问题出现在哪,后续学习过程中我也会及时做出调整,从恐慌区回到适合自己的学习去中,构建自己的舒适区,不断学习。
Now: 在本学期的学习中,我就跳出了以往的舒适区,主动学习了很多的新技术,如springboot、layui、element-ui、servlet等等。我认为跨出第一步永远是最难的,也只有我们真正跨出去了,领悟到了这项技术,回头看,我们才会非常有成就感。
需求阶段: 需求分析时期,我学到了利用用户调研报告获取用户需求,还学到了应该先和队友沟通好,再将需求转化为原型设计文档。如果前期没有协商好,后续的原型以及设计实现都会受到影响,到时候修改的成本将会大大提高。
设计阶段: 设计阶段我学到了数据库设计,接口文档设计。设计阶段决定了后续软件的质量,后续的实现都是围绕设计进行的,所以设计的工作十分重要,我们开发者在这部分尤其不能掉以轻心。
实现阶段: 实现阶段,我学到了很多新技术:springboot的使用,servlet结合element-ui的使用,axios的使用,ajax的使用,layui的使用等等。实现阶段我始终以边学习边实现的态度进行,将理论应用于具体的实践。
测试阶段: 测试不仅是测试人员的职责,开发人员对自己编写的代码是最了解的,也可以进行单元测试。在测试阶段,我学到了使用postman软件对自己的代码进行测试,或者使用一些响应窗口进行测试。
发布阶段: 学会使用阿里云的服务器、宝塔部署网页项目,还学会了利用用户调研调查用户对我们产品使用的评价,有利于后续产品的维护。
个人项目: 说实话,对于个人项目我内心都是蛮恐惧的,但所幸也是因为这种焦虑害怕,让我都很认真对待每一次的作业,每一次都是提前完成任务的。个人项目锻炼了我的独立编程能力和问题解决能力,今后我也会继续提高自己各方面的能力,牢记万事开头难,跨出勇敢的第一步。
结对编程: 结对编程过程中,我和队友相互之间的沟通协作非常愉快。对方的能力比我强,在和她的协作过程中,她教会了我许多技术的使用,我非常感谢她。在我俩的不懈努力下,我们的项目也是获得了优秀作业,非常有成就感。
团队项目: 团队项目中,我也是收获了很多:与他人的沟通协作能力,极限编程中springboot的限时学习及使用,前端开发中layui结合php的使用,gitcode在团队项目中的协助使用以及管理工具的使用等等。
| 目标 | 评分(百分制) | 解释 |
|---|---|---|
| 理解软件工程师的职业道德规范和实践要求,了解国情社情民情,理解软件产品对社会、健康文化等影响,树立积极向上的软件开发理念 | 90% | 通过软件工程课程的学习,我对软件工程师的岗位和应具备的基本修养有了更深刻的了解 |
| 掌握需求分析的全过程,能辨别客户表述的多样化要求,熟练使用需求表达工具,能够规范、准确地表达客户的需求,构建需求分析模型 | 90% | 通过软工实践的学习,我掌握了通过用户调研协助获得用户的需求,以及掌握了墨刀原型工具的使用,能够规范地表述用户的需求 |
| 掌握软件开发的全过程,遵循体系结构设计方法和基本设计原则,通过正式的技术评审,完成从体系结构设计模型、数据设计模型和构件级设计模型,形成面向高效可靠的服务组件设计方案或软件系统设计方案 | 85% | 掌握了不同的体系结构方法和构建级设计模型,但这方面的知识仍然需要强化 |
| 能够执行从组件到软件系统的技术评测,具备设计模型的评判能力,具有创新设计意识,能够优选设计方案 | 89% | 具备了软件评测能力,但是创新意识仍需要加强 |
| 遵循软件开发各阶段文档标准,采用规范的表达,掌握需求规格说明书、系统设计说明书、系统测试报告等文档撰写方法,具备与业界同行交流能力 | 89% | 掌握了基本的需求规格说明书、系统设计说明书和系统测试报告的撰写方法,但这方面的锻炼仍需要加强 |
| 具有良好的团队意识和合作技能,能够与其他成员开展有效的沟通和协作;能够组织、协调或指挥团队开展工作 | 90% | 在软工实践团队项目中,掌握了和其他成员沟通协作的本领,能够合理地安排开展各自的工作 |
| 能够辨别具体软件项目管理中涉及的构成要素,掌握软件规模和工作量的估算方法,能够选择合适的工具规划软件进度并对项目管理过程进行配置,具备初步的管理复杂软件工程项目的能力 | 90% | 在软工课程上学到了软件规模和工作量的估算方法,在软工实践上学到了项目管理工具的使用 |
概述:在团队项目Sofu中,当修改用户信息中的邀请人信息时,由于只有注册时间早于该用户注册时间的用户才能够有邀请该用户的资格,并且这样的用户有很多,所以为方便管理员的修改,使用layui搜索下拉框进行选择
牢记万事开头难,跨出勇敢的第一步。
不要害怕困难,勇敢面对它,你就已经成功了。