分析程序员、黑客与开发者之别

  程序员、黑客与开发者究竟有何区别?这个问题往往会引发踊跃的讨论与辩论。但是我看到的很多说法往往至少在一个重大方面是有瑕疵的,所以在此我愿给出我的定义,希望这个定义能够更准确些。

  程序员是能够通过操纵计算机代码解决问题的人。他们的技能水平可高可低—从掌握基本脚本的入门级到可利用任何一门语言的绝对巫师都算是。

  黑客是做东西的人。在本文背景下,是指通过对计算机编程做东西的人。这是对这个术语的原创、纯粹的定义,比方说,你有了一个想法以后就设法 “破解” 某个东西让它可以工作。这个词也可用到修改东西使其功能发生重大改变的人身上,但是不像前面的定义用得那么多。

  开发者是正规培训的程序员。他们并不仅仅要解决问题或者创造东西,而是按照一套设计和实施原则去做事。这些事情包括性能、维护、伸缩、健壮性以及安全等。

  简而言之,这三者都利用代码去解决问题。程序员是一个涵括性术语,带有问题解决者的含义,黑客是创造者 / 多面手,开发者是正规培训的程序员,他们不仅解决问题,而且是采用(很可能是通过正规教育学到的)结构化和按照规定的方式去做解决问题。

  关系

  一个人可以是上述三种角色的组合。以下就是这三者的相互关系(参见下面的维恩图)

  

  黑客和开发者都是程序员

  许多程序员,甚至开发者的创意都不足以被视为是黑客

  许多程序员,甚至也包括黑客,其教育程度或者经验均不足以被看作是开发者。

  理想情况下一个人当然想同时成为这三种角色,比方说足够有创意成为一名黑客,受到的正规训练和经验足够多可以设计软件而不仅仅是破解东西。

  不过即便你不是很有创意,并且 / 或者缺乏教育以及 / 或者经验来正确开发大规模应用,你仍然应该对自己是一名程序员感到自豪。利用代码解决问题本身就是一种超级能力。

  附注:

  黑客的类型很宽泛,可应用到任何领域,不仅仅是计算机。而本文主要是针对软件类型。

  “coder” 基本上等同于程序员

  破解往往跟质量差相关联,但并不总是这样。这是因为破解通常都是大刀阔斧一想到就开干效果最好而不是一点点的慢工出细活。在黑客也是开发者或者虽然不是开发者但还需要盯住设计和质量的情况下,事后回过头来看看自己的创作并且解决存在问题几乎是免不了的。

  确定谁可以叫做黑客,谁不能被称为黑客是一件认知见仁智者见智的事情。大都同意的基本规则包括 1)你得做出 1 件或以上大家觉得有用的东西,2)其他黑客觉得你是黑客。

  在安全界,黑客还意味着多件事情。对于测试者来说这通常意味着这个人理解系统并且能攻克其安全控制。不过顶级安全对黑客的定义要更加纯粹,比方说创建了供他人使用的安全软件或工具的人就是黑客。

  在流行文化里面,黑客意味着计算机犯罪。在安全界此类演员往往被称为是 “攻击者”。

  著名程序员,同时也是最早的计算机社区名人之一的 Eric Raymond 是这样定义黑客的,“聪明、有创意、思想开放,享受问题解决和学习,乐意分享知识高于一切的人。”

  “软件工程师” 等同于开发者。意味着受到过有关软件架构、设计的正规教育以及必要的预教育。

  mt.sohu.com/20160616/n454740099.shtml

  mt.sohu.com/20160616/n454740063.shtml

  mt.sohu.com/20160616/n454740161.shtml

  mt.sohu.com/20160616/n454739950.shtml

  mt.sohu.com/20160616/n454739790.shtm

  mingjia.cngold.org/expert/1304176/news/c560354.htm

  mingjia.cngold.org/expert/1304176/news/c560355.htm

  mingjia.cngold.org/expert/1304176/news/c560358.htm

  blog.sina.com.cn/s/blog_7362e71e0102wi8k.html

  blog.sina.com.cn/s/blog_7362e71e0102wi8l.html

  mt.sohu.com/20160616/n454749150.shtml

  mt.sohu.com/20160616/n454749072.shtml

  mt.sohu.com/20160616/n454749060.shtml

  mt.sohu.com/20160616/n454748941.shtml

  mt.sohu.com/20160616/n454748908.shtml

时间: 2024-11-09 23:59:32

分析程序员、黑客与开发者之别的相关文章

最受程序员欢迎的开发者服务

这不知不觉的2014年就这么过去了,DevStore自上线以来也有7个多月,收录了656个开发者服务.今天我们就来盘点下最受程序员喜爱的开发者服务. 服务名称 所属领域 个推 推送 百度云推送 推送 百度地图 地图 支付宝 支付平台 极光推送 推送 高德地图 地图 Mob 社交分享 爱加密 应用加密 简网APP工场 快速开发 友盟推送 推送 从这几个开发者我们可以看出,推送类的服务是开发者比较喜欢的,占了40%.这也比较正常,推送是开发者和用户之间进行沟通的一种方式.产品更新. 新闻推送.其他产

