我是乙個完美主義者,或者,至少我喜歡這樣自居。不管怎樣,我絕對離完美主義者不遠了。
這樣本來挺好的。然而,我最近意識到,它實際上阻礙我成為乙個更出色的開發者。至少,它阻礙了我的進步,並妨礙了我的學習。
像很多初級開發者和普通開發者,我有乙個不完成副專案(side projects)的習慣。不是因為我懶或沒時間,出於某種原因,我似乎從來不會把事情做完。
然後就是受打擊的地方了。
在進行專案時,我一直努力追求完美,
這就是問題的所在。
怎麼定義完美?完美是什麼意思?完美真的是乙個可以實現的目標嗎?
對我來說,我想交出一些了不起的東西,盡自己所能做出一些東西。
想法是好的,但作為乙個初級開發者,我面對的困境是,因為我每天都在學習,我的能力在不斷增強。
這樣的話,我如何才能盡自己最大(且不斷提高的)能力,將乙個專案做到最好?!
作為開發者,這是阻礙我進步的關鍵因素。我不知道要在**確定一條底線。我覺得很難對自己說「夠了,可以繼續前進了」。
而有時候,情況甚至會變得有些愚蠢…
6 個月前,我寫了乙個簡單的 url 縮短器,以熟悉 symfony 框架。我花了幾個晚上的時間,做出了乙個基本的工作產品(working product),以及乙個大的框架介紹。做得很開心?好吧,不盡然。
信不信由你,3 個月後,我仍在對這個小專案修修補補:修改樣式,用 ajax 改進表單提交,我甚至考慮過用 vue 或 react 來實現。
隨著我的能力和知識的不斷增加,我完全無法繼續前進。我不斷看到能夠改進的地方,並有了更好的改進方法。
這在商業環境中是好事。在產品或專案上不斷進行改進和迭代非常贊。
但是,作為乙個小小的學習專案,我明顯用力過猛了,正在努力解決乙個並不存在的問題。這不是嘗試給 bitly(知名短**服務)造乙個競爭對手,我只是利用這個小專案來加強自身的學習。事實上,根本沒有人會看到這個專案!
我並不是唯一會這麼做的人,即使最有經驗的開發者,也會在某個時候遇到類似的情況。當他們回顧幾年前寫的**,他們可能會羞愧難當,甚至可能會對自己幾個月前寫的**感到震驚。
作為開發者,無論處於什麼水平,你都在不斷學習,這是野獸的天性。而經驗告訴我們,你只有學會放手,才能繼續前進。
但說起來容易做起來難。作為乙個初級的,或有抱負的開發者,「單單」繼續前進就顯得難得多了。在現實中,除非你的**接受他人的審查,否則你完全不知道好與壞的標準。
我的建議是,在你學習時,要建立一些東西,直到它看起來很得體,並能正常工作,此時你需要忘掉它繼續前進。不要尋求完美,這是不存在的~ 你應該將時間花在學習並鑽研更大、更好的事情上,而不是花在類似調整無關要緊的內邊距這一類事情上。請務必相信我這個過來人的經驗之談!
我最終明白了「完成即完美」這句話,這也是二八定律告訴我們的道理。(原因與結果、投入與產出、努力與報酬之間的關係往往是不平衡的,結果、產出或報酬的 80% 取決於 20% 的原因、投入或努力。)
當你處於學習階段時,所有的專案都不需要做到「完美」。它們本身就是用於學習的專案,做完儘管放手讓它們去。
瞎搞瞎弄、縫縫補補、或者試圖壓縮最後 10% 的時間,這些都不是對有限時間的合理使用方式。
在 web 開發中,完美是不存在的。
只有一種情況除外,那就是…完成,因為「完成即完美(done === perfect)」。
隨著時間的推移,你能做出更大、更好的東西!
完美主義對程式設計師的影響
乙個系統可以維持 5 年,10 年,甚至 20 年以上,但是 和設計模式的生命週期非常短,當對乙個解決方案使用不同的方法進行迭代的時候,通常只能維持數月,數日,甚至幾分鐘的時間。隨著對 是如何改變的研究,致力於 修改藝術的人發現了乙個 庫的規律曲線。每個系統都有很多從未改變的 但是也有小部分非常重要...
完美程式設計師
完美程式設計師的每種品質都有乙個範圍,這個範圍取決於具體的問題和背景。沒有能解決所有問題的完美程式設計師 至少在我們這個星球上 並且對於特定問題,完美程式設計師應該具有以下品質 1.才智非凡 能夠理解問題 能夠用清晰可讀的 翻譯並表達想法 善於分析並且邏輯思維能力強 範圍 用簡單方式解決複雜問題 2...
公司福利對程式設計師有些什麼影響?
首先來說乙個高階程式設計師並非靠自己讀幾本書寫幾萬行 就能練就的,我更關注於低層的環境,也就是程式設計師實實在在的工作環境。因為程式設計師的高低還得 從實際的工作來衡量,而非其它。所以我想說的是,中國的軟體公司的性質直接導致程式設計師的水平的高低。而我所說的軟體公司,不是指某個或者某幾個,而是指主 ...