本文主要是介绍软件构造学习体会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在整个学习过程中,有一些力不从心的感觉,也是因为自己有些懈怠,导致最后的学习效果并不是特别好。课程所需的Java知识也很匮乏,虽然有一定C语言的基础,但是开课后直接需求用Java来编程做实验,还是有些慌乱的,整个做实验的过程就是在边学Java边做,导致效率也不是特别高、经常拖延。可以说,课程的难度和自己能力的不足让我对这门课程有些望而生畏、手足无措,加上自身学习比较慢、又没有比其他人付出的更多,感觉和这门课程所需要的学习进度逐渐脱节。每次看到身边的大佬侃侃而谈、或者写出一份又一份漂亮的代码,而我连读懂都还需要不少功夫的时候,我自己对自己的不足有些失望、甚至有一段时间在思考自己是否真正能胜任程序员这项职位。
其实我自己也清楚、课程内容多、难度大,只不过是为自己的不够努力找的借口罢了,归根到底,自己想要的结果和自己的付出是不匹配的。在这段时间里,我也认真思考了这门课程究竟想要教会我们什么,以及我自身对自己未来的定位是什么样的,也思考了我应该为自己的计划付诸什么样的行动。
我想,这门课程不仅仅是想让我们学会写写实验、做做测试,虽然这些能力和技术是必须的,但是更重要的是在学习过程中培养我们的程序员思想。这些通过我们的实验和课后讨论题也能看出。比如,如何选择合适的设计模式;如何选择合适的策略和设计模型;还有折中思想的应用,如:做项目时如何折中考虑项目的NFR,如何设计测试用例来平衡覆盖度和效率的问题;等等。
Java这门面向对象的语言也告诉我,一名优秀的程序员,除了编码能力要强之外,面向对象的思想也很重要。现如今多数编程语言都是面向对象的编程语言。而这些面向对象的编程语言的共同的精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如OCP,DIP等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。复用性思维:复用性设计,模块化思维就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否可以脱离这个系统存在,是否可以通过简单的修改参数的方式在其他系统和应用环境下直接引用,这样能极大避免重复性的开发工作。
除此之外,程序员对需求的理解能力也很重要。有时候经常会有拿到一份实验指导但是不知道该如何着手的情况,实际上这就是一种锻炼。
另外,还有一点很重要,那就是测试能力。软件研发作为一项工程而言,一个很重要的特点就是问题发现的越早,解决的代价就越低,程序员在每段代码,每个子模块完成后进行认真的测试,就可以尽量将一些潜在的问题最早的发现和解决,这样对整体系统建设的效率和可靠性就有了最大的保证。
还有很多思想上的启发,在此不做赘述。但确实也让我对自己的定位有了新的认识和思考。
这篇关于软件构造学习体会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!