⑴ 工程师与程序员
简单来说程序员负责软件产品的设计开发工作,实施工程师负责软件产品的安装与运维工作。
⑵ 程序员与工程师
有很多的公司他们会把程序员也称为工程师,所以程序员是工程师这一个大集合当中的一个子集,而工程师是不包含在程序员这个概念里面的。
⑶ 软件工程师和程序员到底有多大的区别
软件工程师是从事软件开发相关工作的人员的统称。它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位。这些岗位的分工不同,职位和/或级别不同,但工作内容都是与软件开发生产相关的。软件工程师是IT行业需求量最大的职位,稳居IT行业职位需求TOP10的第一位(第二位是高级软件工程师)。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)、.NET平台技术、C#、C/S
B/S程序开发,还有诸多如JAVA
SCRIPT、AJAX、HIBERNATE、SPRING、J2EE、WEB
SERVICE、STRUCTS等前沿技术。除此之外,关于网络工程和软件测试的其他技术也要有所涉猎,以利于操控全局。
软件工程师可谓是软件项目开发的掌舵者。一名优秀的软件工程师应当具有较强的逻辑思维能力,对于技术的发展有敏锐的嗅觉。虽然要求技术全面,但无须偏执于门门技术都精通,任何软件工程师都有自己的技术特长和偏向,对于自己手中的技术,可有精通-掌握-熟悉-了解之分,根据工作需要和职业发展的具体情况来划分。
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。
知道了吗?小林凡
⑷ 软件工程师与程序员的区别
软件工程师它是一个广义的概念,它包括程序员这个岗位。再说明白一点就是程序员也可以叫做软件工程师,但是软件工程师不只有程序员一个岗位。
⑸ 驱动工程师是程序员吗
工程师不是程序员,还是有区别的。
可惜,很多软件开发人员未必清楚两者的差别,甚至做了很久也只算程序员而不算严格意义上的工程师。所以我就自己的观察和经验,谈谈程序员和工程师的差别。
第一,工程师不写黑箱程序。
“程序=数据结构+算法”,这个着名的公式大家都知道,不幸的是,它不适合描述工程领域或者现实世界的程序。有很多程序,数据结构和算法都写得很棒,功能足够强大,系统足够复杂,但是——它很难调试,一跑起来就无法停止,而且谁也不知道程序现在到底在干什么,里面发生了什么。
别觉得好笑,我遇到过很多工作三四年甚至五六年的开发人员,仍然不停地生产黑箱程序:出现问题的第一反应是直接杀掉进程重启(天哪你们的程序不能安全关闭的吗?)。当然还有更生猛的,直接用开发机连上生产数据库(防火墙上开个洞)去调试。
你说他们技术不好吗?明明各种技术问题也能搞定。你说他们没有系统意识?做过的程序也不简单。但是,他们做的充其量只能叫“程序”,而不是工程上成熟的“系统”。
怎样的程序不是黑箱?你需要考虑它的层次划分,你需要考虑哪些(功能之外的)运行信息必须暴露和记录,以什么方式暴露记录,你甚至还需要考虑这些暴露和记录对性能的影响,以及程序需要对外提供什么操纵接口……当你把这一切都考虑清楚,写出能够让运行细节“尽在掌握中”的程序的时候,你的一条腿就迈进了“工程”的大门。
这方面,互联网和软件开发的大厂会更加关注一些,但也不是说个人就毫无追求的空间了。网络爬虫大家都会写,大家也都知道如果要数据抓得准,调试起来很麻烦。我有个朋友在某大厂写过一套“可视化”的爬虫,可以用逐步操纵语句的执行,迅速定位问题所在。这种水平的工程师,属于可遇而不可求的类型,每次说起来大家仍然啧啧称赞。
第二,工程师注意实现和接口分离。
Java 面试的一道经典问题是:请描述抽象类和接口的区别。通常,大家都会知道“接口”和“实现”要分离。不幸的是,很多人理解的“接口”,只是侠义的特定语言提供的 interface,而没有考虑“接口”真正的含义。
程序员和工程师有什么不一样?
接口的真正含义是什么?计算机最擅长处理额是信息,它可以让信息脱离现实的障碍高速流动起来。如果说“实现”是干脏活累活,“接口”就是发出干脏活累活指令的窗口。脏活累活干一遍就足够了,但发指令的窗口却可以有千千万万。
更具体一点说,完成功能的是程序员,完成功能并且设想它会在什么情况下使用,并且让人方便使用的,是工程师。我见过不少这样的程序:登录会话一开始放在本地内存里没问题,到了要切换到数据库里方便会话转移就得大兴土木,虽然要做的其实仍然只是存取而已;程序自动加载的数据出了问题,就根本不能手动加载;以前手动加载的数据,改成自动加载就要推倒重来……
有没有接口意识,能不能真正区分接口和实现,这是区分程序员和工程师的一大标识。
第三,工程师注重功能的逻辑联系。
很多系统都在不断的变化和改进过程中,程序员看到的是功能点,工程师看到的是功能点之上的逻辑。
任何系统当然都是由若干功能构成的。但在功能点之上,还需要一张有逻辑意义的大网,才能把功能点组合起来,把复杂度降低,成为大家能理解的对象。最简单的“登录”,就包含数据输入、数据验证、登录信息记录等等功能,“登录”是这些功能的逻辑集合,也是理解这些功能的基础。
随着时间的推移,业务的增长,新功能可能越来越多,比如用户数据的加载,对好友的通知,广告的推送准备等等。这些功能实现起来当然都容易(因为很具体),但功能堆积的后果是复杂度急剧上升,因为功能之间的逻辑联系被切断了。所以,工程师必然需要思考,这些功能应该怎么组合,放到哪些具有逻辑意义的动作——比如“登录”里去?正是经过这样持续不断的思考,系统的复杂度才能够被一直维持在较低的水平,容易让大家理解。
这个例子看起来很简单,但做起来却没那么容易。我有时看到复杂的系统操作手册,简直让人哭笑不得:1) 点这里;2) 点那里;3) 输这个…… 这些操作对应的逻辑意义那么准确,分明就该是一次性自动完成的啊,把它们割裂开来的后果大大提高了系统的复杂度,既不方便维护,也不方便操作。最后来擦屁股的,只能是开发人员自己。
⑹ 为什么计算机从业者多被称为程序员,而不是工程师
随着经济不断发展,现在电子类物品层次不穷,那么在电子类物品层次不穷的过程中,也就意味着会衍生出很多计算机行业的人才。可是在日常生活中,为什么计算机从业者总是被称为程序员而不是工程师?
对于工程师来说,在日常生活中可能需要做到:计算机的程序设计员、软件测试师、系统的分析师、软件项目的管理师、系统架构设计师、网络的工程师、网络建设的工程师、计算机操作、信息系统安全师、信息系统管理师、信息系统监理师、信息系统评估、资源开发与管理人员、信息系统设计人员等等。所以每天的职责还是比较繁重的。
⑺ 工程师与程序员谁厉害
等于说是:
硬件程序员和软件开发程序员相比,谁发展比较好呗?
近几年,全球互联网发展迅速,让软件人才变得炙手可热。供求关系决定价格,加之软件业的成本主要是人(硬件需要更多的设备投入),软件工程师的薪资也更为丰厚。
“在大型设备比如工控和高端医疗器械领域,硬件的处境就好很多,但对知识的要求也会高一些,不光数字电路和嵌入式底层软件,模拟电路,大功率,高可靠性设计的知识也是必须的。没有现成的芯片解决方案;没有现成设计可供参考,系统的庞大,很长的生命周期,可靠性设计相关的需求(出错可能出人命),都决定了硬件有更大的空间去发挥。深度的硬件技术也有了用武之地。”不过,在这种复杂度下,硬件工程师的受重视程度也是和待遇跟软件相当。
硬件学习难度比较大,特别是开始阶段,必须从电子技术,信息方面的只是开始。这些只是基础,目前掌握计算机核心硬件技术的公司都是老外。基本上,我们更多的是应用别人的东西。但是,就电子硬件技术来说,从原理图设计,PCB线路板设计需要更多的是经验。所以作为一个电子工程师往往是越老越吃香。
软件学习难度比硬件低,而且发展速度很快。需要掌握的基础是操作系统,数据结构,数据库,软件工程等基础只是,另外就是掌握一门或多门编程语言。对软件来说,经验没有硬件那么重要,知识和一个人的智商反倒比较重要。所以这是一个年轻人热衷的行业,也是年轻人短期就可以拿到高薪的一个行业。
从发展前景看都不错,只不过硬件工程师相对人数数量会少一点,待遇方面整体来讲软件会高一些,但具体到个人在选择的时候还是以个人的兴趣点为依托,特别是起步阶段不要太在意工资高低,即使在工资非常高的行业水平达不到一样还是适应不了,从就业的广度看软件工程师就业的机会更多一些,但参与竞争的人也多,就业机会多少主要是影响刚就业,进入技术成熟期阶段就是看个人能力和发展潜力了,无论做什么都要想办法让自己迈进技术金字塔的顶峰,所以入行阶段看不出这些表面的东西,还要侧重内在驱动力,如果就是对某一方面刚兴趣直接去选择,没必要在意当前一兵一卒的得失,职业生涯路子长着那。
⑻ 工程师和程序员的区别
第一、工程师不写黑箱程序
“程序=数据结构+算法”,这个着名的公式大家都知道。不幸的是,它不适合描述工程领域或者现实世界的程序。有很多程序,数据结构和算法都写得很棒,功能足够 强大,系统足够复杂,但是——它很难调试,一跑起来就无法停止,而且谁也不知道程序现在到底在干什么,里面发生了什么。
第三、工程师注重功能的逻辑联系
很多系统都在不断的变化和改进过程中,程序员看到的是功能点,工程师看到的是功能点之上的逻辑。
任何系统当然都是由若干功能构成的。但在功能点之上,还需要一张有逻辑意义的大网,才能把功能点组合起来,把复杂度降低,成为大家能理解的对象。最简单的“登录”,就包含数据输入、数据验证、登录信息记录等等功能,“登录”是这些功能的逻辑集合,也是理解这些功能的基础。
⑼ “软件工程师”和“程序员”究竟有什么区别
软件工程师所要具备的条件是:对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息。一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
⑽ 软件工程师与程序员的区别
软件工程师它是一个广义的概念,它包括程序员这个岗位。再说明白一点就是程序员也可以叫做软件工程师,但是软件工程师不只有程序员一个岗位。