程序员应该正确面对的十大错觉
译自Quora:What are the biggest myths software engineers believe
- 再过几个小时哥就能搞定
几乎所有人都会低估开发时间。即便你已经知道会低估,最后你的实际开发时间依然会比预计的多。
- 下个月准时上线
不只是上面提到的开发时间的估计问题,也因为经常有一些突发的情况:比如开会,等待某个环节的工作完成后才能进行(我真的没有在说设计师的效果图,后台的api),或者某些api的稳定问题等等。
- 我喜欢的 语言/框架/无论什么 都是最好的选择
可能是这样,也可能不是。冷静一下,客观的看看其他适合的可能选择,即便是你不喜欢的。不过话说回来,如果这个选择不是太重要而且你喜欢的也是一个优秀的选择,也没人反对,那就这样吧。
- 只要技术牛就够了
错,你还需要其他的一些社交技能,比如学会和人良好的沟通和领导能力。
- 在这方面我是最强的
你可能强,很强,但是你不太可能在哪里都是最强的。更可能这是一种错觉:达克效应(是一种认知偏差,能力欠缺的人有一种虚幻的自我优越感,错误地认为自己比真实情况更加优秀)。有的人只是不知道自己不知道什么,无知罢了。不要自大,保持谦虚。这样你不仅可以和同事更好的相处,也可以从一些你忽略的人身上学习一些东西。正如有人说『聪明的人从傻逼那里学到的东西肯定比傻逼从聪明人那里学到的多』。(Wise men learn more from fools than fools from the wise)
- 这个我搞不定,虽然老板觉得我能搞定,但我就是个渣渣。
也没这么糟啦。你可能低于平均水准,但是应该也不至于是个渣渣。这也有可能是一种错觉:达克效应(对,和上面是同一个,也可以表现为强的人以为自己很弱)。也可以看看这个Imposter Syndrome(“我努力取得的成绩并无法增强我的自信,相反令我倍感自己的无能”)。不要把自己和某个领域的名人相比,你应该和一年前的自己的对比。如果你的同事都比你强,其实也是一件好事,说明你可以从他们身上学到很多东西。
- 对于这个语言/框架/无论什么我已经都了解了。
就算你现在是对的,就算你已经教过别人很多遍这些,只要过五分钟,也会有新的知识出现。就算这个是你发明的,也会有一些人想出一些新想法来怎么使用,或者一种更好的方式去实现等等。再一次,不要自大。
- 我只要了解这语言/框架/无论什么就够了。
这只在你要退休不干或者你不打算在其他时间写代码了才成立。我曾经在二十几年里只用C(作者意指那个时代里只要会C就可以完成工作)。就算在那个时候,我也清楚的知道如果我不学习一些其他现代的语言和技术,我将会被淘汰。我在其他时间里总是不断的学习新东西。我现在主要在用ruby。但是我依然不觉得可以放松,我打算去学JavaScript的app框架(也许是react?)和其他更多的语言。