天天看點

業餘選手成就了軟體開發者?

在一篇名為《軟體開發是輸家的遊戲》(https://thehosk.medium.com/software-development-is-a-losers-game-fc68bb30d7eb)的文章中,作者曾表示:

“我認為,80%的軟體開發人員都是業餘的,隻有20%才是專業人士。”

根據他的定義,業餘開發人員指的是不喜歡被廣泛接受的最佳實踐的開發人員。

其實,我們還可以從另外一個角度來看這個問題。Uncle Bob曾指出,程式員的數量每5年就會翻一番。考慮到大量通過線上資源自學成才的程式員,這個數量實際上會更龐大。這意味着,不論何時,大約有一半程式員的工作經驗都不足5年,75%的程式員工作經驗不足10年。

還有一個因素我喜歡稱之為“期望與經驗的關系”。

業餘選手成就了軟體開發者?

在剛涉足軟體開發時,你會覺得一切似乎皆有可能。你處在懵懂之中,不清楚自己有哪些方面的欠缺。你對某項工作所需的技術、時間以及難度等的估計通常都會很離譜。你還沒有經曆過軟體項目的洗禮。你還沒有與團隊合作過。你還沒有學習到最佳實踐。你知道如何寫代碼,而且充滿了活力。在你看來,代碼審查、SOLID 設計以及标準等一些令人讨厭的實踐似乎都很愚蠢,這些隻不過是妨礙你快速寫代碼的絆腳石。

随着擷取的經驗越來越多,你對自己的能力期望會呈斷崖式下降。你遭遇了幾次失敗。完美的項目在中途被抽走資源。你掌握了一些極端情況。你了解到,通常使用者并不清楚自己真正想要什麼。不合理的期限要求,可能會導緻代碼出現微小的錯誤,但千裡之堤毀于蟻穴,這些錯誤會變得非常痛苦。于是,你開始意識到最佳實踐的重要性,因為你見識了忽略這些實踐的惡劣後果。身處谷底的你認為一切都是不可能的。

身處這個階段的許多開發人員都會覺得疲憊不堪。

堅持過這個階段,并獲得足夠的經驗後,你就會開始遵循這些最佳實踐,而你對自己也越來越有信心。以前沒見過的問題會越來越少。最終你會成長為開發人員之中的佼佼者,你對自己的期望會非常高,而且你非常清楚完成某項工作所需的知識和技術。

我喜歡經驗豐富的開發人員,他們已經成功度過了低谷階段,處于上述曲線的右側。但是,如果我們的行業想避免陷入一團糟,那麼前輩就要站出來幫助後輩。這些最佳實踐很重要。

目前,軟體行業最具破壞性的影響之一是有人認為老程式員該被淘汰。他們認為,這些程式員的薪資太高,而且還需要平衡工作與家庭。他們認為自學成才的25 歲年輕人是物超所值的最佳選擇,因為他們願意每周工作 80 小時。然而,僅靠這樣一支新起之秀的團隊又如何能赢得總冠軍?新老結合才是最佳團隊。

一些開發人員經驗不足,卻認為自己無所不知。我也曾年輕過,也曾愚蠢過。前輩可以幫助晚輩,給他們指路,但這也要看晚輩是否願意聽取這些建議。不幸的是,大多數人隻有在經曆過幾次挫折之後,才能幡然醒悟。

繼續閱讀