最近读完王垠写的《程序员的心理疾病》: http://yinwang.org/blog-cn/2014/02/09/programmer-mental
我感觉王垠的特点就是,观点偏激,但是又能说中一些要害,观点犀利这样才能引起争论。
拿两个例子来说明:
阅读文档 就阅读文档(在我以前的公司有道,文档的具体形式就是wiki)这件事情来说,我觉得是非常享受的工作方式, 而且他提出的Wiki过时的问题,显然是由于大家没用好的原故,好的Wiki会在每次被阅读时修正。 以前在有道,wiki的信息相当全,我可以从中看到进入有道前几年的所有的技术讨论会议记录,一些决策的要点摘要,一些技术教程,一些内部工具的示例和坑,而且我遇到错误,也会主动修改。感觉相当舒服。 在有道,我在遇到问题时,首先不是想问人,而是查wiki,wiki已经完整到成为我的一个百宝库,不但可以学习自己项目的技术架构,还可以学习公司内其它项目在开发中遇到的问题,非常爽。
关于提问 王垠说: ”有的人稍微委婉一点,当你提问的时候,他们会二话不说打开一个浏览器窗口,在里面用 Google 搜索,然后指给你:看,就是这样。 貌似比较礼貌,但那其实意味着他们在教训你:Google 一下就找到了的,自己不动脑筋!有谁不会用 Google 呢?提问的人恐怕是想得到 Google 不能给他的答案。“
如果他想提的问题是google不到的,就应该在提问的时候说明。显然他的问题让被问者理解成了一个基础的,可以google的问题。这显示出他在提问方面没有技巧, 得到负面反馈之后没有想到是自己提问方式不对,而怪罪于整个程序员行业的“心理疾病”。这其实是不客观的。
当然,他文章中也有很多对的观点,所以我还是喜欢看他的文章,选择性接受。
允许各种各样的人的存在呗。 曾经在群里问,某控件如何遍历下面的子控件,有没有api云云, 然后某程序员和我说,遍历?伸手进去摸啊...
当时火气爆棚,后来也就觉得那么回事。 以我个人的浅薄经验而看,我接触的牛逼程序员都乐于助人。
抨击王垠的言论无外乎几种:
具体就事论事反驳他的技术论点的言论很少很少。 在王经常谈论的程序语言领域,绝大部分人(包括那些国内“知名”多年的程序员们)和王的比较,就是业余和专业的区别。 在这个领域,绝大部分程序员只能称之为‘用户’级别,而王是正经的该领域顶级学者。
感觉王垠提到的东西都有很道理,值得反思。 不过对于提问者的态度问题,我觉得这个可能是人类的通病,而并非程序员所特有。比如本来心情就不好的时候,态度可能就会不好。心情好的时候会耐心解答。像我这种急脾气的人,在不同的心情下,处理事情时的态度会有很大不同,有时还真不是主观上的问题,应该算情绪自控能力比较差吧。
然后说说王垠之前提到的关于unix的一观点,我觉得很多问题可能无法找到一个非常完美的解决方案,然后每个人的取舍不同,解决思路也就不一样了。
至于语言方面的一些内容,感觉自己没有那么高的层次,所以只是听起来很有道理,没能力参与讨论。
之前不怎么了解王垠,刚刚看了他的几篇文章。作为一个伪文艺青年,我能从他的字里行间读出发自内心的真诚(别问我怎么读出来的,这是语感)。我确信他不是装逼,就是有什么说什么。
他过去做的那些成果也确实证明了这是个天才,并且比较坚持自我,活的随性,不妥协。其实这才是被很多人看不惯的原因吧。所谓“木秀于林,风必摧之“, 大伙的潜意识想必是这样的:”大家都活的这么庸庸碌碌,就你牛逼”? 其实人贵有自知自明,看到不入耳的话先别急着起生理反应,看看人家说的对不对,如果连别人说的技术细节都没搞清楚,就猛拍砖,那这辈子就别想有进步了。
人上了年纪容易陷入一个误区:年轻时的梦想和中年是的现实差太多,为了不承受那种心里落差,会不停的给自己心里暗示,把自己当前的处境合理化。时间久了,这种心理就变成下意识生理反应了,看到王垠这种四处读博四处退学,还有人要,甚至还臭牛逼的同行,心理防卫机制果断起效:”让你装逼,骂你个生活不能自理再说“。
大致如此。
王垠的文章,其实影响最大的是那一篇《完全用linux工作》,而且拥护者和抨击者的广度之大真是难以想象……拥护者几乎清一色摸了两天linux就觉得高人一等的脑残粉。当然抨击者中,占比例最大的也是是那些看了几天《电脑报》、会装个盗版win就觉得自己是“电脑”高手的那群人。以至于最后王垠哭笑不得,不得不再写一篇文章《写给支持和反对《完全用Linux工作》的人们》来讽刺两边这些什么都不会,整天就知道打圣战喷子。
作为一个高端大气上档次linux用户,我一开始也是随着《完全用linux工作》这篇文章入的linux这个坑,也年轻气盛傻傻地跟着一群脑残粉天天去打圣战。那段时间里我几乎学不下任何东西,整天就知道打那种毫无营养的口水战,于是慢慢得我也变成了大喷子(:з」∠)。当然也不是一点东西都学不到吧,因为自己曾今是大喷子,所以当遇上喷子的时候也有了娴熟的手段来应对吧。
后来,打圣战打累了,静下心来干点实事再想一想,也就释然了,不过一个工具而已。一个工具的作用就是帮助人完成工作,解决实际的问题,而并没有所谓好坏的区分。在完成不同工作的时候合理理性得选择不同的工具,为的是更好的完成工作,更好的享受生活。为一个工具而征战明显就已经沦为工具的奴隶,而人应该做工具的主人。
(:з」∠)又扯了好多蛋……
之前看了王垠写的一个文章,叫做《我和google的故事》。里头是他对自己做的一个项目的吐槽。梗概是:他的任务要写一个python 代码检索工具。现有的 IDE 的 python 代码高亮都已正则为主,没有做语法分析的。他找出了 Jython 的 AST 模块,然后做了加强。
乍一看很好很牛叉。但王显然不知道 python 从2.5(2006年)自带 AST 模块吧,而 pep8 检查的也是基于这个的,这些都是开源的。可能的合理解释就是他的项目必须用 java 实现。
如果不是这贴,我也根本不会知道他在做的项目,依然能用 python 糊口。
他做的 pysonar 其中很牛的一点就是能够猜出变量的类型。但这点似乎并不是很实用。不信,你问问 python / js 的码农们,变量类型重要么?当然,对于 java / c++ 背景的人是无法接受动态的变量类型。
他在程序员的心理疾病中说,他显然比 Guido van Rossum (python 创造者)的水平高很多,然后都清楚了 python 的问题。
然而我也没有见到他针对 python 的大问题做出了什么改进,譬如 GIL。对于 python 性能提升比较大的项目,譬如 pypy 还有 cython,也没听他提起。
能做出一个 python 的语法分析器,显然是挺有技术含量的。不过据他所说,有很大一部分成果是基于 Jython 的。当然,我没有研究过其中的源码,也不知道他到底是做了多少的工作。