java软件开发工程师师,我指的是工程师,是不是一定要会两种或以上编程语言?

[转载]软件工程师、开发工程师、工程师什么区别
软件开发工程师有程序员,软件设计师(中级程序员),系统分析师,架构师(高级程序员),
一般来说软件工程师都是指软件开发工程师,但是有时也包裹软件测试工程师,软件架构师,软件评测师和工程风险估计工程师
普通开发人员与软件工程师的区别 作者 冰晓 日期
推荐昨天在公司收到一封内部邮件,邮件中有个很有意思的PPT,节选一部分放出来
普通开发人员与软件工程师的区别:
A、普通开发人员:
掌握了计算机基础知识;
熟悉计算机资源,学会了编程语言,喜欢卖弄技巧,喜欢比较编程语言的优劣;
以能编出某种特殊功能的程序为荣,不懂原理,不求甚解;
喜欢个人开发,不重视文档编写;
B、软件工程师:
计算机基础知识扎实;
掌握两门以上编程语言,很少停留在表面比较编程语言的优劣;
以编写出用户满意的高质量软件为荣。
懂得个人开发和团队开发的利弊,文档规范,齐全。
A、普通开发人员:
只重视功能的实现,不重进度和质量的把握。
怕被“管”得太死,动不动就说限制了思路,没有发挥空间。
不喜欢做测试工作,认为测试低人一等,从来没有做过测试工作。
只根据自己的爱好学习技术;
B、软件工程师:
懂得在进度、质量(功能)和成本之间平衡。
懂得规范的目的在于重用,重用有利于提高效率和集中精力创新。
认为测试工作比编码更具挑战性,自己经常为同伴的代码做白盒测试。
根据企业项目的需求和自己发展目标的共同点选择学习内容和方向;
A、普通开发人员:
认为别人程序很差,不喜欢看别人的代码;
总认为自己比业务专家还更理解需求。
项目开始时,喜欢说:“没问题,SOEASY”。
项目大大延期时,喜欢说:“设计太烂,没法编程”。
B、软件工程师:
喜欢为同事走查代码,并以此获得学习他人优点的机会;
懂得自己只是可能比业务专家更懂编程。
项目开始时,喜欢问:“那是什么?这是为什么?”。
项目大大延期时,喜欢说:“我为什么就没想到…”。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。  英文原文:
  对程序员来说,编程语言就是武器,但有的武器好用,有的武器不好用,有的武器甚至会杀了自己
  C 语言是 M1 式加兰德步枪,很老但可靠。
  C++是双截棍,挥舞起来很强悍,很吸引人,但需要你多年的磨练来掌握,很多人希望改用别的武器。
  Perl 语言是燃烧弹,曾经在战场上很有用,但现在很少人使用它。
  Java 是 M240 通用弹夹式自动机枪,有时它的弹夹是圆的,但有时候不是,如果不是,当你开火时,会遇到 NullPointerException 问题,枪就会爆炸,你被炸死。
  Scala 是 M240 通用机枪的变种,但它的使用手册是用一种看不懂的方言写的,很多人怀疑那只是一些梦话。
  JavaScript 是一把宝剑,但没有剑柄。
  Go 语言是一种自制的&if err != nil&发令枪,每一次发射后,你都必须要检查它是否真的发射了。
  Rust 语言是一种 3D 打印出的枪。将来也许真的能派上用场。
  bash 是一个十分碍手的锤子,你抡起它时会发现所有东西看起来都像钉子,尤其是你的指头。
  Python 是一种&v2/v3&双管枪,每次只能用一个管子发射,你永远不知道该用哪个管子发射好。
  Ruby 是一把外嵌红宝石的宝刀,人们使用它通常是因为看起来很炫。
  PHP 是水管子,你通常会把它的一段接到汽车的排气管,另一端插进车窗里,然后你坐进车里,开动引擎。
  Mathematica 是一种地球低轨道粒子大炮,它也许能够干出很神奇的事情,但只有付得起费用的人才能使用它。
  C#是一种强悍的激光大炮,架子一头驴子上,如果从驴子上卸下来,它好像就发不出激光。
  Prolog 语言是一种人工智能武器,你告诉它要做什么,它会照做不误,但之后,它会弄几个终结者出来,烧掉你的房子。
  Lisp 语言是一把剃须刀,有很多款式。只有寻求刺激和危险的人才会使用它。君,已阅读到文档的结尾了呢~~