从阅读Discuz的核心代码并给出注释的经历分析程序员该如何阅读代码?

本文标签:   程序员 php Discuz的核心代码 框架 深度学习框架 阅读优秀的代码,是技术水平成长的最佳途径.记得每个进来的新人,我都做过阅读优秀代码的要求,但几乎都只能坚持很少一段时间而已. 前晚大家还在开玩笑的讨论,都是因为看了前人的一些写法,才学会了一些乱七八糟的花招. 晚上我又开始重新阅读Discuz的核心代码,花了1h多的时间,才完成一个core文件的注释. 注释后的代码: <?php /** * [Discuz!] (C)2001-2099 Comsenz Inc. * Th

个人分析程序员的性格特点,生活习惯

 身为程序员的您是否有下面这么多性格与习惯? 1.聪明但是给人的感觉是不谦逊. 2.交流与合作能力比较强,但是又往往向往个人主义! 3.懒惰,大部分程序员可能都是这样,也许是因为程序员已经习惯了脑力劳动. 4.创造力非常强,但是好像又缺乏纪律性! 5.学习能力非常强,但是又往往太过于依赖个人经验. 从我个人就暂时归纳这么多,请大家继续跟帖总结... 个人分析程序员的性格特点,生活习惯

程序员最爱 Mac、JS 是最热门技术

概况: 今年,有超过5万名开发者向我们分享了他们是谁,做什么工作,以及他们的成果.通过本文,你将看到有史以来最为全面的一次开发者情况调查的结果. 每8秒钟,就会有一位开发者在Stack Overflow上提出一个问题.今年,有来自173个国家的56,033位程序员在Stack Overflow上进行了回复. (在这次调查中,)我们提出了45个问题.我们把回复结论的亮点总结如下: 越来越多的程序员使用Mac和Linux作为他们的主力操作系统,这个现象还是第一次发生.只有7%的开发者认为自己是“摇滚

程序员到项目经理:从内而外的提升

转自:http://www.cnblogs.com/watsonyin/archive/2012/09/10/2679528.html 目录 从程序员到项目经理(一):为什么要当项目经理 从程序员到项目经理(二):升职之辨 从程序员到项目经理(三):认识项目经理 从程序员到项目经理(四):外行可以领导内行吗 从程序员到项目经理(五):程序员加油站,不是人人都懂的学习要点 从程序员到项目经理(六):程序员加油站 — 懂电脑更要懂人脑 从程序员到项目经理(七):程序员加油站 — 完美主义也是一种错

每一个程序员都必须阅读的10篇文章

原文:10 Atricle Every Programmer Must Read by Javin Paul 作为一名Java程序员和软件开发者,我已经从那些名为<关于XXX,每个程序员都应了解的>的文章中学了很多东西,这些文章倾向于提供许多关于某一个特定主题的实用的.有深度.难以发掘的信息.在我的学习过程中,我读到了不少非常有用的文章,我会收藏这些文章以便日后参考和再次阅读.我个人认为所有程序员可以从这些文章中获益,这也是促使我发帖,并与你们分享这些<关于XXX,每个程序员都应了解的&

程序员编程利器:20款最好的免费的IDEs和编辑器

程序员编程利器:20款最好的免费的IDEs和编辑器 还没转眼明年可就大年三十了,忙的可真是晕头转了个向,看着亲朋好友们那让人欣羡的小肚腩,不禁感慨,岁月是一把猪饲料,绿了芭蕉,肥了那杨柳小蛮腰,可怜我“太挑食”,身为纯正的吃货却没有与吃货相称的体重(话说路飞的体重也和他的吃货属性不匹配啊喂!).趁着过年之际,各种红包层出不穷,什么微博红包.QQ红包.微信红包.支付宝红包等等等等,一个字:真俗!话说身为程序员最重要之一是什么?当然是开发环境和编辑器了.君不见一个好的IDE或者编辑器能带来的工作效率

从程序员到项目经理(一)

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问

从程序员到项目经理

“从程序员到项目经理”,这个标题让我想起了很久以前一本书的名字<从Javascript到Java>.然而,从Javascript到Java充其量只是工具的更新,而从程序员到项目经理,却是一个脱胎换骨的过程.从Javascript到Java,是一个取巧的方法:而从程序员到项目经理,却并无捷径可走,必须从内而外的改变和提升. 一.为什么要当项目经理 1. 问题本质 如果我对一个老程序员说:“有必要转项目经理啦”,很多人第一反应是“为什么一定要当项目经理?!”,反问很给力,基至会让人哑口无言.但反问