絕大多數新技術的學習,都是浪費生命

2021-05-24 03:13:25 字數 3925 閱讀 8127

很多程式設計師,在很多的時間,都會說出很多相同的話來,其中最為引起共鳴的就是這麼一句話:「每天都要學習新知識,不然就會被淘汰」。

嗯,這真是件很辛苦的事情,你看,老中醫就過得很輕鬆,收銀員也過得很輕鬆,**當然過得更輕鬆。沒別的,絕大多數正常的人類,學會一種技能,則無需進一步學習其他的,大致上就能夠或輕鬆或艱難的生活下去。這個所謂絕大多數,應該是90%。

那麼,程式設計師或者好聽一些,軟體工程師這種職業,為什麼就過得更辛苦一些呢?

因為我們實際上完全沒有必要每天甚至每個星期甚至每個月都要學習新知識,因為很多所謂的新知識都是些將簡單的問題複雜化的東西,它們既沒有令事情變得更簡單,有時候甚至引起倒退,更多的時候是盲目的消耗了程式設計師的精力而一無是處。

我們完全可以過得非常輕鬆。

舉個例子,大家知道微軟的wpf、wcf和wf這些新的東西,其中任何乙個專題,程式設計師都需要花費大量的時間去學習,當然,也許學習半年之後,還是碰到很多疑惑。人的一生有多少個半年呢?這樣的學習對你究竟有什麼好處呢?

簡單的拿wpf做例子,你需要了解這種新東西誕生的理由。

微軟的工程師認為,桌面程式設計應該有乙個類似html的介面設計方式,使用一種規範的xaml來描述介面,這是第乙個動因。第二個主要的動因,是微軟的.net框架,這上面需要有專門的本地應用開發技術,微軟的工程師認為winform形式太過落伍了。

還有其他原因嗎?

當你看到非常炫目的介面效果之後,你會覺得震撼,震撼之後你會覺得不學習實在就太會落伍了。

可是結果呢?

第三個問題是開發應用並不簡單,有太多的概念,比如xaml、比如樣式、比如trriger、比如storyboard、比如mvvm,沒有圖表控制項、沒有自動完成控制項,完成一件最簡單的任務你比以前可能需要更多的時間,而非更少。

第四個問題是有太多的細節,比如command如何帶引數、比如進度條怎樣後台展現進度,嗯,我敢肯定的說,包括微軟的開發工程師在內,整個地球上用wpf開發應用的程式設計師們,只有不到十個人有乙個通用的方案,來使用進度條簡單的在後台報告進度。

第五個問題是慢,驚人的慢。大家可以看看「飛信」,這是乙個微軟控主導決策的,嗯,使用.net 2.0。為了解決程式發布的問題,專門弄了個微型的.net框架,但是你將它與qq比,是不是覺得慢得太多?持續多年以後,移動的先生們不耐煩了,才有的現在的基於c++的原生版本,請比較一下速度。這裡特別提醒一下,飛信的開發,是中國移動投入巨資、得到微軟中國整個團隊無微不至的支援的,這些高人甚至赤膊上陣親自動手,這樣使用他們的開發工具,歷時數年也不過是做出乙個被淘汰的產品。先生,請掂量一下,你比他們這些傢伙更厲害嗎?你比孩子的母親對孩子更了解嗎?

嗯,最後可以看到,包括微軟自己在內,地球上並沒有太多基於wpf的產品。少得可憐,但它確實浪費了至少一百萬程式設計師的生命,基本上每個程式設計師因此短命了半年以上。

微軟則繼續想在殭屍的基礎上,禍害更多的人,於是出現在web領域,老天,有了silverlight,事實無情的宣告這種妄想進一步失敗,依然找不到多少有點看點的silverlight的商業應用。微軟碰了一鼻子灰,但他成功的繼續禍害了50萬以上的另一批程式設計師,這個時間估計超過半年,因為據說web程式設計師更固執、也更捨不得告別已經浪費的生命。

故事還沒有完結,微軟開始將這一套東西轉到手機領域。

我彷彿看見乙隻野狗,被左邊的乙個人踢了一腳,這個人叫桌面應用;又被右邊的人踢了一腳,這個人叫做web應用;然後,他高高的跳向空中,嗯,空中等著他的那個人叫手機開發,他是不是也長著一雙腳呢?

他們推出wp7,這種微軟最新的手機作業系統,開發工具是silverlight,我已經看到他失敗的那一天了……

這是新技術典型的例子,你不用責怪微軟,dos到windows,是一種包裝,將底層封鎖住;win32到.net framework是第二次包裝,繼續封閉第二底層;.net「原生」開發到wpf又是一種包裝,這是封閉了winform的內容改用xml呈現的包裝。

你能夠想象得到,每一次包裝,顯然都帶來運算效率的下降,這種包裝如果成功,是有益的,因為硬體效能畢竟在快速的增長。當然,也正由於這種包裝,電腦發展幾十年之後,我們常見的應用基本上都沒有真正的變快,甚至與二十年前比較更慢了。

同時,開發應用軟體,好象每經過一次包裝,複雜度又增加許多,而開發成本又上公升許多。

這很矛盾,不是嗎?多數時候,微軟的目的都是讓開發更簡單,這是沒錯的。

但什麼是簡單?

我的理解是:第一是概念盡可能少,理解上簡單。第二才是**盡可能少,實現上簡單。

