我個人的經歷略有一點特別,本身學的專業並不是軟件,但在當年軟件熱的背景下,加入了這個行業。
由於很多同學仍在原來的行業,時不時的溝通讓我反思軟件開發究竟和機械制造這類行業有啥區別。
老實講,對於畢業生而言,10年前做軟件收入要比做機械制造有明顯優勢,但10年后的今天這種優勢就不明顯了。
這也是觸發我考慮這種問題的一個原因。
軟件行業與機械制造比一個很不同的特質:知識更迭頻度較快。
在考慮如何使自己升值時,這一特質有關鍵影響。
技術更迭較快說的是這樣一種現象:今天有價值的,明天可能會貶值為0。
這點與機械制造差別很大,比如:學做渦輪機。在做渦輪機這樣的行業里,今天學的熱力學三定律和五十年前的熱力學三定律並無差別。
但軟件行業不行,你所依賴的某一平台或語言很容易產生更迭。10幾年前大家只有Win32 API好用,但一個人如果只停留在Win32 API里,是不太能適應今天的軟件開發的。像Delphi這類曾經非常顯赫的開發環境,今天更是幾乎沒什么聲音了。
這也許源自於這樣一種現實,很多傳統行業的技能直接依賴於某種自然規律如:熱力學、流體力學、材料力學等等。這些東西自身只會深化,但很少會有顛覆性變化。但軟件開發所需的東西(API等)往往依賴於某一個公司或組織,比如微軟,蘋果等,進而是一種人造系統。一旦社會基本需求發生變化,這些公司或組織就必需不斷的拋棄並更新自己的系統,比如:GDI -->GDI+ -->WPF。
可以打一個比方來使這種差異更形象一點:
好比說兩個不同的人,一個在傳統行業一個在軟件行業,兩個人都很勤奮,不停的往自己腳下墊東西,努力使自己達到更高的位置。傳統行業中的人比較自然的會越墊越高,而軟件行業中的人則會墊到一定時候,突然間某幾塊磚就會消失了。
這倒並不意味着軟件行業中並非沒有具有較長生命價值的東西,但這些東西往往集中在一些特定的領域里,牽涉的從業人員比較少因此不太具有代表性。最典型的東西就是通用數據結構和算法,今天的排序算法在10年后必然同樣具有價值,但專門從事算法優化改良的畢竟是少數。具美國人統計的數據干這類勾當的人占比還不到5%,而95%的人要和更迭較快的技術打交道。
這一基本特質的影響非常深遠,比如你可能很努力的跑,但一不小心就落后了,既不是因為你跑不快,也不是因為你不努力。
簡單來講,在機械制造里隨着時間,一個人的稀缺性往往是逐步遞增的,那當然他收入也是逐步遞增的,只要這個行業還在。
而軟件開發不是,一旦被重置,那么白頭發的就可能還不如剛畢業的。
在規划自己職業路徑學習方法時,不考慮這個恐怕不行,會很容易被后浪拍在沙灘上,再實在點講這也影響收入。
--------------------------------------------------------------
理想流 + 軟件 = 《完美軟件開發:方法與邏輯》
理想流 + 人生 = ??
理想流 + 管理 = ??
理想流 = 以概念和邏輯推演本質,追求真理。