阅读更多

16顶
4踩

编程语言

原创新闻 完美程序员的10种品质

2010-12-10 13:35 by 见习编辑 jobbole 评论(23) 有15955人浏览


 

       谁是完美程序员?著名博客作家Alex Iskold在《明星软件工程师的10种特质》一文中给出这个问题的答案:

  1. 热爱编程
  2. 完成事情
  3. 持续重构代码
  4. 使用设计模式
  5. 编写测试
  6. 善用现有代码
  7. 专注可用性
  8. 编写可维护的代码
  9. 能用任何语言编程
  10. 知晓基本的计算机科学

  这是一份合理的清单,但是这份清单侧重于次要特征,这些特征只是更深层次品质所产生的结果,并且这是一份理想化的清单。你认为儿童网站的Flash程序员跟B2B财务交易服务公司的软件工程师品质会相同吗?那么,我们该如何从众多开发者中甄别出一名完美的程序员呢?

  寻找完美程序员的最终标准:完美程序员能开发出满足客户期望的优秀软件。

  因此,令人震惊的事实是完美程序员可能只精通一种编程语言,不知道什么是设计模式,并且不会在地下室里夜夜编程去创造下一个Google。我们不能客 观地衡量程序员的完美程度,就像测量自己胳膊的粗细那样。完美程序员的完美之处只在于他们按时开发了一个高质量、可用的并且可维护性高的软件系统(一个优 秀的系统),并且这个系统达到了用户的要求。

  综上所述,我们可以得到如下几个推论:

  • 1.一个完美的程序员应该能够及时解决用户的问题,或者能在一段合理的时间内解决。所有程序员的品质都与用户的问题以及背景有关:
    • 有些问题需要创造力,而有些则需要具体的方向
    • 有些问题通常需要专业技术,而有些则需要高深的业务知识
    • 有些问题需要仔细分析,而有些则需要一些社会技能和直觉
  • 2.一个完美的程序员应该明白什么是“完成”,并且关注产品质量。对于一个软件系统,“完成”的意思远非编码的结束。一个完美的程序员会完成所有必要的步 骤来开发这个系统:测试,优化代码以使代码量保持最小、高效以及可读,使系统可用并且保证顾客和用户能够喜欢这个系统。


  完美程序员的10种品质

  完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:

  1. 才智非凡 - 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强 (范围:用简单方式解决复杂问题)

  2. 魅力超群 - 优秀个性的结合体 ( 注重细节 VS 富有创造力、灵活多变 VS 恪守典章、善于交际 VS 特立独行)

  3. 术业专攻 - 具有一定的知识和经验,能在特定条件下利用专业技能解决用户问题(范围:从一个领域内的专家,到在不同领域都有丰富经验的程序员)。

  4. 积极主动 - 关心工作,对编程表现出了很高的热情、兴致以及热爱(范围:从工作只为钱的人,到在业余时间不计报酬实现有趣的想法的人)。

  5. 成熟稳重 - 精通并且运用合理的软件开发原则、敏捷方法和实践、设计和体系结构模式、领域驱动设计、单元测试、重构(范围:从一个充满激情的业余爱好者,到一名能够不停地发明新方法的黑带大师)。

  6. 实用主义 - 明白什么事是可能的,喜欢简单实用并且避免过度设计;明白业务目标,贴近现实并且专注于该做的事情(范围:从自学成才的艺术家,到自我激励的务实的成功人士)。

  7. 通力协作 - 能够倾听并且接受有好点子的人,毫无保留地支持团队的目标,跟别人分享自己的想法和知识,并且愿意指导别人(范围:从异见者到一个团队的领导)。

  8.善于沟通 - 能够高效地与别人交流和交换想法,支持那些对系统具有清楚的解释、判断和解答的知识和决定(范围:从一个安静内向的人,到一个系统解说员)。

  9. 潜力无限 - 拥有职业目标、出色的技能、好奇心、较强的适应性,并且能够不断自省(范围:从一个达到极限的人,到未来的编程之星)。

  10.远见卓识 - 拥有更高的视野,了解相关的背景、趋势和人员,为达到团队和公司的潜在目标采取行动,致力于为软件系统建立共同愿景(范围:从对编程仅仅是感兴趣的人,到有远见的企业家)。


  如何为特定问题找到完美的程序员呢?

  能够找到具有最优品质的程序员当然更好,但是,这些另类都身价不菲,通常可遇而不可求或者会对你的问题感到厌烦。因此,可以采取以下措施:

  • 1.在雇佣他们之前先理解问题,评估每种品质要达到的水平,并且准备好问题甚至测试。
  • 2.组建一个完美的团队,但不一定用完美的程序员。只要保证团队成员的部分品质达到了应有的水平。对每位团队成员来说,大概只有协作才是最重要的品质。
  • 3.创造必要的环境,促使这些优秀品质能够有效发挥作用。使用正确的领导风格,并且使程序员感到愉快。


  拥有优秀核心品质的人会提出最优的方法,包括编写单元测试和重构;学习设计模式,并且最重要的是:开发出众并实用的软件。



  后话

  完美程序员不是天生的,他们只是在解决问题时做了正确的事。如果你对完美程序员还有其他看法和补充,欢迎你在评论和微博中分享。


  本文出处:伯乐在线 - 职场博客
  本文链接:http://www.jobbole.com/entry.php/380

  Via:softwarecreation 文章推荐:关关  编译:伯乐在线 敏捷翻译组 - 朱勇

  如需转载,但请注明文章来源和超链接等版权信息,否则视为侵权,谢谢合作!

  • 大小: 21 KB
