程序员与软件工程师有何区别

如题所述

软件工程师和程序员区别主要表现在以下几方面:
1、概念不同:软件设计师是指能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档的实用性人才;而程序员指的是从事程序开发、程序维护的基层工作人员。
2、工作职责不同:软件设计师主要职责是组织和指导程序员编写、调试程序,并时软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件;而程序员主要负责软件项目的详细设计、编码和内部测试的组织实施,对小型称件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。
3、拥有一定的编程能力的都能称为程序员,不需要考证;而软件设计师需要通过计算机软件资格考试的中级考试。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-23
第一,工程师不写黑箱程序
“程序=数据结构+算法”,但有很多程序,数据结构和算法都写得很棒,功能足够强大,系统足够复杂,但是——它很难调试,一跑起来就无法停止,而且谁也不知道程序现在到底在干什么,里面发生了什么。怎样的程序不是黑箱?你需要考虑它的层次划分,你需要考虑哪些(功能之外的)运行信息必须暴露和记录,以什么方式暴露记录,你甚至还需要考虑这些暴露和记录对性能的影响,以及程序需要对外提供什么操纵接口……
第二,工程师注意实现和接口分离
Java 面试的一道经典问题是:请描述抽象类和接口的区别。通常,大家都会知道“接口”和“实现”要分离。不幸的是,很多人理解的“接口”,只是侠义的特定语言提供的 interface,而没有考虑“接口”真正的含义。接口的真正含义是什么?计算机最擅长处理额是信息,它可以让信息脱离现实的障碍高速流动起来。如果说“实现”是干脏活累活,“接口”就是发出干脏活累活指令的窗口。脏活累活干一遍就足够了,但发指令的窗口却可以有千千万万。更具体一点说,完成功能的是程序员,完成功能并且设想它会在什么情况下使用,并且让人方便使用的,是工程师。我见过不少这样的程序:登录会话一开始放在本地内存里没问题,到了要切换到数据库里方便会话转移就得大兴土木,虽然要做的其实仍然只是存取而已;程序自动加载的数据出了问题,就根本不能手动加载;以前手动加载的数据,改成自动加载就要推倒重来……有没有接口意识,能不能真正区分接口和实现,这是区分程序员和工程师的一大标识。
第三,工程师注重功能的逻辑联系
我有时看到复杂的体系操作手册,1) 点这里;2) 点那里;3) 输这个…… 这些操作对应的逻辑含义那么准确,清楚就该是一次性主动完结的啊,把它们分裂开来的结果大大提高了体系的复杂度,既不便利保护,也不便利操作。最后来擦屁股的,只能是开发人员自个。本回答被提问者采纳
第2个回答  2017-06-23
这两个昵称没有本质区别,只是叫法不一样的。软件工程师分为初级,中级,高级之分。