2020ASE第一次课程做业—指望与笃信

前言

​ 这篇博客的主题是:指望与笃信。借这一次写指望与笃信博客的机会,也简短地进行一次自我反思与自我剖析,反思一下过去,总结一下如今,展望一下将来。python

​ 首先我想谈一下我选高等软件工程这门课的心路历程以及我写这篇博客的心态变化;我本科院校在南开,并非北航本校升学,因此在我上第一次课以前,我了解高等软件工程这门课的途径是学长学姐和身边同窗对这门课的评价。我听到了两种声音:django

  • 第一种是:高软必选!!!这是一门可以真正能让本身有质的提高的“硬课”;
  • 第二种就是:这门课只有三个学分,上这门课的时间精力投入不亚于十个学分的课程,高软不值得;

​ 这两种声音在我脑海中交织缠绕,我一时间不知道如何抉择。这让我开始反思我本科期间的经历,修过与高等软件工程这门课相关相似的课程:企业实习、面向对象分析与设计、软件工程、企业应用开发。按理说,我应该对软件工程或者说对工程这个概念有很深的理解才对,可是实际状况并非,我这方面的基础知识,我对软件工程的理解依旧是一地鸡毛;由于我犯了一个致命的错误,选课完成课程项目永远是以学分为导向、以高分为导向,而真正忽略了在这个过程当中应该去掌握理解的地方。因此在研究生阶段,我给本身定下的一个小目标就是,行为决定以自我提高为导向,因此高软值得!小程序

​ 看了一些同窗的博客,被同窗们坦诚认真的态度所打动。之前的我,对待老师的做业,通常会掩饰本身的真实状况,交一份看起来尽善尽美的做业上去,永远作不到对本身彻底坦诚,这样是极其很差的;老师疲于备课,学生疲于应付,两者在相对平静的表象下都没法获得自我价值的真正实现。如今我深入地转变了个人见解:我首对我本身的发展,自我能力提高负责,其次才是对老师的做业任务负责;一样的,我认为,老师首先应该对学生的发展负责,其次才是对教育体制负责。后端

​ 可能以上谈的一些与课程内容关系并不大,视野也比较小,仅仅局限与我自己,并无放眼整个软件工程行业,可是这是我当前最真切的见解,若有不一样的见解,也请各位批准指正。微信小程序

课程指望

对于这个问题,我想拆解成三个小问题来回答。设计模式

状态A:我如今怎么样?微信

本科软件工程专业科班出身,有过网站后端开发、微信小程序全栈开发、移动应用开发相关经历,也修习过软件工程相关课程;可是如今有一个新项目摆在我面前的时候,也许不会有第一次接触的恐惧,可是在面对相关的代码细节、技术要领这些问题上,我和从头开始彷佛也并无质的区别。框架

因此这里我要问本身个问题,不论是导师仍是业界大厂,都十分看重项目经历,那么一次项目经历,带给本身的提高是什么?本身在每次参与到项目中的时候,应该注意什么?工具

  • 我认为最重要的一点就是团队协做,一个团队以什么模式运行,用什么工具协做,以什么方式沟通,团队总体的知识技术以什么方式更迭,怎样作到成本最小化收益最大化;
  • 其次就是技术积累,只要不是彻底相同的项目,接触的时候必然会遇到新的知识,新的技术;一方面互联网产业技术更迭很快,须要咱们具备快速学习的能力,另外一方面新习得的技术如何内化为咱们本身的技能,除了频繁的练习,那我认为有效的一种方式是概括总结输出,造成本身的技术文档库。
  • 最后可是一样重要的一点是,分析实际状况,抽象为可计算可拆解模型的建模能力也是关键的一点。

以上是我目前视角下可以看到的方面,固然不少问题我现阶段还没法解答;从以上三个方面来评价我以前的项目经历的话,我从以前的项目经历中获得的收获应该是相对很小了。性能

状态B:从此我想成为何样?

对照以上分析,在项目能力上我但愿可以获得以下发展:

  • 团队协做流畅,不论是做为队长仍是队员,都能很好地把控项目节奏,掌握协做工具,高效沟通交流;
  • 技术能力强,技术种类广,学习能力强,迭代周期短,擅长快速学习和概括总结;
  • 可以抓住实际问题的主要矛盾和次要矛盾,将之抽象建模,并可实现为性能较健壮的系统。

