由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 黑客文化的精髓-by 王银
相关主题
轻松一下:魏老师用什么editor?c++ interview: iterator 和 pointer区别?
C 编程有什么IDE吗?C到底能走多远。。。。。。
How to exit Vim?按说java也够快了
请推荐linux下c++的IDE哪门计算机语言好的讨论可以休矣
王垠:我为什么不再公开开发Yin语言【失败感言】我是做PHP的 (转载)
Emacs有没有这样一种功能? (转载)面向同一种应用的语言比较优劣才有意义
请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)王垠的新文章看了吗
问个弱的问题:能不能开发两种C++的compiler,一种是编译型的,一种是解释型的也谈OOP跟FP之争
相关话题的讨论汇总
话题: 黑客话题: 选择话题: 工具话题: emacs话题: 文化
进入Programming版参与讨论
1 (共1页)
l*y
发帖数: 21010
1
http://www.yinwang.org/blog-cn/2014/04/11/hacker-culture/
黑客文化的精髓
(王垠 yinwang.org 版权所有,未经许可,请勿转载)
听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道
袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵
电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把
黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌输黑
客的“行为守则”,“提问的艺术”等等。总之就是说,你得显示出一些非常重要的特
征以证明你是高手,并且教育那些菜鸟们。否则按照我们的标准,你就不是个黑客!
于是忽然间,我来到了这个黑客遍地的世界。体验着,忍受着自己向往已久的“黑客文
化”。
某大牛说……
一个中等水平的黑客要说服一个菜鸟水平的黑客,方法很简单:引用一个超级黑客的话
。比如,Dennis Ritchie 说,Linus Torvalds 说,Rob Pike 说,……
至于为什么嘛,我也不知道,总之你照办就是了。最好记住那超级黑客的名字,以后再
遇到不懂事的菜鸟就用同样的方法教育他,免得我亲自来动口舌!
笨蛋才不会用这个工具
黑客的世界里有很多背着历史包袱,设计拙劣,你却不得不用的工具。黑客文化的其中
一个作用就是掩盖这些工具的设计失误。这定律被我叫做“都是用户的错”。
你的智商和能力被一些肤浅的标准所衡量,你每天都在提心吊胆的接受各种审查。这两
个 Git 命令的区别都不知道?还当什么黑客!哪个学校毕业的?老师连这都没教过你
们?哎,算我面试时看走眼了。
于是为了显示自己有能力,接受过良好的教育,你不敢再问这种问题。为了避免再受伤
害,为了掩饰自己的“无知”,你变成了一只刺猬。你开始用自己会的那点东西去审查
其他人,伤害其它人,以为这样就可以保护自己。这些被伤害的人又转而去伤害更多的
人。
Visitor pattern 都不会写?还当什么黑客!这厮今天终于让我抓住把柄了 :)
只有天才才能理解它的简单
某超级大牛说过,我的系统是简单的,但只有天才才能理解它的简单。
你敢说我的系统不简单?哼,那你肯定不是像我一样的天才。你知道吗?其实我的祖先
是给皇帝做衣服的。他们的座右铭是:看不见这衣服的人都是白痴或者不称职的人。
所以你不敢说任何东西太复杂,太难用,太不可视化,对用户不友好。否则就会有人鄙
视你:菜鸟,白痴,人笨怪刀钝!
择其难者而从之
做一件事有两种方法,一种容易一种难,你会选择哪种方法?
普通人都会选择更容易的方法,但是很奇怪的是,受到黑客文化熏陶的人,往往会选择
困难的那一种。如果这选择只是个人的喜好,如果他们尊重其他人的选择,那还无所谓
。但十有八九,选择了明显更加难用的工具的人,并不会从心底尊重那些选择更加容易
的工具的人。这貌似是一种必然的结果。
这其实是心理上的“优越感”在作怪。很多人选择困难的工具,并不是因为真的觉得它
们好用,而是因为只有用很多其他人都不会的东西,才能显示出自己的特殊性,显示出
高人一等的水平。由于其根本的动机就来自于优越感,所以他们是不可能不找机会利用
这得之不易的优越感的。
这些人虽然可能口头上不说,但他们随时都在观察,看其他人选择了哪一种工具。那些
选择了(或者倾向于选择)更容易的方法的人,会在他们的印象中产生一种肤浅的感觉
,从而不会真正的被尊重。这种不尊重慢慢的累积起来,就会开始隐约的表现出来,从
而在将来导致同事间工作关系的恶化。当然也有人更加露骨一些,直接就问别人选择了
什么工具,然后嘲笑那些选择了容易工具的人为菜鸟。
常见例子:
VIM 与 Emacs,选择 VIM
Emacs 与 IntelliJ(编辑 Java),选择 Emacs
组合键与方向键(移动光标),选择组合键,因为“并不是每个键盘都有方向键的!”
Linux 与 Windows,Mac,选择 Linux
Gentoo 与 Ubuntu,选择 Gentoo
Terminal 与 GUI,选择 Terminal,使用黑底绿字
TeX 与 Word,选择 TeX,拒收 .docx 附件
C++ 与 Java,选择 C++
RTFM!
RTFM = Read The Fucking Manual!
(图片来源:Abstruse Goose)
惯用法:有人在#java聊天室问了一个问题,结果大家回答说:“RTFM!”“菜鸟,去
读了 API 再来这里混!”
你不会 Google (百度)吗?
当这种现象普及开来之后,普通的问题你都不能问别人了。比如:“哎,今天会不会下
雨呢?”因为在黑客文化里,别人的回答会是:“你不会 Google 吗!”当然,在中国
这句话就是:“你不会百度吗!”
就像 IRC 里面的人一样,我不明白他们为什么在那里面,仿佛他们唯一的乐趣就是告
诉别人“你不该问这个问题”,“你浪费了我的时间”。当这种现象普及到更广的社会
,你知道会有什么结果吗?任何人都不要再对任何人说话了,因为说话全都是浪费时间。
“你不该问这个问题”这种说法是非常大的攻击行为,它是人类良好社会关系的杀手。
其实对别人“该不该问这个问题”的“考虑”本身就是一个错误。我们甚至不应该说“
你可以问这个问题”,因为那应该是不言而喻的,想都不用想。
任何人都允许问任何问题,并不等于会浪费你的时间,因为你并不是必须回答每一个问
题。所以我的做法总结下来就是一句话:我誓死捍卫你问问题的权利和尊严,但我不一
定要回答你的问题。比如在 IRC 聊天室,如果遇到有很初级的问题我不想回答或者太
忙,我不吭声就是了。我对问问题的人没有任何反感,我只是等其他人去回答他。但是
“你不会 Google 吗!”肯定是非常不礼貌的做法。
你问我,所以你懂的没我多
子贡问曰:“孔文子何以谓之文也?”子曰:“敏而好学,不耻下问,是以谓之文也。”
可不要被孔老二误导了!在黑客文化里,这种不耻下问的行为是相当危险的。一次可能
还好,多几次之后,我看你不被当成傻b菜鸟才怪。
希望你向我们学习
进了新的黑客公司很兴奋哈?可是发现代码里有不大好的地方怎么办呢?如果吭声,立
即讨人嫌。如果不吭声,那就等于承认了我们的代码是“模范”咯。跟着学吧,小弟。
要学像哦!
这就是我们的作法
我们刚从某大公司挖来一个世界级高手。结果他对我们引以为豪的一段代码提出了异议
,说那是 premature optimization,思路不清晰。切!
虽然他是世界级的高手,可我们才是这里的地头蛇,所以我们得告诉他:“这就是我们
的作法!”
结束语
上面的小片段,估计在你自己的生活中已经出现过很多次了吧?它们也在我的生活中出
现过很多次。不同的学校或者公司,有可能出现其中的几种或者全部。其实哪里来的什
么“黑客文化”?文化就是文化,管你做什么工作。不要忘了黑客不过是一种工作,跟
医生,律师,厨师,教师一样的。所谓黑客文化只不过是为一些人的各种无理怪癖找借
口,搞特殊化。
按照以上标准,我不认为自己是个黑客。我是一个计算机科学家,我按照几百年来国际
通用的礼节行事。计算机科学家与黑客的区别在于他不只按照工具的手册来完成规定的
任务。他经常记不住别人设计的复杂工具如何使用,因为他本人是一个更好的设计师。
他审视这些工具的设计合理性,发现蹩脚的地方,然后构思更好的设计方案。他总是嘲
笑和自嘲,我们其实仍然生活在计算机的石器时代。
在自己的公司里,我希望创造一个更加人性化的氛围,而不是宣扬所谓的黑客文化。让
所有人无论男女,无论水平如何都身心舒坦,受到尊重,可以谈天说地,不耻下问。
如果上面有我没有概括到的经典情况,欢迎来信告诉我。
t****a
发帖数: 1212
2
鸟人开始给他的公司做广告了... 跟Joel谈软件的那个路数差不多嘛
L*****e
发帖数: 8347
3
vim比emacs难学?