软件开发工程师(程序员)的就业前景如何?,程序员就业前景,程序员的就业前景,java程序员就业前景,程序员就业和发展前景,软件程序员就业前景,2015程序员就业前景,软件开发就业前景,ios开发就业前景,安卓开发就业前景
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
软件开发工程师(程序员)的就业前景如何?
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口明星软件工程师的10种特质 - 编程语言 - ITeye资讯
相关知识库:
  如今,每家公司都似乎成了科技公司。从软件创业公司到投机性投资公司、制药巨头和媒体巨头,它们都越来越多地加入到软件业务行列。
  代码质量不仅成为了一个必需品,更成为了一个竞争优势。因为众多公司围绕软件而竞争,开发软件的人——软件工程师正显得越发重要。但是,你该如何发现那种百里挑一的程序员呢?在本文中,我们简明扼要地列出了明星开发人员的10种特质。
1. 热爱编程
2. 完成事情
3. 持续重构代码
4. 使用设计模式
5. 编写测试
6. 善用现有代码
7. 专注可用性
8. 编写可维护的代码
9. 能用任何语言编程
10. 知晓基本的计算机科学
  1. 热爱编程
  编程是一种为了满足兴趣而心甘情愿去做的劳动(Programming is a labor of
love)。和其他任何职业一样,唯有真正的热情,才能完成真正的伟大事情。这里有个误解,认为编写代码是机械化并纯科学性的。事实上,最优秀的软件工程
师是工匠,他们能把能量、独创性和创造力融入到每一行代码中。伟大的工程师知道何时该把代码雕琢至完美,知道何时把大型系统像拼图一样组装到一块。热爱编
程的工程师从构建软件中获得满足,就好比一位作曲家在完成一部交响乐后而欣喜若狂。正是兴奋感和成就感,才造就了喜爱编程的明星工程师。
  2. 完成事情
  有很多技术人员只谈论软件而不编写代码(只说不做型)。而伟大软件工程师会真正去编码,这也是他们最为重要的品质之一。他们是实际做事的人。聪明人都
知道,解决问题的最佳途径是直面问题,而不是花上数周来设计复杂又不必要的架构和函数库。优秀工程师应当会问:解决手头问题的最简单方法是什么?最近的软
件开发方法——敏捷实践,正是专注那个。它的思想是,把复杂的项目拆分为短小的迭代,每个迭代只关注一小部分的增量功能。因为每个迭代对应的编码只需要数
周,所以功能易于管理并简单。
  3. 持续重构代码
  编码很像雕刻。要像艺术家一样不断完善自己的作品,软件工程师也要通过可能的最佳方式来持续完善自己的代码,以达到目标。重新塑造代码的原则称为“重
构”,Martin
Fowler在他的创意书中有相应描述。重构背后的原始思想是:改善代码而不改变其功能,移动调整部分代码以确保系统不腐,还有确保系统完成基于当前需求
该完成的事。持续重构可以让开发人员解决另一个著名的问题——“黑盒遗留代码”(这个问题基本无人想触及)。
  几十年的软件开发文化要求我们,不应该去改变正常工作的东西。然而,随着时间推移,问题是我们成为了老旧代码的奴隶,老旧代码变得不稳定和不兼容。而
