别人家的程序员:如何克服骗子综合症,避开自我怀疑的陷阱
骗子综合症(Impostor Syndrome)困扰着很多人,即使他们在某些方面取得了成功,却把成功归因于外部因素,否定了自身做出的努力。对于程序员来说,他们该如何克服骗子综合症,避开自我怀疑的陷阱,让自己变成一个自信的大神?
你是否会有这样的感觉,总担心自己不够好?抬头看看周围的人,他们好像都比你强。他们的代码写得比你好,他们的调式速度比你快,他们只要瞄上一眼文档就能理解其中的内容。他们自信,他们享受写代码的过程。
再回头看看自己,担心自己对某某框架不够了解,担心对某一门编程语言掌握得不够熟练,担心写代码出现bug。你担心赶不上新的技术潮流,担心自己没有技术天分。于是你开始怀疑自己:“或许命中注定我成为不了一个好的程序员”。
“你不是一个人在战斗”
如果你也有过类似的疑虑,那么我可以告诉你:“你不是一个人在战斗”。曾经有一段时间,我也经常怀疑自己。在大学毕业找工作那段时间,我为面试做准备,那些算法题给我带来了无尽的挫败感。所幸的是,我的努力最终还是让我获得了回报,我拿到了几家大公司的offer。从这一段经历当中,我学会了如何从不同的角度来看待编程以及如何避开自我怀疑的陷阱。
卡壳是正常的
编程就像健身,要练出一身好肌肉,就要去健身房举哑铃,要学习编程,就要耐心坐下来写代码。去完健身房最多就是第二天会感觉累,而如果卡在一个编程问题上,你会感觉到挫败。
身体上短暂的痛苦并不会让你停下锻炼的脚步,因为你知道这是不可避免的过程。而如果你卡在一个编程问题上,你可能会怀疑自己的编程能力。因为你会觉得卡壳是自己的错,而同样的问题对别人来说可能很容易就能搞定。
或许没有人告诉你,卡壳是再正常不过的事情了,即使是编程大牛也会卡壳。编程是一个寻找正确答案的过程。我记得以前卡壳的时候,我恨不得抓着自己的脑袋往墙上撞。我对那种沮丧感深有体会,特别是在处理那些与开发环境相关问题的时候。但如果你能够稍安勿躁,借助搜索引擎、问问其他人,或者出去透透气,问题最终总能得到解决。而随着经验的积累,以后卡壳的情况就会越来越少。
如果下次再卡壳,不要陷在其中不能自拔。告诉自己,这不是你的错,这只是整个过程不可避免的一部分。
先天和后天
在大学的最后一个学期,朋友们非常惊讶我的数据结构和算法这门课程为什么可以学得那么好。他们都学得很吃力,而我看起来似乎很轻松。
但他们并不知道,在这门课开始前的几个月,为了准备工作面试,我已经花了无数个小时练习这些算法,而这些算法刚好与这门课程的内容差不多:动态规划、深度优先搜索、广度优先搜索,等等。我看起来学得毫不费劲,那是因为我已经付出了很多。
在刚开始学习这些算法的时候,一道题目可能花上我几个小时,到最后还是解不出来。于是我在网上查找答案,试着去理解别人的解法。虽然到最后能理解了,但却感到愈加挫败,因为我会觉得单靠自己的能力永远无法解决这些问题。
所以,请相信我,自我怀疑的滋味我已经品尝过无数次了。在这个问题上,我们并不孤独,很多优秀的程序员也都有过这样的经历。
如果下次再陷入这种心境,不要总想着自己没有天分,也不用总觉得别人比你好,他们只是比你付出了更多努力来跨过这个陷阱。在你经历过这些挣扎,你也会像他们一样,看起来那么聪明,解决起问题来那么不费吹飞之力。
忘了你自己吧
不要再浪费时间去思考自己是不是一个好程序员。如果你在团队里属于垫底的那几个,那么你肯定想让自己变得更好。如果你在团队里属于佼佼者,你仍然会想着让自己变得更好。不管你处在什么位置上,总会有人在你前面,也总有人在你后面,那么为什么还要浪费时间去想这个问题呢?反过来,不如多想想怎样才能提升你的代码质量,怎样才能把代码写得更好、让人更容易读懂、运行得更快。
记录你的每一个进步
想想上一次你是在什么时候卡壳的,后来又是怎么解决问题的?