信仰是如何毁掉程序员的

英文原文:[How Religion Destroys Programmers]

我发现了关于我自身的一些东西——我有一个牛逼的天赋,就是我总能在技术上做出最好的选择。


哦,不是牛逼,是相当牛逼。

回首我的开发生涯,我认为我使用的任何一种编程语言都是当时情景下最好的那一个。

同样的,我选择的框架,甚至操作系统也是最好的。

是的,我有这个惊人的能力,就是从技术的海洋中挑出最好的(这些技术我甚至不用亲自试一遍)并极力捍卫我的选择。

可能当你在阅读本文的时候,你已经发现了你也有这种神秘的能力。

大多数开发者有技术信仰

这是真的。

不要感到丢脸,你不是一个人。我自己,和几乎每一个人,与你同在。


我们中的一些人已经脱离了自我洗脑。另一些人则非常幸福地并没有意识到我们所处的困境。但是我们中的大部分人至少拥有一个为自己制作的信仰。

这是非常正常的,因为大多数程序员进入软件开发这个领域是因为他们对软件开发充满了热情。任何你热爱的事情都非常容易导致你对它产生一些非常不客观的看法。

拿体育迷来举个例子,我自己并不是一个体育迷,但我知道不同种类运动的粉丝笃信他们支持的队伍是最牛逼的,尽管所有的证据都指向了相反的方向。

对自己选择和想法的捍卫是人类的天性。我们容易采纳新的相法,但是我们虔诚地捍卫我们已有的,而不需要太多的证据来支持他们。问题在于我们倾向于把我们对事情的看法与我们的身份,甚至我们作为人的价值捆绑在一起。

需要灵魂深处的搜索,但是如果你看一下你自己,你很有可能会发现,你可以列举出最好的操作系统,编程语言以及框架等等。

无知不是福

这种自我强加的信仰导致的问题是,它让我们看不到真相。

在我真正使用了一台Mac之前,我曾经花了无数时间争论它为什么这么垃圾。具有讽刺意味的是,我现在正在一台Mac上面写这篇文章,但我通过远程桌面使用Windows Live Writer来写。而且实际上,这个博客被托管在一个云端Ubuntu服务器的一个PHP应用上,你可能听过它的名字,叫做WordPress。

我的观点是,我们大多数人极力争辩我们选择的技术是最好的,而甚至没有尝试过别的技术。

想象一下,似乎很可笑。但是甚至今天,我都能发现我在这么做。

当我审视我自己,问自己为什么的时候,我发现,大部分动机来自于,我对我所学到的和掌握的知识的自豪和对我所不知道的知识的恐惧这两者的结合。

我发现,如果花一些时间学习一门技术并了解为什么别人这么喜欢它,我就不会如此轻易地把我不知道的技术当做“垃圾”或者“废物”一样扔掉。正如他人所说,一个人的垃圾正是另一个人的宝藏。

关于无脑信仰的问题

即使我不告诉你,你也知道,在这个世界上,无脑(脑残)的狂热是一股毁灭性的力量。你只需要去你最喜欢的国家新闻网站或者读一点历史就知道怎么回事了。


尽管没有太多程序员会挑起PHP vs C#的争议,但是,很多开发者喜欢大声争论自己的意见,甚至盛气凌人地推翻他人的工作。我相信你们一定看到过很多这样的情景,如果你们常常上网的话。当我有胆量发表一些关于JavaScript的负面文章时,我自己也吞下了这样的苦水(这里原文嵌套了太多从句,水平有限,截取了句子主干,如果有兴趣,请阅读原文)。

所以,我们可能觉得,我们的无知并没有伤害任何人,并且我们觉得他们活该因为他们明显是错的,然而真相是,我们的无知留下了相当多的破坏。

回首过去,我感到非常羞愧,因为我将Perl程序员贬低得一无是处,完全否定他们的劳动成果,并且非常无知地推举我神圣的静态类C语言为可以净化他们的唯一救世主。

但是最重要的是,我发现我伤害的其实是我自己。

别再打自己脸了,傻瓜!

我职业生涯最大的成长得益于,在我寻找一份C#开发的工作时,得到了一个非常好的机会去做一个JAVA项目的架构师。

我被这个决定折磨得够呛。因为我知道JAVA是垃圾的、邪恶的。JAVA缺少像C#那样的属性,需要手写getter和setter,所以每一个写JAVA代码的人明显是傻逼。

我几乎没有接受那份工作,但是我觉得待遇很好,可以勉强一下自己忍一忍过去算了,就像一个战俘等待有一天我的微软大帝可以拯救我。我想,我至少得脱离那种恶心的JAVA写法。

然而,经过了一些年的开发,编写良好的JAVA代码单元测试之后,我发现,其实不仅JAVA没那么屎,这个语言的一些长处和一些JAVA框架也值得称赞。

更重要的是,我开始意识到我过去的代码偏执为我关上了很多扇门。我开始觉得,可能我过去所有的技术选择都不一定是最好的。我开始思考,其实许多最流行的技术,它们之间并没有那么大的区别。

我开始意识到,相对于无脑崇拜某个我凑巧选择的技术,广泛地理解一系列技术和编程语言可以使我变得更有价值。

现在,我发现我对单个的技术理解得特别快,因为不再是”eating what I was fed“,我可以用我的大脑去比较和对比不同编程语言和技术之间的区别,这样使我对所有的一切都有了更深的理解。

当我最近把我的博客迁移到Digital Ocean的云端linux服务器时,它提醒我,我自身的缺点仍然存在着。

开始的时候,我倾向于选择Windows技术去部署Web应用,但是我难以说服自己,一个月只花$10,就能拥有表现很好的云端Linux服务器不是一个好的选择。

说了这么多,我的观点就是,对技术的选择持封闭态度最后只会伤害你自己并限制你作为一个开发者的个人成长。

(这里又两本很好的书可以帮助你打破这些壁垒:「Seven Languages in Seven Weeks」「Seven Databases in Seven Weeks」)

没有最好的

在结束这篇文章之前,我恳求你相信”没有最好的技术或者编程语言“。

我不会侮辱你的智商,说编程语言各有各的好,各自处理不同的情况。因为真相远比这个深刻。

在制作了超过40部非常广泛的技术和编程语言的Pluralsight课程之后,我发现了一些真相。

真相是,有很多很好的方法能做成同一件相同的事情,使用不同的工具和技术。

真相是,所有的编程语言和技术都有一些大错误和大弱点。

真相是,你学的不同技术越多,你越能发现大多数技术核心的东西是非常相似的。我指的是,编写软件的核心概念,无关乎技术和编程语言语法。

跟我一样,你也会发现,如果你愿意接受其他技术并且承认自己的无知,并从中学习,那么,不管你去了哪里,你都会找到很多乐于助人的友好人士,他们非常乐于把他们知道的东西教给你。


来源:http://brotherb.info/2013/08/01/how-religion-destroys-programmers/


猜你喜欢

转载自blog.csdn.net/slyfairy/article/details/14222227