【在 l*y 的大作中提到】
: http://www.yinwang.org/blog-cn/2014/04/11/hacker-culture/
: 黑客文化的精髓
: (王垠 yinwang.org 版权所有,未经许可,请勿转载)
: 听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道
: 袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵
: 电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把
: 黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌输黑
: 客的“行为守则”,“提问的艺术”等等。总之就是说,你得显示出一些非常重要的特
: 征以证明你是高手,并且教育那些菜鸟们。否则按照我们的标准,你就不是个黑客!
: 于是忽然间,我来到了这个黑客遍地的世界。体验着,忍受着自己向往已久的“黑客文

d*******r
发帖数: 3299
4
说的是上手吧,要记忆的反直觉东西太多

【在 L*****e 的大作中提到】
: vim比emacs难学?
L*****e
发帖数: 8347
5
emacs没好到哪去吧?

【在 d*******r 的大作中提到】
: 说的是上手吧,要记忆的反直觉东西太多
d*******r
发帖数: 3299
6
对于出生在GUI时代的非 old school hacker 来说,直白多了,至少没有模式切来切去
的。
vim, emacs 我2个都用,就是用用基本的 key binding,
我发现 emacs 的 key binding 确实适用范围更广,高级点的 IDE 比如 JetBrains 直
接就自带,
Ctrl+n/p/e/a 这种更是基本所有现代的 GUI editor/IDE 都默认支持, shell
terminal 都支持.

