一個好的程序員是不會只和一家大公司的技術綁在一起的﹐也不會只知道一種Language。
這裡有很多.NET程序員﹐我就拿.NET程序員來舉個例子。.NET是微軟的技術﹐這是與“不只和一家大公司的技術綁在一起“的原則相違背了﹐但只要你能有意識地去發覺Programming的真諦﹐你仍然可以從禁錮中投得一些光亮﹐從而一窺“九陰真經“。
我們看看﹐有什麼東西是.NET程序員可以掌握並且可倚仗十年而不管微軟存在與否的技術呢?
1. XML。不是.NET裡那些XML API﹐而是對XML﹐XML Schema, XML DTD, DOM, SAX, XPath, XQuery﹐甚至是XSLT ...的掌握﹔
2. SQL。不是說您對SQL Server有多熟悉﹐要熟悉的是SQL語法﹐高級SQL應用﹐和PL/SQL﹔
3. OOP。通過學習C#﹐你對OOP的優點和缺點透徹掌握﹐以及近代OOP新出現的概念﹐比如Interface﹑Property ...﹔
4. 開發流程。通過對Visio﹐Power Point﹐SQL Server或VS.NET等軟件的使用﹐了解一個軟件開發的大致流程。不是知道幾個名詞﹐而是要有親身經歷過n次的感性認識﹔
5. 軟件測試。通過使用NUnit之類的工具﹐掌握一般軟件測試的方法﹐了解軟件測試的必要性﹐和何時需要何種軟件測試。(其實這一點應該屬于第4點﹐但軟件測試在中國很不被重視﹐即使有也往往是拿來應付人的﹐所以我把它單獨列出以示強調)﹔
6. Security。不管是.NET還是J2EE都需要處理Security的問題。Security是個無底洞﹐但所使用的原理和技術很有連貫性﹐十年之前的東西現在仍然普遍在用。比起其它技術來說它相對穩定﹐值得投入﹔
7. Web Services。不是怎麼用VS.NET來用Web Services﹐而是要知道為什麼要用Web Services﹐Web Services的三大Protocol --- WSDL, SOAP, 和UDDI。通過Web Servies了解SOA(Servie Oriented Architecture)以及Business Logic Layer的職責和位置﹔
8. 設計模式。這是這幾點裡最難學會的﹐也是最需要年數積累的。看完一本<<設計模式>>就說自己懂了﹐根本就是在胡說八道。設計模式猶如“九陽真經“﹐一開始即使能夠死記也不得其要領﹐只能靠日後多年實踐﹐才能逐漸明白其“九陽真經“的奧妙。一旦練成﹐終身收益。是程序員邁向系統架構師過程中的必修技。
一個有智慧的.NET程序員﹐即使在被微軟操控的情況下﹐也應該有意識的去琢磨琢磨以上的幾點。學習本質﹐破除樊籬。
.NET程序員和開源社區程序員之不同﹐猶如“劍宗“和“氣宗“之不同。練“劍宗“者﹐入門快速﹐由表即裡﹐前兩至三年成就高于練“氣宗“者。習“氣宗“者﹐追求本質﹐由裡即表﹐入門艱辛﹐但五年後其功力強出前者。本來一個由裡即表﹐一個由表即裡﹐一正一反﹐何以有此差距? 原因在人的惰性﹐所謂“由儉入奢易﹐由奢入儉難“﹐易在前與易在後便產生功力的差異。
但事事因人而異﹐事在人為。.NET程序員們當自知其強﹐也當自明其短﹐奮發圖強﹐還是大有一番出息的。這裡我送.NET程序員六個字 --- 學其本﹐舍其華
大家共勉。