程序员的心理疾病
无自知之明
- 很多程序员往往只看到自己的肚脐眼,看不到自己在整个社会里的位置其实并不是那么的关键和重要。
- 很多程序员除了自己会的那点东西,几乎对其它领域和事情完全不感兴趣,看不起其他人。
垃圾当宝贝
- 面向对象方法,软件“重用”,设计模式,关系式数据库,NoSQL,大数据…… 没完没了。只要是有钱人发布的东西,神马垃圾都能被吹捧上天。
- 其实软件里面有少数永恒的珍宝,可惜很少有人理解和尊重它们的价值。这在其它的工程领域看来是不可思议的,然而这却是事实。由于没有科学作为理论的基础,没有实验作为检验它们的标准,软件行业的很多东西就像现代艺术一样,丑陋无比的垃圾还能摆在外表堂皇的“现代艺术博物馆”里面,被人当成传世大作一样膜拜。
宗教斗争
- 没有实质的技术,为了争夺市场和利益,各种软件的理念就开始互相倾轧
- 制造舆论危机
- 把技术当成工具
- 不要盲目崇拜
引难为豪
- 大道至简
- 爱因斯坦说,你需要很多的天才和非常大的勇气,才能追求到简单
去读文档!
- RTFM(Read The Fucking Manual)
- 对提问者没礼貌的现象很嚣张
- 不得不指出,《提问的艺术》等介绍“黑客文化”的文章对于这种现象的出现有着极大的责任。说穿了,写这些文章的人一般都是 Unix 的跟屁虫。这种文章试图抹去人类文明几千年来传承的文化,而重新给“礼貌”做出定义。其结果是,人类的文明因为这些文章,在程序员的世界里倒退了几十甚至几百年。很多外行人人不喜欢跟程序员说话,叫他们是 nerd,就是这个原因。
- 我的建议:首先要敢于提问,但是提问不是做伸手党,自己先琢磨,实在解决不了,再提问。另外,我比较推崇《提问的艺术》,尊重时间的价值。
不要提问,不要谦虚,不要恭维
- 程序员世界里的一条重要的潜规则是:只有菜鸟才会问问题。(不敢苟同,或许我还没完全了解程序员时间的潜规则)
- 正确的态度应该是诚实,直接,见惯不惊,那有什么大不了的,我什么没见过,我很怀疑。
- 所以跟江湖一样,在 IT 公司里面一件很重要的事情是,亮出自己的宝剑和绝招,给人下马威。介绍自己的东西一定要自豪,这就是世界上最好的,无敌的,没有其他人能做到!不能有任何保留。不要像科学家一样介绍自己技术的局限性,否则随之而来的就是有些人对你价值的怀疑和对你自信心的打击。
- 另外要注意的是对于别人介绍的东西,不要轻易地表扬或者点头,否则有人就更有气势了。你要问这样的问题:这里面有什么新的东西吗?这个事情,另外一种技术早就能做了啊,没觉得有什么了不起。
以语言取人
- 你的软件光凭你用的是什么语言,别人对其价值做出判断。
- 以自己会用最近流行的一些新语言为豪
- 高明的程序员,首先把问题建模出来,然后根据实际需要“翻译”成最后的代码。这种在头脑里的建模过程的价值,是很难用他最后用语言的优劣来衡量的
- Seymour Cray 说的,我只能理解简单的东西,如果它太复杂了,我是不能理解的
跟屁虫-所谓布道者
- 有些程序员对新手和同事是那么的不友好,然而对大牛们拍马屁的功夫可真是出类拔萃。
- 我刚到旧金山的几个月有时候参加一些程序语言的“meetup”,后来我发现这种 meetup 都是宗教气氛非常浓厚的地方,跟传销大会差不多。Scala 的 meetup 里面的人几乎全都对 Scala 和 Martin Odersky 顶礼膜拜,甚至把 Rod Johnson 请来说一堆胡话。Clojure 的,当然基本上把 Rich Hickey 当成神,甚至称他为“二十一世纪最重要的思想家之一”。各种 talk 总是宣扬,哇,我们用 Scala/Clojure 做出了多么了不起的东西云云,其实只不过是在向你兜售减肥药。
- 很多人喜欢做这些新的语言和技术的“evangelist”,尽显各种马屁神功,然后就开始写书,写 blog,…… 目的就是成为这个“领域”的第一批专家。这就难怪了,再垃圾的语言也有一大批人来鼓吹。因为这些没真本事的人,随便把一个东西捧上天都有自己的好处。
- 由于受到这些“先知”的影响,有些人开始在他们自己的公司里“布道”。比如有人在 Python 的 meetup 集会时告诉我,他试图在自己的小组里推 Python,可是一些老顽固一定要用 Java,认为 Java 才是王道。很鄙夷不高兴的样子。我并不认为 Java 是很好的语言,然而 Python 也好不到哪去。它们在我眼里只不过是临时拿来用一下的工具,可是我仍然能用它们写出一流的代码。
- 看到这些宗教性质的聚会,我终于理解了一些地区是如何被从一个国家分裂出去,最后沦落为另外一个国家殖民地的。最早的时候,一般是派传教士过去“传经”,然后就煽动一小部分人起来造反。到后来就可以名正言顺的以“保护传教士”,“保护宗教自由”,“维持和平”等理由把军舰开到别人家门口……