1. 程式人生 > >程序員30過後

程序員30過後

分層 不知道 積累 觀點 新技術 deb 引用 數據結構 走了

最近博客園裏程序員過30歲能不能再寫程序的帖子好像又火起來了。所以今天有空,再看到這樣的帖子,總是忍不住要多說幾句。
關於這個話題,我能給大家一個不同視角的啟示。當然,個人意見,僅供參考,這本來就是一個仁者見仁,智者見智的話題。
下面我就以下一些常見的觀點逐個的談一談。

1. 程序員的門檻低。

當年找工作的時候,別人問我的專業,感覺低人一等。結果進來了,才發現,很多同事,原來都不是科班出身,而且他們做得很好!
所以很多人就開始自怨自艾,當初選錯了專業,自己辛辛苦苦學了4年,結果出來什麽都不是了……

但我想問的是:

1.1 哪一種職業的門檻高?就我所經歷過的所有職業而言,程序員的門檻是最高的了!我們所處的是一個開放的社會啊!只要你願意學,其實沒有多少是你學不會的。農民都可以造飛機呀!

1.2 你是不是真的在大學“辛辛苦苦”的學了4年?之所以有這樣的懷疑,第一,我大學純粹是混過來的,包括幾乎我所有的同學;第二,我考“軟設”的時候,才發現,掛掉的,很多都是科班生(當然,他們可能才大一、大二,或者沒有像我一樣“應試”);第三,我知道有一些計算機專業的學生,大三大四的時候就已經有很高的技術水平,並藉此小有收入了,讓我直後悔,當時要是我學計算機……


2. 程序員幹的是體力活。

說這話的同學,說的無非就是“加班”和“沒技術含量”。

我仍然想問的是:
2.1 有多少職業不加班?我爸做建築,我做裝飾的時候,趕進度,睡工棚,通宵達旦,是常事。我弟弟,當公務員,周末出差還沒得調休,聽說我加了班還有調休,都要跳起來了。
2.2 據說微軟不加班、Google不加班,為什麽你不去,或者你去不了?為什麽你的工作沒“技術含量”?換過來想,你問一問,微軟、Google的技術員下班之後都在幹什麽?(如果有人剛好是微軟、Google的,回個話)


3. 中國現在軟件行業狀況太惡劣了。

我仍然想問的是:
你為這個惡劣的軟件行業做過什麽?這聽上去要求有點高,但實際上,你多寫一份文檔、多規範一行代碼,多寫一篇技術博客……這些都可以是你的貢獻。不積跬步,無以致千裏。正是由於我們每一個人的努力,每一份微薄的貢獻,才促使我們的生活一天一天的好起來。


4. 軟件行業技術更新快。

所以,年齡大的程序員的經驗積累沒有用,幹了10年8年,又得回頭和小夥子拼技術。

我仍然想問的是:
不知道大家有沒有想過,在日新月異的計算機技術中,有沒有不變的東西?我見過的最常見的答復是,“有,算法(思想/數據結構),算法是不會過時的”;然後很多人開始鉆研算法,但一會就有人冒出來了,“大家在實際工作中究竟有沒有用到過算法喲?”,而回答常常會令他們很傷心。(這個有時間另行談論)
就我的理解,和任何技術一樣,軟件開發技術一樣是要講積累的!


我是一開始就學C#、ASP.NET的,但學到一定的時候,我自己都知道,再也學不下去了。一些基本的概念,你根本無法理解:引用類型/值類型?編譯時/運行時?hash是什麽?cookie/session是什麽?為什麽要分層?設計模式用來幹嘛……這些知識,不是買幾本《asp.net2.0入門》,《C#高級編程》之類的書可以解決的。
進入工作之後,你發現問題更多:你一天都搞不定的bug,老程序員幾分鐘就搞定了;你絞盡腦汁也想不到的實現方式,老程序員眼睛都不眨一下,就有了思路;客戶的需求文檔,你覺得爛得像狗屎一樣,根本就狗屁不通,但老程序員拿到就可以開始做……差距啊!
據我所知,C語言就有指針,asp就有cookie和session,學JavaScript就應該知道什麽是解釋執行,了解hash是數據結構的基本功;完全可以想象,有了這些積累之後,學C#、asp.net是不是更容易得多?
忘了誰說過(好像是金旭亮老師),“沒有寫過10萬行代碼,就不要談設計模式”,對於軟件工程的深刻理解,絕對是需要長久的工作經驗的浸淫的?當你被客戶不斷變化的需求折磨得快瘋了的時候,你一定會理解為什麽需要設計模式;當你在asp頁面裏面找代碼找到眼淚都流出來的做時候,你一定會明白asp.net的codebehind、控件開發的必要性。
如果你發現你工作5年10年之後,你還沒有一個剛畢業的小夥子學新技術快,沒他學得好(理解的深度也相當重要),那可能有兩種情況:這小夥子天賦異稟,絕對屬於牛人級別的,這種情況你就認命吧,幾萬分之一的牛人都被你遇上了;另一種情況就是你這5年10年都白混了!

其實,在學習的道路上,沒有多少捷徑可走,“絕知此事要躬行”!很多人回憶他們的成長經歷,都會覺得自己當年走了不少彎路。但要知道,你今天能認識到那是彎路,這就是你現在和過去不同的地方!
不知道大家有沒有想過,一個程序員,怎麽樣才算“好”?會一種誰也不會的語言?懂一種誰也不懂的算法?知道一種誰也不知道的設計模式?……其實不是,至少我認為不是。

一個優秀的程序員,他的氣質是內實而外溢的。
他基礎紮實,多年的孜孜以求,使他的根須,又深又密,他可以汲取一切可以汲取的知識,來供給他枝繁葉茂的成長;
他經驗豐富,閱歷廣闊,見證了計算機技術的滄桑變遷,無論成功或失敗,他都有所收獲;
他成竹在胸,所以淡定而從容,他沒有什麽抱怨,只有幾許堅持;
他熱愛,所以他執著,所以他樂於分享;
而這所有的一切,都需要歲月的洗禮,執著的堅持,不懈的奮鬥。否則,何謂“沈澱”?

中國的軟件開發起步很晚,可能最早的一批程序員也是在80年代末90年代初才走上工作崗位,而蓬勃興起,應該是在90年代末了。所以做IT的,大多數人看上去,都很年輕。但即使這樣,他們中的很多人都應該已過而立之年。他們,都失業了嗎?都轉行了麽?很想做一個調查,但僅就我目所能及,他們,都在各自工作崗位上發揮著無可替代的作用。

話說得很刻薄,但不如此,恐怕會有更多的年輕人背負莫名的恐懼和猶豫,而忘了,前行,是驅散前方陰霾的唯一手段。

程序員30過後