程序员、黑客与开发者究竟有何区别?
这个问题往往会引发踊跃的讨论与辩论。
但是我看到的很多说法往往至少在一个重大方面是有瑕疵的,所以在此我愿给出我的定义,希望这个定义能够更准确些。
简而言之,这三者都利用代码去解决问题。 程序员是一个涵括性术语 带有问题解决者的含义 黑客是创造者/多面手 开发者是正规培训的程序员 他们不仅解决问题而且是采用 (很可能是通过正规教育学到的)结构化和按照规定的方式去做解决问题。
关系 一个人可以是上述三种角色的组合。以下就是这三者的相互关系(参见下面的维恩图)
理想情况下一个人当然想同时成为这三种角色
比方说足够有创意成为一名黑客
受到的正规训练和经验足够多可以设计软件而不仅仅是破解东西。
不过即便你不是很有创意或者缺乏教育或者经验来正确开发大规模应用
你仍然应该对自己是一名程序员感到自豪
利用代码解决问题本身就是一种超级能力