信仰是如何毁掉程序员的

我对自己有了新的发现——上天给了我神奇的能力,让我总能做出正确的技术选择。

有些夸张,但的确很神奇。

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

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

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

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

大多数开发者有技术信仰

这是真的。

不要不好意思,你不是一个人。我,几乎每一个人,都与你同在。

我们有些人已经从这种自我洗脑中清醒过来。另一些人则还非常幸福地并没有意识到我们所处的困境。但是我们中的大部分人至少拥有一个为自己信奉的技术信仰。

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

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

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

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

无知不是福

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

在我真正使用了一台Mac之前,我曾经花了无数时间争论它为什么这么垃圾。具有讽刺意味的是,我现在正在一台Mac上面写这篇文章,但是我通过远程桌面使用Windows Live Writer来写。

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

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

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

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

关于无脑信仰的问题

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

虽然没有太多程序员会为PHP vs C#这样的问题而大动干戈——尽管我曾在这样一次相似的、挑衅性的、如今我极力反对的讨论中被指责不该丢椅子——很多开发者还是喜欢大声争论自己的意见,甚至盛气凌人地推翻他人的工作。我相信你们一定看到过很多这样的情景——如果你们常常上网的话。当我大胆的发表一些关于JavaScript的负面文章时,我自己也吞下了这样的苦水

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

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

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

别再打自己脸了,蠢货!

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

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

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

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

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

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

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

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

(这里又两本很好的书可以帮助你打破这些壁垒:《七周七种语言》去 当当网 看 | 去 亚马逊 看和《七周七数据库》 )

没有最好的

在结束这篇文章之前,但愿你能相信我说的”世上没有最好的技术或者编程语言“。

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

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

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

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

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

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

本文最初发表在brotherb 上。

[英文原文:How Religion Destroys Programmers ]

[转] 信仰是如何毁掉程序员的相关推荐

  1. 信仰是如何毁掉程序员的-转载

    信仰是如何毁掉程序员的 投递人 itwriter 发布于 2013-11-04 08:48 评论(3) 有531人阅读  原文链接  [收藏]  « » 英文原文:How Religion Destr ...

  2. 信仰是如何毁掉程序员的

    英文原文:[How Religion Destroys Programmers] 我发现了关于我自身的一些东西--我有一个牛逼的天赋,就是我总能在技术上做出最好的选择. 哦,不是牛逼,是相当牛逼. 回 ...

  3. 技术信仰是如何毁掉程序员的

    我对自己有了新的发现--上天给了我神奇的能力,让我总能做出正确的技术选择.有些夸张,但的确很神奇. 回首我的开发生涯,我认为我使用的任何一种编程语言都是在当时那种场景下最好的.同样的,我选择的框架,甚 ...

  4. 程序员怎么留住健康?

    诚言:程序员是一门苦差事,虽工资待遇相对其他行业略高一点,但是工作节奏和工作压力却远远大于大部分行业.然而,面对这样一个客观事实,仍有很大一部分程序员没有良好的工作方法和生活方式,让自己长期处在亚健康 ...

  5. 移动周报:85后程序员,iOS开源项目,细数7天大事件!

    摘要:在连上七天班之后,我们终于迎来了垂涎已久的端午小长假.在这过去的七天里,移动开发领域发生了哪些大事件?又有哪些值得关注的热点新闻呢?让我们一起通过移动周报来回顾一下吧! 连上七天班之后,我们终于 ...

  6. 提升程序员编程效率的暗黑三条

    首先是训练不足.这个是最直接的原因.你看马戏团的表演人员,那个是最好的例证,当然,奥运选手亦如此.作为同样是吃青春饭的程序员,其实学习和训练绝对是第一生存要诀.熟练的技能会提供给你强大的正面刺激,从而 ...

  7. 程序员健康面临的5大问题

    说实在的,程序员是一门苦差事,虽然工资待遇相对其他行业略高一点,但是工作节奏和工作压力却远远大于大部分行业.然而,面对这样一个客观事实,仍有很大一部分从事网站开发的程序员没有良好的工作方法和生活方式, ...

  8. 一个天才程序员的毁灭性衰落:“偏头痛”毁了他的一生

    白交 发自 凹非寺  量子位 报道 | 公众号 QbitAI 读到这则故事,想分享给每一位程序员朋友--或者是每一位朋友. 故事的主人公,并不在国内享有名气,他创办的公司,也只是垂直行业内为人知,但看 ...

  9. java多语言编程语言_为什么很多程序员信仰“Java是世界上最好的编程语言”

    看到这个标题,估计有不少PHPer要跳进来打我膝盖,跪请各位Java程序员保我周全. 因为PHP是所有web开发中使用最多的语言,也被称为最有生命力的语言,所以也就自然而言有了"PHP是世界 ...

最新文章

  1. 偷看日历?9款 APP 涉嫌过度获取权限 1
  2. LeetCode Add Two Numbers II(栈)
  3. python函数调用时的实参和形参之间传递_python 函数(实参与形参、传递参数)...
  4. AI助力新药研发 腾讯发布「云深智药」平台
  5. v$asm_diskgroup中state的说明
  6. OncePerRequestFilter的作用
  7. java8收集器,Java 8中的收集器collectionAndThen()方法
  8. oracle 14097,ORA-14097: ALTER TABLE EXCHANGE PARTITION 中的列类型或大小不匹配
  9. 自组织特征映射网络1
  10. 数据分析|模糊综合评价法
  11. 计算机两个硬盘如何区分,双硬盘电脑怎么设置主从盘?
  12. 摸鱼儿·雁丘词 / 迈陂塘
  13. 计算机英语说明文,英语说明文
  14. 【夜读】2022年最后10天,致自己!
  15. win10杀毒软件Win Defender设置白名单
  16. 1.深入.NET框架
  17. 创业干货:在众说纷纭中找到前进的方向
  18. Game35传销模式的合约代码公布
  19. [BZOJ4668]冷战
  20. Android水果超市的登录界面,【水果识别】自助水果超市matlab源码含 GUI

热门文章

  1. 为什么好多人不喜欢蓝牙耳机?这五款低延迟游戏蓝牙耳机不是挺好的吗?
  2. C语言 strcpy和memcpy源码实现
  3. MATLAB cftool工具箱——曲线拟合
  4. 在普林斯顿大学做助理教授的日子--施一公教授
  5. 荐书 | 当我们在谈论死亡时,应该说些什么?
  6. 一个多业务、多状态、多操作的交易链路,闲鱼架构如何演进?
  7. AI绘画突然爆火?快速体验二次元画师NovelAI(diffusion)
  8. 小米11青春版参数配置 小米11青春版价格
  9. 华硕adolbook14计算机专业能用吗,首款金属渐变笔记本! 华硕adolbook14评测:充电一次能用2天...
  10. 点击加入我的知识星球!