我承認我已經沒法抵擋“絕味”的鴨脖和鴨腸的誘惑了,尤其是鴨腸,就著這些美味,抿完一聽啤酒,感覺很不錯。今天,我也來吐個槽。已經不止一次地聽到某些人評論.NET的種種不是,抑或是大環境怎麼怎麼不利,甚至有人說做這一行如何如何沒有出路,凡此種種,我只想到了一個詞(bullshit),沒錯,個人看來那就是胡說八道,就是扯淡。
且不說程式設計語言怎麼樣,只需看看我們所從事的這個行業,曾經誕生了多少金領和白領,對當前的社會產生了多麼深遠的影響,這麼一個蓬勃發展的行業,難道就容不下我們的那個小小的心嗎?這個時候,我們得思考一下,是這個行業變了,還是我們太浮躁了呢。
言歸正傳,我們來說說程式設計語言。其實,歸根結底,程式設計語言只是我們針對具體問題提供解決方案的一種工具,一種媒介,個人認為,語言本身並無好壞,各語言都有自己最擅長的應用情境,撇開情境討論程式設計語言的優劣的人,我想引用時下很流行的一個詞彙——真的是蛋疼到家了 。我想沒有人愚蠢到要用C#去寫作業系統,用C/C++去做Web應用,用python去寫硬體驅動吧。諸如某種語言如何好其他語言如何差的討論,我只能當作是某些人在失去創造力和工作熱情之後,以此來尋找一些優越感聊以自慰的阿Q精神的體現。
學習程式設計語言不是大姑娘出嫁,誰也沒有跟特定的語言綁定在一起,不必從一而終,只是在我們工作的領域中,會有所側重。你完全可以同時體驗C#的強大高效、JAVA的正統嚴謹以及Python的簡捷優雅,真的,只要你有足夠的精力和時間。這裡引用一下園子裡的這篇文章—
《通才還是專才》,文中的一些觀點我也是很贊同的。在我們漫長的程式人生中,怎麼可能只學習一種語言、只會用一種工具呢?
好了,關於語言的優劣,這個話題肯定還會經久不衰地討論下去,隨它去吧。接下來說說,我們IT男們為什麼會覺得苦逼。以下幾點是我個人的看法,僅代表我個人的觀點:
1. 產品迭代過程中,該最佳化的沒最佳化,該重構的沒重構
就我個人的經曆而言,開發人員對於做新項目,有苦逼感覺明顯是少數。產品上線後,更多的是維護工作,然後在功能迭代和bug修複的過程中,苦逼的事情就出現了。如果最初的Team Dev有統一的規範還好,若是沒有,那後期的維護極有可能更是沒有章法,你很難想象一些人會在源碼中加入什麼。對於功能改進,就像是打補丁,隨著時間的推移,項目肯定會變得越來越累贅、越來越龐大。其實這種時候,往往代表著產品架構應該做出調整了,開發人員應該對產品進行必要的重構了。但是很悲催的是,我們必須承認,現實之中擁有這種能力的開發人員並不多。
於是隨著補丁越打越多,項目就像是一部叮噹作響的老爺車,沒錯,它的一切運轉良好,但是接下來接管項目的人,便成為苦逼IT男中的一員。不可否認,我也碰上過這樣的項目,出於工作原因,我肯定也是認真負責地去維護並完成項目,只是在修改或重構代碼的時候,對於那些將雜亂無章的代碼寫進項目的人,我會在心裡罵娘:“雜碎,你到底想做什麼!”,儘管我甚至都不知道他們是誰。當然,我只是對事不對人。我一直認為,開發人員的工作是讓這個世界更快捷高效地運轉,任何增加項目複雜度的想法或做法,都是有罪的 。
2. 固步自封,不願意嘗試和使用新技術
關於這一點,我覺得作為一個開發人員來說,多少是有點可悲的。因為新技術往往代表的更快更高效更強大的生產力,而我們若持上述觀點的話,自己就把自己排除在技術進步這個大潮流之外了。以.NET為例,.NET 1.1 沒有泛型,2.0沒有自動屬性和Linq,3.0沒有 dynamic 關鍵字,至於有什麼,大家請自行到MSDN(C#編程指南)進行查閱。就像 .NET 自身的演變一樣,我們也需要不斷的進行學習,掌握更多的技術細節來讓我們的工作變得簡單高效。
3. 失去了對工作的激情和奮鬥的動力
無論如何,我覺得這一點是最嚴重也是最致命的一點。一味地Ctrl+C 和 Ctrl+V,這絕對不是我們想要的生活。任何失去了創造性的工作,肯定是無法提起我們的興趣的。對於開發人員來說,失去創造性,有時候意味著職業生涯的結束。不知道大家有沒有看過《觀止》,裡面的一些細節讓人很振奮,而有些NT開發人員在完成之前的黯然退出也讓人覺得很可惜。對於我們這個行業,這裡我引用一下園子裡子陽兄的議題《屌絲的出路》,文筆很犀利,但卻都是我們這個行業的實情。
最後說說我們的專業素養,你在開發中,是否習慣於使用版本控制工具(如SVN、Mercurial或是TFS,力薦Mercurial),是否會儘可能地為自己的項目編寫單元測試,是否使用泛型來解決過強型別轉換的問題,是否真正明白了什麼是協變和逆變,是否曾經為自己封裝的資料集合編寫過迭代器,是否能融會慣通地使用GOF的精典設計模式,是否能在實施中使用資料結構來簡化系統複雜度……諸如此類,作為.NET開發人員的我們,現在到底能做到多少,這個我覺得是有必要思考的一個問題。
就如鳳凰涅槃,重生之前,它就僅僅是一個“蛋”而已,就像我們能力的提升一樣,需要經曆一個艱辛的過程,其實真的無所謂苦逼不苦逼。