重构正好可以改变这一状况,因为我们是代码的主人,不是它的奴隶。重构在工程师和代码之间建立起持续的“对话”,并带来所有权、确定性、自信心和系统的稳
  千万不要成为老旧代码的奴隶。如果代码是他人所写,或许你可以轻易推脱责任。但大多数时候,那些代码是自己所写,要拿得起放得下,旧代码该埋时,就把它埋了!
  4. 使用设计模式
  自从所谓的“四人帮”(Erich Gamma、Richard Helm、Ralph Johnson和John
Vlissides)发表他们的著作——《设计模式》后,全世界的软件工程师一直都在讨论模式。在我们所处世界,不管是自然界还是人类行为,模式无处不
在。软件工程自然也不例外。模式就是不断重现的跨语言跨系统的场景和机制。一位优秀的工程师通常能识别并利用模式,而不是受制于模式。工程师不应(强制)
让系统去适应某种模式,而需发现在系统中使用模式的时机(恰当使用模式)。在使用模式来确保正确性时,应借鉴利用前人的智慧结晶,使用以前能正当解决特定
工程问题的方法。但请切记:模式不是万灵药;不要为了使用设计模式而使用设计模式。
  5. 编写测试
  曾有段时间,软件工程师们认为测试不值得他们去做。然而,如果你不做测试,你怎么能确保代码就能正常工作呢?敏捷实践中的“单元测试”已获得普遍认
可,因为它注重编写测试来反映代码是否有效。随着系统增大,测试也随之增大。有经验的工程师知道并了解测试的价值所在,因为测试的目的就是创建一个能正常
运作的系统。优秀的工程师通常会确保出现过一次的Bug不会再出现第二次。但优秀的工程师也知道,不应该浪费时间写那些琐碎或多余的测试,而需要专注测试
各个组件中的核心部分。
  6. 善用现有代码
  “重新发明轮子”一直是软件行业中的巨大问题之一。从发明新语言到从写函数库,忽视并重写那些已经存在并已能工作的奇怪驱动力,已经造成大量软件开发
的失败案例。一位明星工程师会专注三种基本类型的重用:第一,内部基础架构的重用,相应代码是他自己或同事编写的;第二,使用第三方的函数库,比如
JDK。最后,研究使用某些大型网络服务商提供的相应服务,比如Amazon。总之,正确善用现有的代码,使得软件工程师能真正专注于最为重要的事情上
——应用程序本身。
  7. 专注可用性
  优秀的工程师通常都专注于用户。无论用户是企业还是个人,无论是为消费型的软件公司还是投资银行,需要关注的都是可用性。用户如何和系统交互?系统是
否提供一种简单、直接和平稳的操作体验?有种说法,因为软件工程师是技术人员,他/她和“用户如何与系统交互”没有关联,这种说法严重错误。优秀工程师努
力工作是为了什么?不正是让系统简单并易于使用。他们无时无刻都会想到用户,不会尝试去发明那些令人费解,只有极客才能理解并欣赏的东西。
  有些时候,一些软件工程师过于投入,反而忘记所编写的程序/软件,是供他人使用,不是做给自己看的“艺术品”。所以,在软件开发过程中,一直要把“用户”放在心中。
  8. 编写可维护的代码
  软件开发界的另外一个小秘密是:编写优秀代码和糟糕代码所花费的时间是一样多。一位训练有素的工程师,他/她会从第一行代码开始就考虑可维护性和代码
的演化。没有任何理由编写“丑陋”的代码、长达数页的函数,或是稀奇古怪的变量名。优秀的工程师编写代码会遵循命名惯例,代码编写紧凑、简单和不过度炫耀
聪明。代码的每一行,都应恰如其分地展现出其原有目的。在给不便理解的代码(块)合理注释时,别忘了命名规则。清晰明了的函数名和变量名可以让代码不言而
  在编码时,有些程序员会有这种心态:过一会儿再来修改或完善某部分代码或某条语句。但谁知这一“过一会”竟然是“一天”、“一周”、“一个月”或“一
年”,甚至以后根本就没机会再回头修改。所以,尽量别妥协写出暂时堪用的代码。否则,不仅不会节省开发时间,也可以阻碍整个进程。当然也不利于后续维护人员的工作。
  9. 能用任何语言编程
  优秀的软件工程师活血有自己一门特别钟爱的编程语言,但从不会执迷于当中。如今已有很多优秀的编程语言,也就是说,如果你只会使用其中一门语言,说明
