期末的到来,我对软件工程的理解不断加深,现在已经是时候总结了。软件工程作为一个虚无缥缈的词汇却有着无与伦比的实在感,这是因为在刚接触时,我对软件工程的印象刻薄,而现在我不得不敬畏起软件工程的前人以及软件工程的深奥了。
软件工程是实践的工程
但软件工程不是全靠实践的学科,作为一个需要我们深入学习的专业。正如我在《构建之法》中总结的那样,软件工程往往立足于前人的经验与总结。这就是软件工程的精髓所在,在前人开辟的道路上一直走下去,开辟新道路。在计算机的不断发展的现代,没有什么是值得挽留的,前辈的经验只能用一辈,剩下的必须要靠自己总结。就像博客园无数教程,这就是前人留下的宝藏,但没有人能完全靠这些教程学会一切,我们不能完全依赖这些教程。这是因为教程往往只是让我们能够开始进入一个领域、学会一个技能已经完成一种习惯的养成,但我们在今后的道路上不断发展,总有一天我们会进入下一个领域、总结出自己的专属技能、需求更多习惯的养成,这些教程就成为了障碍。举个具体的例子,我在配置服务器时,需要安装PHP、Apache服务器等环境,这时我的第一步就是找教程,不然我会束手无策。但安装完成后开始更深入的配置的时候麻烦就来了,我版本、服务器系统和教程不一样,于是我去找了更多的教程,最后总结出教程里配置的共同点,于是我学会了如何正确配置环境,落实的时候我也没遇到太多问题,十分顺利。
而软件工程的灵魂是实践,就是对前人经验的不断尝试与失败。经验总结,终究还是要去试试才知道管不管用,所以实践出真知。我学习了一个框架,之后我是否应该照着框架就这样一直下去?就实践的道路来说有,学习了之后在使用就不应该继续吃老本了,那么之后在使用这个框架的过程中,应该不断总结使用经验,开发新功能,最后专精于使用该框架,然后进军下一个框架;也可以研究这个框架,了解框架内在,尝试改变一些,开发出自己的框架,成为设计师。这些都可以推广到更大的层次。
所以软件工程应以实践为主。
我们应该一丝不苟的对待软件工程
这学期我最大的后悔就是没好好按照规划完成作业,很多作业都是补起来,而这个学期各类报告又特别多,结果就是总是顾头不过尾。这也是我对待课程不够专注的表现之一。这些报告正是促使我们认真对待我们所进行项目的最好手段。在今后的工作中,只会遇到更多报告要写,而且每天都得写,不能懈怠,现在的懈怠也是属于学生时期的特权,今后只会使现在懈怠的我们更加难受。
报告的作用只是督促,真正能让我们认真对待我们的学习任务的是我们的认知,我们应该认识到,软件工程不仅仅是一门浮于表面的学科。在一般的印象中,软件工程是注重软件的实际开发的,但其中也有一些很深奥的知识。《人月神话》记录了软件工程管理学方面的深层知识、《梦断代码》讲述了代码史诗,这些都是软件工程内核的东西,包括了管理团队的技能、开发代码的能力、使自己的代码更加全面的能力、能让自己的项目得到大众认可的能力,如果要认真对待软件工程,这些能力都是不可获取、值得我们认真学习的。
另外就是学习能力的养成,上述的能力都不是能直接学会的,需要实践中总结,也需要学习过去的总结。这就是老师要求我们多读名著的缘由。学习是不能停断的,来自书本、教程的经验是源源不断的,我们现在还只是在学那些最初始的知识,深奥的、未知的我们甚至都没接触过,所以学习是不能停止的。
这些都是我们应当一丝不苟对待软件工程的理由。
对老师的问题/建议
- 项目文档的任务布置的不太清晰,应该在布置项目之前全面介绍应该做的任务时也讲解下文档的任务;
- 希望能宽容我们有时的拖延,包括冲刺任务没按时完成、每日会议没按时召开,毕竟我们是学生,有课程的任务,这些实践项目对我们时间压榨的很厉害,所以有时候很难安排过来;
- 不要安排的学习目标后给我们鼓完劲就不管了,安排了安卓的学习工作,但平常的学习工作里面就不在提及,安排些课堂下的小任务也好,不要给我们一个空虚的目标,这样我们只能在需要的时候临阵磨枪,而没有充足的学习激情。
- 另外就是希望老师能多安排算法的练习,以及课堂与上机练习有隔决感,不能把课上知识很好的用于上机。