別人家的程序員:如何克服騙子綜合癥,避開自我懷疑的陷阱
騙子綜合癥(Impostor Syndrome)困擾著很多人,即使他們在某些方面取得了成功,卻把成功歸因于外部因素,否定了自身做出的努力。對于程序員來說,他們該如何克服騙子綜合癥,避開自我懷疑的陷阱,讓自己變成一個自信的大神?
你是否會有這樣的感覺,總擔心自己不夠好?抬頭看看周圍的人,他們好像都比你強。他們的代碼寫得比你好,他們的調式速度比你快,他們只要瞄上一眼文檔就能理解其中的內容。他們自信,他們享受寫代碼的過程。
再回頭看看自己,擔心自己對某某框架不夠了解,擔心對某一門編程語言掌握得不夠熟練,擔心寫代碼出現bug。你擔心趕不上新的技術潮流,擔心自己沒有技術天分。于是你開始懷疑自己:“或許***注定我成為不了一個好的程序員”。
“你不是一個人在戰斗”
如果你也有過類似的疑慮,那么我可以告訴你:“你不是一個人在戰斗”。曾經有一段時間,我也經常懷疑自己。在大學畢業找工作那段時間,我為面試做準備,那些算法題給我帶來了無盡的挫敗感。所幸的是,我的努力最終還是讓我獲得了回報,我拿到了幾家大公司的offer。從這一段經歷當中,我學會了如何從不同的角度來看待編程以及如何避開自我懷疑的陷阱。
卡殼是正常的
編程就像健身,要練出一身好肌肉,就要去健身房舉啞鈴,要學習編程,就要耐心坐下來寫代碼。去完健身房最多就是第二天會感覺累,而如果卡在一個編程問題上,你會感覺到挫敗。
身體上短暫的痛苦并不會讓你停下鍛煉的腳步,因為你知道這是不可避免的過程。而如果你卡在一個編程問題上,你可能會懷疑自己的編程能力。因為你會覺得卡殼是自己的錯,而同樣的問題對別人來說可能很容易就能搞定。
或許沒有人告訴你,卡殼是再正常不過的事情了,即使是編程大牛也會卡殼。編程是一個尋找正確答案的過程。我記得以前卡殼的時候,我恨不得抓著自己的腦袋往墻上撞。我對那種沮喪感深有體會,特別是在處理那些與開發環境相關問題的時候。但如果你能夠稍安勿躁,借助搜索引擎、問問其他人,或者出去透透氣,問題最終總能得到解決。而隨著經驗的積累,以后卡殼的情況就會越來越少。
如果下次再卡殼,不要陷在其中不能自拔。告訴自己,這不是你的錯,這只是整個過程不可避免的一部分。
先天和后天
在大學的***一個學期,朋友們非常驚訝我的數據結構和算法這門課程為什么可以學得那么好。他們都學得很吃力,而我看起來似乎很輕松。
但他們并不知道,在這門課開始前的幾個月,為了準備工作面試,我已經花了無數個小時練習這些算法,而這些算法剛好與這門課程的內容差不多:動態規劃、深度優先搜索、廣度優先搜索,等等。我看起來學得毫不費勁,那是因為我已經付出了很多。
在剛開始學習這些算法的時候,一道題目可能花上我幾個小時,到***還是解不出來。于是我在網上查找答案,試著去理解別人的解法。雖然到***能理解了,但卻感到愈加挫敗,因為我會覺得單靠自己的能力永遠無法解決這些問題。
所以,請相信我,自我懷疑的滋味我已經品嘗過無數次了。在這個問題上,我們并不孤獨,很多優秀的程序員也都有過這樣的經歷。
如果下次再陷入這種心境,不要總想著自己沒有天分,也不用總覺得別人比你好,他們只是比你付出了更多努力來跨過這個陷阱。在你經歷過這些掙扎,你也會像他們一樣,看起來那么聰明,解決起問題來那么不費吹飛之力。
忘了你自己吧
不要再浪費時間去思考自己是不是一個好程序員。如果你在團隊里屬于墊底的那幾個,那么你肯定想讓自己變得更好。如果你在團隊里屬于佼佼者,你仍然會想著讓自己變得更好。不管你處在什么位置上,總會有人在你前面,也總有人在你后面,那么為什么還要浪費時間去想這個問題呢?反過來,不如多想想怎樣才能提升你的代碼質量,怎樣才能把代碼寫得更好、讓人更容易讀懂、運行得更快。
記錄你的每一個進步
想想上一次你是在什么時候卡殼的,后來又是怎么解決問題的?
把它記錄下來,下次再卡殼的時候,就拿出來看看,然后提醒自己:如果我能解決上次的那個問題,那么這個問題應該也能解決。
把你解決過的問題和從中學到的東西都記錄下來,每一次都給自己一些鼓勵。如果有可能,把你的經驗分享給那些還在自我懷疑困境中掙扎的人,告訴他們——“你不是一個人戰斗”。