你缺乏多样性。你可以用Java、C#或C++编写任何现代软件,可以用PHP、Perl或Ruby编写任何网站的后台。简而言之,编程所用语言,远远没
有语言相应的函数库重要。优秀的工程师能够认知到这一点,并愿意去学习新语言、新函数库和构建系统的新方法。
  10. 知晓基本的计算机科学知识
  最后,但肯定不是优秀工程师最不重要的特质就是:扎实的基础。优秀的工程师或许并没有计算机科学的学位,但他/她必须知道基础——数据结构和算法。如果不知道哈希表,或者不知道链表和数组之间的差别,你如何构建一款大型软件?这些都是每位从事软件开发的开发人员应当知道的。算法也同样重要,从二分
查找到各种排序,到图形遍历,一位明星工程师必须知道并内在消化这些基础东西。因为这些基础就是你在构建任何现代软件中做抉择时的必备品。
  结束语
  以上就是区分伟大软件工程师的诸多特质。其中讨论的“热情”,是非常重要的。代码重用、设计模式、基础数据结构和算法都是必须知道的,而敏捷实践中的重构和单元测试则有助于工程师应对复杂的软件。尤为重要的是,明星工程师相信简洁和常识。也正是这些信念,帮助他们成功构建当今世界所需的看似不可能又错综复杂的系统。
  引用网上看到的一段话:对于知识,要求知若渴;对于自己,要虚怀若谷。保持开放的心态,保持孩童般的好奇心看待新鲜事物。当今世界,日新月异,不仅要从书中获取知识,更要尽可能从其他途径来学习经验和知识,在求知过程中,《》。
  如果你觉得一位明星软件工程师还应具备其他特质,请在评论或微博中和大家分享讨论。
  本文出处:在线 - 博客
  本文链接:
  Via: 编译:伯乐在线 组 - @关关
  如需转载,但请注明文章来源和超链接等版权信息,否则视为侵权,谢谢合作!
成为一个好程序员的还需要的重要特性* 善于沟通,注重团队合作&& 在一个团队之中,一个出色的程序员需要能很好的理解需求,讨论设计。* 优良的解决问题能力,能够缜密有绪的思考问题&& 很好的分析问题能力可以帮你找到合理的问题解决方案,基于一个好的方案才能写出优良的代码
顶一个!!!!
我错了,只是实验一下回复有没有做文字限制
编程的人也没有那么惨吧。
langyu 写道chex227 写道编程的都是SB顶这句,尽管我就是一个顶,我也是~无奈
写代码就是个杯具。
&& 又有激情了
看完之后,觉得自己应该改变一下了,自从做软件开发,起初是因为爱好编程而选择这一步,如今工作两年多时间,认为编程只是为了工作,挣点钱罢了,而并没有当成爱好,兴趣也不浓厚,但工作起来是非常认真的对待,感觉以下几点表现还不错:
2. 完成事情,争取把事情做漂亮,能多想一步就多做一步,不留下漏洞
3. 持续重构代码,把代码简法化,不想弄的太复杂,也是为维护着想
5. 编写测试,这点很有必要,防止牵一发而动全身&
7. 专注可用性 ,每次做事都思考的较深
8. 编写可维护的代码 ,这点最重要,因为看别人代码太痛苦了,所以希望自己能减轻别人的痛苦.
还需要继续加油.
chex227 写道编程的都是SB顶这句,尽管我就是一个
明星啊,都谈到明星啦,
下一篇是不是叫 明星软件工程师之潜规则& ,你懂的!
写的不错,软件工程师是这样锻炼出来的 顶
编程的都是SB
引用简而言之,编程所用语言,远远没 有语言相应的函数库重要。优秀的工程师能够认知到这一点,并愿意去学习新语言、新函数库和构建系统的新方法。的确··& 每种语言都能带来不同的便利···最近对Groovy很感兴趣..
这不是说我吗?
说的挺对的。
说的好,程序员时刻保持孩童般的心
Copperfield 写道"知晓基本的计算机科学知识"非常赞同!这一点貌似很重要,你们懂的
& 上一页 1

我要回帖

更多关于 嵌入式软件开发工程师 的文章

 

随机推荐