什么是软件工程?软件工程是把系统的、可序的、可量化的方法应用到软件的开发、运营和维护的过程。它的目的是为了提高软件开发的、运营、维护的效率,并提高软件的质量、用户满意度、可靠性和软件的可维护性。它是需要面对人的。那么软件工程中有什么特别的难题呢?

软件,即创造足够好的软件。那么什么是好的软件呢?对于一般的程序员,也许没有bug的软件称为好的软件,其实软件工程的bug并不是只代表程序的bug,他还可以表示软件开发时开发流程的问题等。那么什么是bug?是错的事,还是程序运行不了?Bug其实指的是程序的结果不是按照预期的结果,对于客户来说,bug指的是该程序并没有实现他所期望的结果。对于程序员来说,做好一个软件得从实际出发,经历一个完整的流程最终交付于客户。

在一个软件的开发中,需要一个团队,其中每个人都负责各自的一部分开发,所以你写的模块会被你的合作人所调用,然而错误是不能避免的,那么怎样才能保证你的模块能被正常稳定的调用并且运行呢?答案就是写单元测试。一个好的单元测试应该准确、快速的保证程序基本的模块的正确性。单元测试要测试每一个方法和参数,必须由最熟悉代码的人来编写,这样单元测试才有意义。

在实际开发中我们会修改缺陷以及完善功能,那么怎么才能在在加入新功能的过程中,已有的功能可继续工作?我们就需要回归测试了。我们做回归测试的目的是:1、验证新的代码的确改正了缺陷2、同时要验证新的代码又没有破坏模块的现有功能。                         

谈论了软件工程的开发后,我们来谈谈软件工程师本身。作为一个学习者,我们的目标先是初级软件工程师,有一下几种成长:1、积累软件开发的相关的知识,提升技术技能2、积累问题领域的知识和经验3、对通用的软件设计思想和软件工程思想的理解。4、提升职业技能5、实际成果。在软件开发的团队工作中,稳定一致的交付时间是衡量一个员工能力的重要方面。