幫你遠離失業困擾的十大軟件技術

幫你遠離失業困擾的十大軟件技術

2007-06-27 09:33:55 來源: IT168(北京)
能跟上關鍵技術的發展,是你在就業市場和未來保持優勢的最佳手段。你對我們列出的十門技術精通嗎?哪怕是大略精通?

我不知道你的具體工作是什麼。如果你是某冷門領域的專家而變得不可或缺,或者你們的公司十分穩固,以你現有的技術就足以安度你的職業生涯,那我不知道你是否有失業的危險。不管怎樣,請你先不要急着寄出那些告訴我你們的公司對用VB3十分滿意或你們除C以外永不用其它語言的信件,並保留起那些講述.NET將如何把Java掃地出門、XML將如何取代關係型數據庫、或你怎樣能用彙編語言或C寫任何軟件而任何其它開發工具都不重要的信件。

現在,想象一下如果你像很多受裁員和公司倒閉影響的同行一樣失去了工作,那將會怎樣。如果你突然需要搬往它處該怎麼辦?如果你的公司突然做了技術轉向又怎麼辦?

在目前的就業市場,經理們是根據當前和未來的開發需要招聘僱員。作爲開發人員,你所掌握的知識是你找工作和保住工作的關鍵。你要了解技術的發展方向,跟上技術的變化,這一點十分重要,即使你永遠不用再找開發方面的工作。

這裏是我選出的當前最重要的十大開發技術,最重要的排在前面。看完本文後,請務必加入talk.editors.devx討論組,提出你選出的十大技術。

1. XML

首先,你要了解XML。我不是說僅僅是XML規格本身,還包括一系列相關的基於XML的語言:最重要的是XHTMLXSLTXSLDTDsXML Schema (XSD)XPathXQuerySOAP。那些在過去5年內從未碰過鍵盤的人,可能不知道XML爲何物。XML是一種文本文件,使用與HTML類似的標記。XML能定義一個樹狀結構,並能描述所含的數據。

XML最好的一點是既能存結構化數據也能存非結構化數據。它既能存貯和描述規格的”(regular)表格數據,也能容納和描述粗糙的”(ragged)文件數據。

XHTML是現今寫HTML的首選方法。因爲它是形式完好(well formed)XML,比起古老的、通常是畸形(malformed)HTML文件,XHTML格式的文件更容易處理。

XSLTXSL是用於把XML文件轉成其它格式的語言。可轉換的格式包括:文本文件、PDF文件、HTML、以逗號爲分隔符的文件,或其它XML文件。

DTDXML Schema描述XML文件所能包含的內容的類型,並讓你驗證”XML文件內容的合理性,而不用寫特殊代碼以確保內容符合規則要求。

XPathXQuery是用於從XML文件中抽取單個項目或一組項目的查詢語言。XQuery擴展了XPath,因而更重要。XQueryXML的關係正像SQL與關係數據庫的關係。

SOAPWeb服務之間的一個標準通訊協議。儘管你不需要對SOAP標準一清二楚,你應該熟悉一般的schema和它的工作原理,以便能應用這門技術。

2. Web服務

Web服務是XML流行後的一個直接產物。因爲你能用XML描述數據和物件,因爲你能用schema確保XML文件內容的合理性,因爲XML是基於文本的規範,XML爲跨平臺通訊標準提供了一個極其方便的基本格式。如果你還從來沒碰到Web服務,你可能很快就會碰到,在未來5年內,你幾乎肯定會碰到。熟悉Web服務十分重要,因爲它是目前所有跨不同機器、不同語言、不同平臺和不同地點的通訊協議中最簡單的一個。不管你需要與否,Web服務是邁向互用性的重要一步。

XML工作組主席John Bosak曾說XML“Java一些事做。實際上,Web服務讓所有語言都有了一些事做。Web服務讓在大型機上運行的COBOL應用軟件能調用在手持設備上運行的Java應用程序、能讓Java applet.NET服務器交談、能讓微機軟件與Web服務器無縫連接,並提供了一個相對容易的方法,讓企業不光能向外界提供數據,還能提供功能,而且是一種與語言、平臺和位置都獨立的方法。

3. 面向對象的編程

很多程序員仍認爲OOP是象牙塔裏的技術。但如果你想一下是什麼語言在過去的10年裏占主導地位,你就會理解OOP不是象牙塔裏的技術。OOPSmalltalk開始,傳到C++Pascal (Delphi)Java使OOP大踏步地邁向主流,幾年後的VB.NETC#則完全確立了OOP的優勢地位。儘管這些語言中的多數並不要求你必須會OOP,但我覺得如果你不瞭解OOP的基本概念也不知道如何應用這些概念,你能找到的編程工作將越來越少。

4. JavaC++C#VB.NET

我把這些語言列在一起,並不是建議你成爲每一種語言的專家。我的理由是:學習編程最有效的方法之一是看代碼,而你能看到的大量的代碼很可能不是用你所喜愛的語言編寫的。

