十条无我编程的戒律

十条无我编程的戒律

下面是译自Jeff Atwood的The Ten Commandments of Egoless Programming

======我是华丽的分割线======

这十条无我编程的戒律,源自Jerry Weinberg的《程序开发心理学》一书。

  1. 理解并接受你所犯的错。这是说尽早的在产品发布之前发现这些错误。幸好我们不是在JPL(隶属NASA的喷气推进实验室)开发火箭制导软件的一小撮人,在我们的行业中很难出现致命错误,所以我们可以也必须从错误中学习、开怀并且继续前行。
  2. 你并不等于你的代码。记住审查的目的是为了找到问题,而且问题一定会被找到。不要为一个没有发现的问题而自责。
  3. 你知道多少不重要,总有人知道的比你多。如果你问一个人他总能告诉你一些新鲜的玩意。寻找并且从其他人那里接受输入,尤其是你觉的你不需要的时候。
  4. 没有商讨就不要重写代码。在修复代码和重写代码之间总有一条不错的界线,知晓其中的不同,并在代码审查的框架中追查文法上的变化,而不是孤僻的强迫症。
  5. 用耐心和尊敬善待那些知道的比你少的人。非技术人员在和开发打交道时普遍持有偏见,好一些情况下认为我们是一群自负的怪人,坏一些的情况下认为我们是一群玻璃心。不要用愤怒和不耐烦加深这种偏见。
  6. 在这个世界上持续存在的只有变化。用微笑和开放的心态去接受变化。把每一个需求、平台或是工具上的变化视作新的挑战,而不是严重的不利因素去抵触。
  7. 真正的权威来自于知识,并不是职位。知识带来权威,权威带来尊敬,所以你如果想要在一个自大的环境中受尊敬,增加知识吧。
  8. 为你的信仰而战,但也要勇于承担。要知道有时候你的想法会被批驳。即便最终你是对的,也不要报复或者说“我早就说了”这样的话,也不要作出一副为你的想法惋惜或者哭诉的模样。
  9. 不要成为屋子里的人。不要成为长期处在阴暗角落且打水的时候才出现的码农,屋子里的人与世隔绝、淡出人们视线、失控且在开放协作的环境中无立锥之地。
  10. 批评代码而不是批评人——善待码农,而不是代码。尽可能的让你的评论都是积极的而且目的是促进代码质量。评论要和标准,编程规范,优化性能等内容相关。

软件的人性化的准则真是不过时的。这本《程序开发心理学》成书于1971年,而一年后我才出生。

======我是华丽的分割线======

Guixing 翻译于 2017-06-06 

黑客帝国的Neo和围棋世界的柯洁

黑客帝国(The Matrix, 1999)一直是我非常喜欢的一部科幻片,其中世界设定值得深思,不时的就会质疑自己是不是一块电池。Neo作为电影的主角有洞悉虚拟世界的能力,也被称之为救世主,在电影的3部曲结束之后,Neo战败,Matrix清除了Agent Smith,达成了人类和机器的和平。

自从 AlphaGo 去年4/5大败李世石之后,人类的围棋世界其实就已经崩塌了,无法战胜 AlphaGo 已经是必然。 今年柯洁和 AlphaGo 的对决以3:0落败,也成了 AlphaGo 的收官之作,从此退役,独孤求败。而柯洁也和 Deepmind 达成共同研究 AlphaGo,让其辅助人类研究围棋。

Neo和柯洁某种程度上何其相似,在 Matrix 即将摧毁人类最后的据点 Zion 之时,Matrix 打败了 Neo,获取了 Agent 的代码,完善了自己。柯洁最后大败给 AlphaGo,但柯洁也开始帮助 AlphaGo 进一步完善。

AI的一直是科幻界的主题,那部以人工智能(2001)命名的电影,人工智能把自己都给骗了,David努力在寻找自己不是人造的(Artificial)的证据,并且一直在寻找变成真正小孩的方法,最后发现自己并没有唯一性也不能变成真小孩,但是奇幻的一点也是他还是有唯一性,所以人工智能从情感上已经无法分辨了。

人类发明AI是科技发展的必然,机器仿生技术的进步必然会促进生活水平的提高。现在很多人还在纠结同性恋,变性人,out了,下一步该怀疑一下和你恋爱的是不是一个AI了。(这个题材也有了,《她》(2013),[捂脸])

AI和机器人的发展,一方面会让财富快速的向掌握AI和机器的人聚拢,另一方面人类会成为机器豢养的宠物。