【在 L*****e 的大作中提到】
: emacs没好到哪去吧?
r****y
发帖数: 26819
7
我也觉得emacs缺省快捷键比什么修改好用,ergoemacs改得太大,不喜欢。
正在试24.4版,在mac brew下安装后,缺省字体怎么修改保存无效。

【在 d*******r 的大作中提到】
: 对于出生在GUI时代的非 old school hacker 来说,直白多了,至少没有模式切来切去
: 的。
: vim, emacs 我2个都用,就是用用基本的 key binding,
: 我发现 emacs 的 key binding 确实适用范围更广,高级点的 IDE 比如 JetBrains 直
: 接就自带,
: Ctrl+n/p/e/a 这种更是基本所有现代的 GUI editor/IDE 都默认支持, shell
: terminal 都支持.

h****r
发帖数: 2056
8
vim的宏极为强大。很多不了解的人感慨这个,感慨那个,其实是连知其然都不愿意。

【在 d*******r 的大作中提到】
: 对于出生在GUI时代的非 old school hacker 来说,直白多了,至少没有模式切来切去
: 的。
: vim, emacs 我2个都用,就是用用基本的 key binding,
: 我发现 emacs 的 key binding 确实适用范围更广,高级点的 IDE 比如 JetBrains 直
: 接就自带,
: Ctrl+n/p/e/a 这种更是基本所有现代的 GUI editor/IDE 都默认支持, shell
: terminal 都支持.

x****u
发帖数: 44466
9
gvim -y,就是写字板模式。王垠就是不懂胡扯。