在過去幾年,各語言的能力越來越接近。現在,你可以用VB.NETWindows服務、Web應用程序或命令行程序。即使你只使用一種語言,你也應該學一些其它語言,以便能看懂那些樣例,並將其翻譯到你所用的語言。這4種語言是基本核心,還有其它一些滿足不同需要、頗具用途的語言,如FORTRANCOBOLAPLADAPerlLisp

5. JavaScript

儘管名字有些相像,但JavaJavaScript並無關聯。爲什麼一個腳本語言會如此重要呢?因爲所有主流瀏覽器都用JavaScript。如果你需要寫Web應用程序,你就有足夠的理由學JavaScriptJavaScript可以用作ASPASP.NET的服務器語言,也可以當做用於擴展XSLT的功能語言(functional language)JavaScriptMozilla/Netscape中用於激活基於XUL的程序接口的首選語言。JavaScript的一個變種ActionScriptFlash MX的編程語言。將來,JavaScript很可能成爲新設備的編程語言,以及大型應用軟件中的宏語言。

JavaScript相對照的是VBScript。儘管Microsoft的軟件對VBScript有良好的支持,但VBScript在未來的開發工作中很可能是一個糟糕的選擇。就是Microsoft也傾向於用JavaScript(Microsoft自己的變種:JScript)寫客戶端程序。在選擇腳本語言時,請選擇JavaScript

6. 正則表達式(Regular Expressions)

查尋關係數據庫可以用SQL,查詢XML可以用XPathXQuery,查詢純文本文件則可以用正則表達式。例如,你可以用一個命令從一個HTML文件中查找並刪除所有的註釋。各種開發語言內置的一些簡單的文本查詢功能,如"IndexOf"函數或VB中經典的"InStr"函數或"Like"操作符,根本不能與正則表達式相提並論。現在,各種主要的開發語言都提供使用正則表達式的途徑。儘管正則表達式本身既難懂更難讀(是回到早期計算機時代的一種倒退),但它卻是一個功能強大而且未被充分利用的工具。

7. 設計模式

正像OOP通過把對象分類以簡化編程一樣,設計模式對一些普遍的對象之間的交互進行分類,並賦予一個恰當的名稱。OOP用得越多,設計模式就越有用。一些最常用的模式的名稱已經變成了軟件開發領域共同使用的術語,所以要跟上信息的主流,你就要對設計模式有相當的理解。

8. Flash MX

如果你需要在客戶端得到比HTMLCSS更多的圖形和更強的編程功能,Flash是你的答案。用Flash編程比開發Java applets或寫.NET代碼要快得多,也容易得多。

在最新版本 (MX) 中,Flash不僅僅是畫圖和製造動畫的工具,它已經成爲一個編程功能強大的開發環境:能調用SOAP Web服務,也能調用遠端服務器上的ColdFusionJava.NET程序。Flash無處不在。它的引擎存在於世界上大多數客戶端計算機,包括手持設備、置頂盒、甚至是新的書寫板電腦。所以使用Flash能大大擴展你的程序的應用範圍。

9. Linux/Windows

熟悉Linux。在一臺舊機器或新機器上安裝Linux。下載圖形用戶界面,在其基礎上寫一些程序。安裝Apache,寫一個Web應用程序。這個世界不再僅僅是屬於Windows,這種趨勢可能還會持續下去。如果你是一名中堅的Linux開發人員,那就拋棄你對Windows的憎惡,看看你能否做一些Windows編程。Windows能繼續在臺式電腦上稱王是有其原因的,這不僅僅是因爲Microsoft控制了這個市場。

沒人知道你們公司會在什麼時候決定從Linux轉向Windows(或從Windows轉向Linux),或者你想跳到一家用另一種平臺的公司,或者你想出了開發一個殺手軟件的好主意,所以你要爭取擁有在不同操作系統上的編程經驗。

10. SQL

儘管SQL不像本文討論的其它技術那樣新,而且SQL的重要性在未來10年內很可能降低,但它仍然是一項基本技能。很多開發人員還沒有掌握這門技術,或掌握得不夠,不足以有效率地使用它。不要依賴具有圖形用戶界面的SQL生成器替你做事情,你要自己手工地寫查詢命令,直到你熟悉基本的SQL語法爲止。瞭解SQL不僅能幫助你日後學習XQuery,你還有可能馬上發現能簡化或改進目前項目的方法。

培養好奇心

最後,(對,我意識到這是第11門技術),好奇心是你最重要的技能。要去嘗試各種東西。新語言或新技術對你當前或將來的工作可能有用,也可能沒用,但並不是你所學的每一件事都是爲了工作。不要害怕失敗,萬事開頭難,學新技術也是如此。大多數失敗是因爲人們希望太快地學到太多的東西。要對每一點進步感到滿意,不要讓時間(或缺乏時間)妨礙你。相反,你要安排時間留心、研究、試驗新的開發技術和工具。

你可能永遠也沒有必要成爲這些技術的專家,而且我的選擇可能根本不適合你的特殊情況,但通過培養好奇心,你將會發現你應該瞭解的東西。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章