完美主義對新手程序員的影響

2017-9-7 21:48| 發布者: 小貝| 查看: 133255| 評論: 0

摘要: 小城市(二三線的城市)IT業發展比較薄弱,有些城市可能連真正做IT的比較大的公司都沒有幾家,就只有那屈指可數的幾家公司;公司少,選擇和發展的空間相對也小,——這也造成了留在本地的程序員較少,剛畢業的基本上都想 ...

我是一個完美主義者,或者,至少我喜歡這樣自居。不管怎樣,我絕對離完美主義者不遠了。

這樣本來挺好的。然而,我最近意識到,它實際上阻礙我成為一個更出色的開發者。至少,它阻礙了我的進步,并妨礙了我的學習。

像很多初級開發者和普通開發者,我有一個不完成副項目(side projects)的習慣。不是因為我懶或沒時間,出于某種原因,我似乎從來不會把事情做完。

然后就是受打擊的地方了。

在進行項目時,我一直努力追求完美,

這就是問題的所在。

怎么定義完美?完美是什么意思?完美真的是一個可以實現的目標嗎?

對我來說,我想交出一些了不起的東西,盡自己所能做出一些東西。

想法是好的,但作為一個初級開發者,我面對的困境是,因為我每天都在學習,我的能力在不斷增強。

這樣的話,我如何才能盡自己最大(且不斷提高的)能力,將一個項目做到最好?!

作為開發者,這是阻礙我進步的關鍵因素。我不知道要在哪里確定一條底線。我覺得很難對自己說“夠了,可以繼續前進了”。

而有時候,情況甚至會變得有些愚蠢…

6 個月前,我寫了一個簡單的 URL 縮短器,以熟悉 Symfony 框架。我花了幾個晚上的時間,做出了一個基本的工作產品(Working Product),以及一個大的框架介紹。做得很開心?好吧,不盡然。

信不信由你,3 個月后,我仍在對這個小項目修修補補:修改樣式,用 Ajax 改進表單提交,我甚至考慮過用 Vue 或 React 來實現。

隨著我的能力和知識的不斷增加,我完全無法繼續前進。我不斷看到能夠改進的地方,并有了更好的改進方法。

這在商業環境中是好事。在產品或項目上不斷進行改進和迭代非常贊。

但是,作為一個小小的學習項目,我明顯用力過猛了,正在努力解決一個并不存在的問題。這不是嘗試給 Bitly(知名短網址服務)造一個競爭對手,我只是利用這個小項目來加強自身的學習。事實上,根本沒有人會看到這個項目!

我并不是唯一會這么做的人,即使最有經驗的開發者,也會在某個時候遇到類似的情況。當他們回顧幾年前寫的代碼,他們可能會羞愧難當,甚至可能會對自己幾個月前寫的代碼感到震驚。

作為開發者,無論處于什么水平,你都在不斷學習,這是野獸的天性。而經驗告訴我們,你只有學會放手,才能繼續前進。

但說起來容易做起來難。作為一個初級的,或有抱負的開發者,“單單”繼續前進就顯得難得多了。在現實中,除非你的代碼接受他人的審查,否則你完全不知道好與壞的標準。

我的建議是,在你學習時,要創建一些東西,直到它看起來很得體,并能正常工作,此時你需要忘掉它繼續前進。不要尋求完美,這是不存在的~ 你應該將時間花在學習并鉆研更大、更好的事情上,而不是花在類似調整無關要緊的內邊距這一類事情上。請務必相信我這個過來人的經驗之談!

我最終明白了“完成即完美”這句話,這也是二八定律告訴我們的道理。(原因與結果、投入與產出、努力與報酬之間的關系往往是不平衡的,結果、產出或報酬的 80% 取決于 20% 的原因、投入或努力。)

當你處于學習階段時,所有的項目都不需要做到“完美”。它們本身就是用于學習的項目,做完盡管放手讓它們去。

瞎搞瞎弄、縫縫補補、或者試圖壓縮最后 10% 的時間,這些都不是對有限時間的合理使用方式。

在 Web 開發中,完美是不存在的。

只有一種情況除外,那就是…完成,因為“完成即完美(done === perfect)”。

隨著時間的推移,你能做出更大、更好的東西!

相關閱讀