【在 r****y 的大作中提到】
: 我也觉得emacs缺省快捷键比什么修改好用,ergoemacs改得太大,不喜欢。
: 正在试24.4版,在mac brew下安装后,缺省字体怎么修改保存无效。

d*******r
发帖数: 3299
10
对,就是对于折腾 vim/emacs, 连知其然都不愿意
因为折腾了半天,功能还是不如现代 IDE
所以只有在 server 端,不得已,才用最小配置的 vim/emacs

【在 h****r 的大作中提到】
: vim的宏极为强大。很多不了解的人感慨这个,感慨那个,其实是连知其然都不愿意。
相关主题
Emacs有没有这样一种功能? (转载)c++ interview: iterator 和 pointer区别?
请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)C到底能走多远。。。。。。
问个弱的问题:能不能开发两种C++的compiler,一种是编译型的,一种是解释型的按说java也够快了
进入Programming版参与讨论
L***s
发帖数: 1148
11
“未经许可,请勿转载”
你全文转载经过人家本人同意了?

【在 l*y 的大作中提到】
: http://www.yinwang.org/blog-cn/2014/04/11/hacker-culture/
: 黑客文化的精髓
: (王垠 yinwang.org 版权所有,未经许可,请勿转载)
: 听说“黑客文化”这个词,就像在昨天。想起它,眼前就出现一些头发蓬乱,穿黑色道
: 袍的人。最早的时候,他们努力地向人们澄清:“黑客”不是贬义词,不是指那些入侵
: 电脑网络的罪犯。当人们明白过来之后,他们开始告诉人们如何成为一个黑客,并且把
: 黑客与画家相提并论。当人们受到鼓舞,决心成为黑客之后,他们开始向这些人灌输黑
: 客的“行为守则”,“提问的艺术”等等。总之就是说,你得显示出一些非常重要的特
: 征以证明你是高手,并且教育那些菜鸟们。否则按照我们的标准,你就不是个黑客!
: 于是忽然间,我来到了这个黑客遍地的世界。体验着,忍受着自己向往已久的“黑客文

w***g
发帖数: 5958
12
赞掌故!

【在 x****u 的大作中提到】
: gvim -y,就是写字板模式。王垠就是不懂胡扯。
w***g
发帖数: 5958
13
vim在中文输入法底下基本上没法用。

【在 d*******r 的大作中提到】
: 对于出生在GUI时代的非 old school hacker 来说,直白多了,至少没有模式切来切去
: 的。
: vim, emacs 我2个都用,就是用用基本的 key binding,
: 我发现 emacs 的 key binding 确实适用范围更广,高级点的 IDE 比如 JetBrains 直
: 接就自带,
: Ctrl+n/p/e/a 这种更是基本所有现代的 GUI editor/IDE 都默认支持, shell
: terminal 都支持.

S*A
发帖数: 7142
14
总结就是,
不得精髓,貌似公允的拿了个不是精髓的
东西胡砍了半天不得要点。
Hack 的精髓就是 Hack, 要不屈一格动手解决问题。
强调的是动手,创造性和解决问题。
n***s
发帖数: 234
15
此人的一贯作风:找个没人注意的小山头,或者根本不是山头的地方自己竖个旗帜,然
后再自己猛攻上去,夺了旗以后宣布胜利。还玩的不亦乐乎。

【在 S*A 的大作中提到】
: 总结就是,
: 不得精髓,貌似公允的拿了个不是精髓的
: 东西胡砍了半天不得要点。
: Hack 的精髓就是 Hack, 要不屈一格动手解决问题。
: 强调的是动手,创造性和解决问题。

g*****g
发帖数: 34805
16
emacs动不动要ctrl+X先,是需要踏板的编辑器,不知道设计者咋想的。

【在 r****y 的大作中提到】
: 我也觉得emacs缺省快捷键比什么修改好用,ergoemacs改得太大,不喜欢。
: 正在试24.4版,在mac brew下安装后,缺省字体怎么修改保存无效。

k**********g
发帖数: 989
17

Visual Studio也有 Chord (multi-key shortcut)。反正 26 个 shortcut key 不够用