在这门课上我期待收获到什么?

  1. 对软件工程更高维度或者更深层次的认识与理解。以前一直以为本身就像一个无情的搬砖机器,并无在项目中注入本身的东西;同时以往关注的点可能只是这块功能是否可以实现,除此以外更多的还要考虑这个健壮性和运行效率,一个鸡肋功能占据极大资源的状况是不可取的。

  2. 重拾从事软工行业的自信。因为我的因素和2020年疫情的影响,我距离上一次项目经历已经隔了好久,自认为本身的代码能力是相对偏弱的,且因为计算机行业的兴起,学习和从事互联网行业的门槛下降,带来的是竞争压力的加重,如何培养提高本身的核心竞争力,在互联网浪潮中站稳脚跟是亟待解决的问题。

  3. 自我知识体系的重塑。不少内容以前也曾了解过,不过如今也印象不深,更像是一团乱麻,面对问题时,也不能有效地理出头绪,这就须要在这门课学习的同时,对过去的知识结构进行从新的整理与概括。

  4. 更高的代码能力。不论是搭架子仍是实现某个具体功能,我目前来讲,是很不熟练的,此次课程的课下练习时间也是一个训练的机会。

    以前一直听过这种说法,代码能力通常分为这么几层:

    • 第一层,起心立志,学习和记忆基础知识;

    • 第二层,识别基本语法,掌握一些通用成熟的固定技巧和常规表达式;

    • 第三层,读懂代码,能看懂代码,能根据需求实现功能。但具体原理不是太清楚,不太清楚的意思是:不知道怎么用好,怎么用很差,存在什么隐患,有哪些亮点。写出的每一句代码,未必有理由,修修改改能获得正确的输出结果或实现相应的功能。有必定的可复制的方法或流程,去完成类似的事情;

    • 第四层,有意识地写代码,能模仿写代码,写出的每一句代码,都有理由,自问自答能够解释上一级别不肯定的问题,并造成一家之言;

    • 第五层,无心识地写代码,能明白地写代码,不停的自我否认,自我重建,达到优雅的境界。

    自认为还处于第三层上下,有很大的提高空间。

  5. 更完备的文档能力,这是一个之前忽视的点,没有花气力培养过这方面的能力;逐渐发现文档能力的重要性甚至不亚于代码能力;

  6. 团队合做能力,团队合做经验的积累,团队配合方式的探索。

以上列举次序从我的考虑到团队,与重要性无关。

提的比较抽象,没有将收获目标落实的某一种具体的技术上,但倒是离不开各类具体的技术。

我之项目观

在回答取得项目成功的关键因素这个问题前,有必要考虑一下什么样的项目才是好的项目这个问题。

什么样的项目是好的项目或者说是成功的项目?

  • 具备实用价值,能够实现相应功能解决一些问题,或者说研究价值,“有用”,而不是玩具项目
  • 有完备的文档
  • 有完整的贡献管理与维护
  • 甚至有周边项目与盈利生态

那么取得项目成功的关键因素有哪些?

  1. 选题有意义,抽象建模合理
  2. 团队合做顺畅,高效沟通,能把控节奏将项目按进度向前推动
  3. 利其器,根据模型,选择合适的框架和技术进行开发
  4. 集思广益,充分重视代码评审环节,确保提交高质量代码,后续还要对项目进行跟踪维护
  5. 重视文档,从各个过程重视软件文档的撰写,文档也是软件不可或缺的一部分

个人项目计划

项目内容:基于订单的家庭工厂协做系统(需求、设计、实现和测试)

典型的生活日用品制造业每每由一组家庭式工厂协同配合,共同生产和组装,完成最终订单。系统有几个关键功能:下单(接单)、订单分解、订单分配、订单进度追踪、订单完成风险评估、订单完成效果分析等。要求实现基于网页或手机端的系统。场景相似与淘宝网购、美团外卖等。

开发任务:我的负责后端开发

我的计划

因为还在项目前期,暂未涉及到里程碑和工单任务,目前的计划集中在自我知识技能储备提高上:

  • 作好心态建设,确保每周至少10h时间投入,作好随时加班准备
  • 软件工程、UML、设计模式学习巩固
  • python基础语法,django框架的使用
  • 课上认真对待,课下认真开发,互相评审,积极反思

团队计划

  • 积极参与,高频率同步我的与团队间的状态步调
  • 前期分析需求,设计系统,选型出相对合适的框架进行开发
  • 中期开发积极推动进度,和团队成员拆分工单,共同攻克难点
  • 后期积极评审代码,维护代码健壮性与高效性
  • 整个过程当中积极完善文档

以上就是我第一次博客的所有内容,可能聊了不少无关的内容,这都是当下的我最真切的想法,但愿这门课程结束的时候在回头看,又有新的体会。

相关文章
相关标签/搜索