前一段時間一直在面試,有很多感悟,今天分享下其中的一個話題。
我在面試的時候通常會問這麼一個問題:你為什麼離職?
其中有不少同學會提到這麼一個原因,現在的專案程式碼太爛了,前人留下了很多坑,我實在忍受不了了。
其實在我看來,這個原因顯得未免太不職業了,而且可能把工作想的太過於理想化了。如果因為程式碼很爛就離職,那麼你跳槽到下一個公司依然會面對同樣的現狀,因為幾乎每個人,都會覺得自己公司的專案程式碼很爛。
我們先說說造成這種現象的原因是什麼,首先,我們得相信,沒有任何一個人故意把自己的程式碼寫的很爛,每個人都想把自己的程式碼寫的很優雅,擴充套件性很好,但是可能當初水平不夠,在當時看似還不錯的程式碼,日後在別人看來就是所謂的垃圾程式碼,我們每個人都在進步,別說別人了,你現在看你三個月之前的程式碼,可能你都會覺得寫的很垃圾,如果你沒有這種感覺,只能說你在止步不前。
其次,技術更新換代太快,市場的變化也太快,產品自然也一直在演變,也許在當時看起來還不錯的程式碼,隨著時間的推移,功能的更新,程式碼的堆徹,慢慢就變成後來者眼中的爛程式碼了。
也許你說,我跳到一個新的公司,做一個全新的產品,就不用忍受那些垃圾程式碼了,我有信心把架構設計的非常牛逼,為之後做足夠的擴充套件性考慮,我只能說你想的過於理想化了,我們永遠沒法預測未來,隨著需求與市場的變化,我們的功能一直在迭代,我們的產品也一直在變化,你會發現很可能你之前花了很多心思設計的架構,完全被推翻了,尤其在新產品剛推出的階段,這是一個快速驗證快速迭代的階段,你的理想化的技術性思維,對產品沒有任何幫助,隨著產品的更新迭代,程式碼的不斷增加組合,慢慢的你就會發現,你的那些優雅的程式碼設計,很可能就是你自己口中的爛程式碼,這是一個必然的結果。
這裡也衍生出一個問題,在產品的初期,不要過多的考慮架構設計、效能優化之類的,先把主要精力把功能實現,把產品的體驗提升上去,技術人總是沉醉於先把自己的程式碼寫的完美,其實殊不知,產品能不能成還是一回事呢,先實現再優化,是當今快速發展的網際網路市場最基本的原則。但是你也沒必要故意把程式碼寫的很爛,想著以後單獨抽時間去做重構,我以一個過來人的經驗告訴你,給你單獨的留出時間去做重構幾乎不可能。
所以,如果一家公司各方面發展還不錯,僅僅因為程式碼很爛就離職,跳槽到了另一家公司很可能更糟,而且越是成熟的產品,程式碼遺留問題越多,包括 Google、BAT 等大型網際網路公司依然如此,如果你覺得這家公司還不錯,想一起發展下去,程式碼很爛的話那就試圖去改變一下,給你單獨的時間去做重構很難,那就邊開發功能邊重構,邊迭代邊優化,在不影響產品迭代的情況下,嘗試著去做些力所能及的改變,在這個過程中你會發現,其實你也在慢慢的成長。
大部分人其實都在抱怨環境,只有極少數人會去做點改變,哪怕這些改變微不足道,有些時候,你很可能會因為這些微不足道的改變,得到一些更好的機會。
本文原創釋出微信公眾號 AndroidDeveloper,歡迎關注,聽我扯淡。