文中提及的这些黑客类型都是典型的黑客类型,所有这些类型的黑客都是天才,但它们却有明显不同的风格。这里的黑客是广义上的,这里指那些形形色色的专注于编程的高级程序员。一起来看下,您熟悉哪几个?
1. The Unicorn
“独角兽”是一个以完美开发者身份而著称的黑客,他们的编码方式是以一种印章的方式去编码,而且他们的设计眼光也很挑剔。他们很擅长使用PS和Fireworks,在他们的作品中,没有像素方面的限制,但是他有一个缺陷,所用的操作系统必须支持Adobe产品。
【最喜爱的技术/语言:Java,Spring,Hibernate,.NET, Eclipse,Visual Studio】
2. The Metaprogrammer
“宏程序员”是为了其他程序员而发展起来的一种黑客类型,他们在使用Ruby上的观点比较强烈,但是他们更希望Smalltalk来统治世界。这种黑客原型的定义不仅仅局限于文字元编程,也包含了那些喜欢定义规范公约的黑客们。
【最喜爱的技术/语言:Lisp,Ruby,Ember,任何优于约定的配置】
3. The Brogrammer
The Brogrammer我们就翻译它为“程序员”,他已经掌握了Balmer Peak艺术,虽然如此,他在最新的雇佣公约上与专业知识相结合,使他能够高效快速的达到更高的一个水平。Brogrammer有一个爱好,就是喜欢用杯子玩一种采用数据结构设计的beer pong的游戏。
【最喜爱的技术/语言:Django, RoR,Express】
4. The Lost Soul
“迷失的灵魂”,这个已经被关押在一些特定企业的技术堆栈里面好多年,并且他们都有一个向工程方向发展的倾向,他们定义了一个不支持依赖注入和反转控制的框架。和大多数项目一样,他们会定期处理那些复杂的程序和软件。
【最喜爱的技术/语言:SASS,Stylus,CoffeeScript,JavaScript】
5. The [Mad] Scientist
“疯狂的科学家”在解决电脑硬盘方面很厉害,它是最新的计算机学习方法,它能快速告诉你两位数乘法的运算法则,但是在实践中,他比较倾向过度分析和贴近自然工程的基本问题。
【最喜爱的技术/语言:C/C++,Python,Java,F#】
6. The Architect
对于手边问题,“建筑师”沉溺于用最好的技术去解决,但计划常常高于实践,作为最固执己见的原型,它更愿意通知你一些关于堆栈方面的技术问题。
【最喜爱的技术/语言:Redis,MongoDB,CouchDB,Riak,Hadoop,Cassandra,Web Sockets】
7. The Bare-Metal Programmer
“裸机程序员”喜欢生活在软硬件接口的地方,对高级语言和抽象敬而远之。作为一个低级别的优化专家,他可以从Quake III Arena和相似的优化中很快速的解析逆平方根。
【最喜爱的技术/语言:C/C++,Assembly,Shading Languages】
8. The Lambda Programmer
这个黑客知道Y-Combinator并不仅仅是一个有名的孵化器而且还可以从你选择的语言里面帮你得到它。尽管它拒绝接受基础的技术模式,但它仍然可以获取到核心的功能概念,比如Monads,蓄电池,尾递归。
【最喜爱的技术/语言:Haskell,Lisp,Erlang,Scala,F#】
9. The Neck Beard
在这些列表中,这个黑客是最擅长使用自己鼠标的,包括使用Lynx或者W3M浏览Web网站。用点文件配置系统与那些复杂的大型软件工程进行斗争。在自由开发的源码运动中,坚定的信徒认为,The Neck Beard将超越它的使用范围,开发和传播开源软件。
【最喜爱的技术/语言:C/C++,Posix,KDE,anything GPL】
10. The Hustler
对没有代码的“骗子”不用感到困惑,“骗子”黑客对用户有敏锐的观察并且有能力来实现客户的要求。它是恶搞应用的先发者并且在应用程序商店推出后还赚了一笔。这些“骗子”黑客被用户所激励而不仅仅是一些技术上的选择,对于这些“骗子”黑客来说,没有哪一个平台是安全的。
【最喜爱的技术/语言:PHP,Perl,Anything that gets the job done】
11. The [Fanatical] Tester
在理想的世界里,测试人员宁愿看到以伪英文方式编写的代码段,他相信最新的BDD测试技术,他也会定期给那些基础设施落后的其他测试写测试。Bug已经成为了过去,测试人员怀疑如果没有类似的测试水平,稳定的软件是不能被写出来的。
【最喜爱的技术/语言:Cucumber, RSpec,RCov,Capybara,anything BDD】
12. The [Re]Inventor
宁愿写十几种不同的微小框架,也不愿因为同一个目的去使用一个单一的框架。为了不被裸程序员给迷惑了,发明者使用一些抽象的东西来脱离那些公约规定的条条框框。