来自: www.jobbole.com
16
4
评论 共 23 条 请登录后发表评论
23 楼 vurcify 2012-08-20 10:53
明星程序员。。。
22 楼 man1900 2012-07-26 11:53
写得非常好,达到这要求的程序员,都是明星程序员,所以不好找,待遇当然也不错
21 楼 raozhengyong 2012-07-24 11:42
yp465524092 写道
quhxuxm.quh 写道
我觉得大部分程序员都能做到这些点,重要的是公司是不是给了我们足够的理由去做,这些理由包括了很多,比如:工资,待遇,地位 等等。如果这些都能够达到让人满意的程度那么所有程序员都将是完美的,反之则不然,试想公司整天再利用我们,我们对公司的态度自然也就是赚钱而已,谁会把公司的东西真正的当做自己的杰作来看待呢?

楼主的文章可以说是给公司高层看的,这些高层整天只想着如何用更低的价钱去雇佣更完美的员工,这天嚷着各种好习惯,各种“应该如何如何”,殊不知提高对程序员的待遇和地位往往才是激发(甚至仅仅是开启)一个程序员真正潜质的利器。

所以,与其贴出这种文章,不如贴一些“如何是程序员变得完美”或者“如何开发程序员潜质”的文章。

顶、顶、顶。。。。顶死。就是这样

重赏之下必有勇夫,赏金不高,有人为你卖命?
20 楼 hlylove 2011-11-17 15:24
9. 能用任何语言编程
厉害
19 楼 Leon.Wood 2011-02-22 17:14
又见TopN
18 楼 gwpking8419 2010-12-22 08:33
太理想了,人都没有完美的,还能要求程序员完美,这只能使我们的美好夙愿和追逐的终极目标
17 楼 H_eaven 2010-12-15 18:22
橘生淮南则为橘,橘生淮北则为枳.  何必JJWW.
16 楼 yp465524092 2010-12-14 11:44
quhxuxm.quh 写道
我觉得大部分程序员都能做到这些点,重要的是公司是不是给了我们足够的理由去做,这些理由包括了很多,比如:工资,待遇,地位 等等。如果这些都能够达到让人满意的程度那么所有程序员都将是完美的,反之则不然,试想公司整天再利用我们,我们对公司的态度自然也就是赚钱而已,谁会把公司的东西真正的当做自己的杰作来看待呢?

楼主的文章可以说是给公司高层看的,这些高层整天只想着如何用更低的价钱去雇佣更完美的员工,这天嚷着各种好习惯,各种“应该如何如何”,殊不知提高对程序员的待遇和地位往往才是激发(甚至仅仅是开启)一个程序员真正潜质的利器。

所以,与其贴出这种文章,不如贴一些“如何是程序员变得完美”或者“如何开发程序员潜质”的文章。

顶、顶、顶。。。。顶死。就是这样
15 楼 zha_zi 2010-12-13 13:37
毫无意义的东西
14 楼 quhxuxm.quh 2010-12-13 11:10
我觉得大部分程序员都能做到这些点,重要的是公司是不是给了我们足够的理由去做,这些理由包括了很多,比如:工资,待遇,地位 等等。如果这些都能够达到让人满意的程度那么所有程序员都将是完美的,反之则不然,试想公司整天再利用我们,我们对公司的态度自然也就是赚钱而已,谁会把公司的东西真正的当做自己的杰作来看待呢?

楼主的文章可以说是给公司高层看的,这些高层整天只想着如何用更低的价钱去雇佣更完美的员工,这天嚷着各种好习惯,各种“应该如何如何”,殊不知提高对程序员的待遇和地位往往才是激发(甚至仅仅是开启)一个程序员真正潜质的利器。