微軟幾乎百分之百的工程師,和幾乎百分之百的高層決策人員,都不理解第乙個問題,「概念要盡可能少」。

嗯,你這麼想想吧,剛剛看到有研究prism的,我估計此人又要浪費半年以上的生命。

這是個什麼東西呢?mvvm框架嗎?依賴注入嗎?模組化嗎?

看看上面這句話,普通人定然看不懂,這也是我們絕大多數程式設計師漸漸變得不會說人話的原因。

你只要看到prism那些難以理解的**,然後看到使用這種程式設計框架需要理解多少個概念,使用這種框架開發應用會使人多麼發狂。對於乙個團隊來說,這又會造成多大的災難。

請記住,即使你誤入了微軟的賊船,也一定要記住:每次面臨一項新的技術的時候,花費5分鐘的時間了解一下,它的目的是什麼?它是否達到了這些目的?使用這種東西需要理解的概念多不多?有無可能在一天內完全掌握?

如果不能,忽略它。

微軟是沒錯的,錯的是你,先生,你不知辨別,你也不知道自己究竟有多長的生命。

想一想,還是列出乙個清單吧:

1、asp.net mvc v3:可以看一下,新的檢視引擎確實更簡單

2、wcf:忘掉它,這是微軟希望擴充套件和取代web服務的東西,它不是標準,這些年也基本上很少有應用。

3、wpf:忘掉它,要開發原生應用,還是老老實實的用vc+mfc,要好看一點,用vs2010裡的ribbon體系。

4、wf:不需要關注,當然,如果你從事工作流範疇的開發,這個有一定益處,問題是效能也堪憂

5、sql2008 r2的資料探勘部分:忘掉它,基於資料庫的挖掘,基本上是很難實用的.

6、silverlight:請轉向html 5吧,或者現實一些,flash。你不應該這樣特立獨行,遵循多數人的標準吧

7、wp7:躲遠一點,買手機也不要買這種

8、silverlight手機開發:不要碰,賺不到錢的

9、嵌入式開發wince或windows mobile:轉向android或者linux吧

10、ado.net entity framework :忘了它,這只是微軟在面臨強抱的時候無力的呻吟,它希望能夠實現資料庫和物件之間的無縫連線、也希望解決領域驅動開發問題,但是老天,十年之內請大家不要幻想這種ddd的方式能為成為現實---這也意味著所有程式設計師失業先…

11、linq:關注但一定要慎用,linq to sql效能肯定不如原生ado.net直接訪問資料庫,linq to object很多基於ienumerable介面的,很顯然在針對陣列和ilist的時候較之直接程式設計效能大幅下降。

12、tfs:重要,很好的工具,但記住一定要用基本安裝,只使用原始碼管理和基本的專案管理,不要安裝sharepoint之類,簡單就好

13、tfs的scrum模版:重要,這樣一種方**,對個人對團隊都有益處

14、vs2010的單元測試專案:重要,這是改變個人變成習慣,改變心態的習慣。不會tdd的基本上是苦瓜程式設計師。會了,你就是蜜瓜程式設計師。

15、.net framework:出現之後,桌面應用開發工具出現斷檔,僅在web領域應用,在桌面應用和手機應用中應該遠離。

16、c# 3.0之後:c#語言設計的存在一定問題,從細節的所謂裝箱拆箱到高層面的linq之類,我猜想語言設計人員沒有列出「開發人員應掌握多少概念、特定場景如何實現、結合.net framework的主要領域是哪些」這樣的清單。邏輯層次上下浮動的很厲害。但c# 3。0之後的擴充套件方法、匿名**、lambda表示式、匿名類、動態型別等,可以多用,對簡化**和**的清晰度確實有益。

word,excel, (autocad, 做模軟體, pro,)

dw, firework, flash, (ps, coredraw), powerpoint

html, css,js , (access)

vs2003 vs2005,vss6.0, vs2005, sql2000, sql2005

為什麼絕大多數抄襲的遊戲會失敗?

2013年10月30日11 16 遊戲專欄 雖然整個遊戲乃至it行業都號稱是抄襲為主,但是絕大多數人都失敗了,為什麼呢?1.失敗在抄什麼上 選準方向是一件很難的事情,很多號稱要抄襲的人根本不知道該抄什麼。在這個令人眼花繚亂的時代,選準方向是一件非常困難的事情。另一點是,很多抄襲的團隊,本身團隊組建就...

談搜尋詞背後的「絕大多數」需求

近2 3年的長尾理論是受到廣大站長普遍認可並使用的一種 內容建設思路,當然,也有很多客觀因素影響著 例如網際網路資訊 後內容越加精尖,搜尋需求日益細化 碎片化加重,網際網路越來越成熟導致行業競爭加劇,seo市場越發走熱 成熟 在很多 還在苦苦思考 關鍵詞拓展 方法和思路的時候,你是否認證考慮過,這些...

轉 Gartner 絕大多數VR專案以失敗告終

根據gartner的研究統計,在實施虛擬世界的公司中,有90 都在18個月 或更短 的時間內以失敗而告終。失敗的原因多是由於公司沒有充分考慮使用者使用的問題,而非純粹的技術因素。gartner的副總裁表示,如此高的失敗率給企業上了嚴峻的一課。他們應從中意識到打造成功的虛擬世界需以人為本,而不是只注重...