【在 g*****g 的大作中提到】
: emacs动不动要ctrl+X先,是需要踏板的编辑器,不知道设计者咋想的。
d****i
发帖数: 4809
18
王垠的问题在于:温室下长大的小花朵,见识太肤浅,很多东西她根本没有碰过也敢评
论,一叶障目,太幼稚,太小孩子气,评论完全凭他个人喜好,她要挑战别人都已经做
了几十年的千锤百炼的东西,他得先用脑子想想为什么人家这么做,就算脑子想不通你
也得实际做一遍而且能够做出来再发表这种评论吧,动不动就说别人的东西不好,他的
想法最好,问问他做了什么实际牛逼的东西敢跟前辈们比?

【在 n***s 的大作中提到】
: 此人的一贯作风:找个没人注意的小山头,或者根本不是山头的地方自己竖个旗帜,然
: 后再自己猛攻上去,夺了旗以后宣布胜利。还玩的不亦乐乎。

b***e
发帖数: 1419
19
猫论吧。王垠还是一个有志向的人,至少还有精力写这些东西。看看他最终能做出什么
东西来?他这个公司做好了我看也可以卖给github,atlassian或者是coverity之类的
公司。有些东西我觉得他说的是太玄了,但是我也可以看出来他那一套也不是纯的空穴
来风,他念书的时候对programming language的理解还是有很多可取之处的。

【在 d****i 的大作中提到】
: 王垠的问题在于:温室下长大的小花朵,见识太肤浅,很多东西她根本没有碰过也敢评
: 论,一叶障目,太幼稚,太小孩子气,评论完全凭他个人喜好,她要挑战别人都已经做
: 了几十年的千锤百炼的东西,他得先用脑子想想为什么人家这么做,就算脑子想不通你
: 也得实际做一遍而且能够做出来再发表这种评论吧,动不动就说别人的东西不好,他的
: 想法最好,问问他做了什么实际牛逼的东西敢跟前辈们比?

g*****g
发帖数: 34805
20
不够用可以三键,比如eclipse的alt+shift+,一手一下仍然可以搞定。

【在 k**********g 的大作中提到】
:
: Visual Studio也有 Chord (multi-key shortcut)。反正 26 个 shortcut key 不够用
: 。

相关主题
哪门计算机语言好的讨论可以休矣王垠的新文章看了吗
【失败感言】我是做PHP的 (转载)也谈OOP跟FP之争
面向同一种应用的语言比较优劣才有意义大部份 design pattern 是不需要的
进入Programming版参与讨论
l*y
发帖数: 21010
21
没有,我藐视这句话

【在 L***s 的大作中提到】
: “未经许可,请勿转载”
: 你全文转载经过人家本人同意了?

x****u
发帖数: 44466
22
中文必须用msword。

【在 w***g 的大作中提到】
: vim在中文输入法底下基本上没法用。
x****u
发帖数: 44466
23
出于以文学评论目的不需要许可,这属于自由表达的宪法权利。

【在 L***s 的大作中提到】
: “未经许可,请勿转载”
: 你全文转载经过人家本人同意了?

n******u
发帖数: 4271
24
说实话
每次看到这个SB名字都头疼
1 (共1页)
进入Programming版参与讨论
相关主题
也谈OOP跟FP之争王垠:我为什么不再公开开发Yin语言
大部份 design pattern 是不需要的Emacs有没有这样一种功能? (转载)
我来尽量客观地谈谈GC/ref count,还有RAII请问:Auto_Ptr、Smart Ptr 和 Reference Counting是什么关系? (转载)
我觉得软件工程很扯淡问个弱的问题:能不能开发两种C++的compiler,一种是编译型的,一种是解释型的
轻松一下:魏老师用什么editor?c++ interview: iterator 和 pointer区别?
C 编程有什么IDE吗?C到底能走多远。。。。。。
How to exit Vim?按说java也够快了
请推荐linux下c++的IDE哪门计算机语言好的讨论可以休矣
相关话题的讨论汇总
话题: 黑客话题: 选择话题: 工具话题: emacs话题: 文化