所以,与其贴出这种文章,不如贴一些“如何是程序员变得完美”或者“如何开发程序员潜质”的文章。
13 楼 tdktdktdk 2010-12-13 10:06
搂住说的这个,更适合是完美的IT业管理者。偏移多了。
12 楼 houzhaowei 2010-12-13 09:25
这样的人是不甘做“程序员”的。
11 楼 Leon.Wood 2010-12-13 09:22
看标题又是一片浮云
10 楼 faylai 2010-12-13 09:21
任何语言编写,我天哪怎么可能呢???
9 楼 sammyfun 2010-12-12 22:56
楼主说的这种人绝对是按年薪算工资的。
8 楼 fish2007 2010-12-12 22:02
没有这样的程序员,也不要奢望做到这些,请不要误导人
7 楼 nighthawk 2010-12-12 21:40
哎,悲哀。je成了某些网站的软文区了
6 楼 BingOffice 2010-12-12 16:22
wangxinpier 写道
我是做java的,但dotnet实在让我适应不了。。。。。

。。。
5 楼 猫咪咪的Java世界 2010-12-11 11:54
要做到这些,得多少年啊? 
4 楼 wenxiang_tune 2010-12-11 11:40
这种人中国没有。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C# MES通信从入门到精通(9)——c#使用visual studio2019社区版部署webservice服务

    2.2、 IIS部署 HTTP 错误 500.19 - Internal Server Error 解决步骤 由于权限不足而无法读取配置文件。2.5、由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。2.4、 HTTP 错误 403.14 – Forbidden Web 服务器被配置为不列出此目录的内容。解决办法是添加一个Everyone账户。2.3 、在计算机上没有找到WAS服务。

  • vs.net中文教程

    自己用的学习c#中文资料,通俗易懂,分享给大家。 。

  • C# 超详细的WebService创建、发布与调用(VS2022)

    需要注意一下创建项目时是否开启了高级中的https,如果不记得也没有关系,直接打开项目的属性,修改Web中的项目URL,将https改为http,重新启动项目即可。右键项目,选择发布,选择文件夹,点击下一步,选择发布的文件夹位置,这里可以自己选择,但是一定要记住你选择的位置。添加Web 引用(W)-在打开的界面中的URL中输入刚刚复制的网址-点击蓝色箭头-添加引用,即可在解决方案资源管理器中看到我们所添加的服务引用。注:这里有个小细节,当我们更新Web服务里面的内容的时候,再次发布的时候我们需要注意。

  • Visual C#.NET Web服务开发实战指南

    本文还有配套的精品资源,点击获取 简介:《Visual C#.NET中文版Web服务开发基础》是一本向初学者和中级开发者介绍Web服务开发的指南,详细解释了如何利用C#语言和.NET框架进行Web服务的创建和管理。书中涵盖了Web服务的核心概念,如SOAP、WSDL、UDDI以及C#.NET编程实践,还包括了创建Web服务的具体步骤、SOAP消息处理、WSDL文档生成、调试...

  • asp.net网站服务器,vs2010制作简单的asp.net网站

    直入主题:打开visual studio 2010程序开发软件单击菜单栏的文件,依次选新建->网站->ASP.NET空网站,这里我们选择空网站,利于今后DIY自己的网站,最好什么从头来,便于对各类架构的理解(若是选择ASP.NET网站也行,只是里面已经集成了一些东西)这里我们默认解决方案的名称为WebSite1,单击确定后进入网站的代码页面,在右边的解决方案资源管理器里只有一个web....

  • VS2017创建WebAPI分层项目(2)——Dao层和Service创建

       上个笔记中以及创建好了Model层,接下来就是创建Dao层和Services层了,下一个笔记中还有WebAPI层(属于Controller层),它们的关系是从右到左引用依赖,类似于JavaEE中的分层。当然还有更多的层,但是这里我只记录这主要的几层。    新建Dao层项目: 给Dao层添加Model层依赖并用Nuget添加EF依赖。 右击Dao层项目添加一个PersonAgent...

  • Visual Studio2010调用WebService步骤

    一、准备一个WebService 1.右键你的web应用=》添加=》新建项=》选择“Web服务”=》输入名称=》确定 2.工具栏=》调试=》开始执行 3.在浏览器可以得到一个url 二、新建一个控制台程序以调用WebService服务 1.新建控制台程序×1 2.右键“引用”=》“添加服务引用” 3. 4. 5. 6.在main()中可以这么写: namespace.class ...

  • 使用vs建立web网站及IIS

    使用vs建立web网站及IIS https://www.cnblogs.com/franky2015/p/4866136.html 一:网站运行的一般原理: 1.所有WEB程序运行都需要一个东西:Web服务器软件。 2. 网站分为动态页面和静态页面 3. web服务器软件的作用:接收请求,响应请求。 被动——无请求则无响应。 Java语言中的服务器软件–TomCat PHP语言中的服务器软件–Apache .net中的服务器软件asp/aspx——IIS(开发,运行)/IIS Express(体验版,一般开

  • Visual Studio Code介绍——调试Web项目

    简介 Visual Studio Code 是Microsoft在2015年4月30日发布的一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。由于其丰富的插件和优质的性能,广受开发者喜爱。 调试 在调试Web项目时,我常常要查看调试数据,VS Code 提供比较方便的插件Debugger for Chrome,如图: ...

  • VS code 如何编译运行web项目教程

    vs code 工具使用入门

  • 手把手教会你使用vs2015创建webservice并发布到本地IIS

    一、打开vs新建项目。如图: 二、选择asp.net空Web应用程序。如图: 三、解决方案资源管理器会有如下图的文件列表 四、右键项目名称-->添加-->Web服务(ASMX)。如图所示: 随便写个名称,我就用的默认。点确定。 六、新建的文件,就是提供问webservice方法的页面。这里vs自带的一个helloworld()方法。别的东西不要改。如图: ...

  • vs2010 .net调用Webservice(客户端)

    1、首先创建一个新建一个网站,选择文件->新建->网站,如下图所示: 2、在弹出的对话框中,选择Visual C#,然后选择ASP.NET网站,然后选择保存路径,如下图所示: 3、点击确定之后就创建好了一个网站,如下图所示: 4、然后右键单击项目名,在弹出的菜单中选择“添加服务引用”,如下图所示: 5、选择之后就会弹出添加服务引用对话框,然后在地址中输入网址

  • ,net教程,vs .NET使用技巧,VS.NET原理,VS.NET教程

    包含两本书,一本是VS 2005的使用技巧,一本是.NET内部实现机理。有助于更好地用VS.NET编程。

  • VS2010完整版使用教程

    完整的vs2010教程,帮你轻松入门,快速掌握vs的简单操作

  • .NET使用VS2010开发Web Service

    Web Service是一个面向服务的架构(SOA),不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。基于.NET平台,可以使用Visual Studio来开发Web Service。不同于Java平台,需要使用开源组件(Axis2、CXF等),微软直接在Visual Stuido里集成了开发Web Service的功能,

  • vs2015 web开发_2015年最佳Web开发教程

    developerWorks每年都会发布数百本原始教程。 我们对网站上的每个内容都付出了很大的努力,所以当我们知道一些很棒的东西没有得到应有的关注时,这会让我们感到痛苦。 在这里,我展示了2015年为Web开发人员发布的热门作品。 React:创建可维护的高性能UI组件 我很幸运能在我的圈子中拥有出色的软件开发人员和同样出色的沟通者。 Sing Li从2002年开始为develope...

  • VS.NET中Web Services入门

      Visual Studio .NET 中的 XML Web services 入门摘要:Microsoft® Visual Studio® .NET 和 XML Web services 提供了一个简单、灵活且基于标准的模型,开发人员无论使用何种平台、编程语言或对象模型均可以编写组合应用程序。本文将帮助您快速学习使用 Visual Studio .NET 创建并访问 XML Web servi

  • 如何用VS2022创建ASP.NET WEB项目

    用VS2022创建ASP.NET WEB项目 Vs2022创建空项目模板不能像之前的版本那样创建,需安装其他项目模板(早期)。 操作步骤: 打开VS2022 工具-->获取工具和功能 然后选择ASP.NET和Web开发,勾选其他项目模板(早期版本) 安装完成后创建项目中搜索MVC 注意不要选错了 点击下一步 点击创建 点击创建 ,然后就是我们熟悉的页面了 ...

  • 对于Web开发最棒的22个Visual Studio Code插件

    我喜欢Snippets插件。我觉得没有必要反复输入同一段代码。这个插件为你提供了流行的(ES6)JavaScript代码片段。注…如果你没有用es6javascript特性——赶紧用起来吧!3. ESLint是否想编写更好的代码?是否需要整个团队使用一致的格式?安装ESLint。这个插件可以配置为自动设置代码格式以及带有错误或警告的“yell(提示)”。VS Code通过合适的配置,可以向你展示这些提示。在代码编辑器中进行更改,切换到浏览器,然后刷新以查看更改。

  • C# 创建简单的WebService发布本地和调用方法及环境配置(VS2017)

    说明:由于工作的缘故,写MES时遇到了Web的服务接口,想着深入理解web的运作和接口文档文件的生成和调用方法,故写此文章,以备不时之需,共勉。

Global site tag (gtag.js) - Google Analytics