很多人会把程序员与软件工程师混为一谈,其实这是错误的。
按照详细的标准,一个软件工程师的工作程序是这样的:需求分析——总体设计——详细设计——测试设计——软件开发编程,与此软件开发流程管理相适应的,软件企业需要有合理的人力资源结构。在这一结构中每一个人都按照分工协作的原则进行流水线作业,其中数量最多的是从事软件开发、编程等基础工作的人员。
而它们的区别就在于,软件工程师不仅仅是会编程的就行,还需要对整个软件工程的流程很了解,从立项、分析、建模、编程、测试、发布都有很高的要求。一般来说,软件工程师,关注于软件开发的全过程,程序员关注程序设计。程序员—软件工程师,他们和传统企业的工人一样,处于生产第一线,由于软件业特殊工作环境以及相对于社会平均的知识水平和工资水平而称为软件工程师。
但由于此种工作的特殊性,他们并不需要太高的学历,具有高中或中专学历,经过软件开发技术的职业培训就可以胜任。在印度,高中毕业没有上过大学的人,如果通过1-2年的计算机职业培训就可以进入软件企业做一名软件工人。这些工人不但降低了企业的人力成本,而且有利于企业的稳定发展乃至整个产业的发展。