幫你免於失業的十大軟體技術
作者:A. Russell Jones
The 10 Technologies that Will Help You Stay Employed
Keeping up with key technologies is the best thing you can do to give yourself an edge in the employment market now—and in the future. Are you at least semi-proficient with all 10 of the technologies on our list?
by A. Russell Jones, Executive Editor
能跟上關鍵技術的發展,是你在就業市場和未來保持優勢的最佳手段。你對我們列出的十門技術精通嗎?哪怕是大略精通? -- 羅素·瓊斯,執行編輯 2002年12月11日
我不知道你的具體工作是什麼。如果你是某冷門領域的專家而變得不可或缺,或者你們的公司十分穩固,以你現有的技術就足以安度你的職業生涯,那我不知道你是否有失業的危險。不管怎樣,請你先不要急著寄出那些告訴我你們的公司對用VB3十分滿意或你們除C以外永不用其它語言的信件,並保留起那些講述.NET將如何把Java掃地出門、XML將如何取代關係型資料庫、或你怎樣能用匯編語言或C寫任何軟體而任何其它開發工具都不重要的信件。
現在,想象一下如果你像很多受裁員和公司倒閉影響的同行一樣失去了工作,那將會怎樣。如果你突然需要搬往它處該怎麼辦?如果你的公司突然做了技術轉向又怎麼辦?
在目前的就業市場,經理們是根據當前和未來的開發需要招聘僱員。作為開發人員,你所掌握的知識是你找工作和保住工作的關鍵。你要了解技術的發展方向,跟上技術的變化,這一點十分重要,即使你永遠不用再找開發方面的工作。
這裡是我選出的當前最重要的十大開發技術,最重要的排在前面。看完本文後,請務必加入talk.editors.devx討論組,提出你選出的十大技術。
1. XML
首先,你要了解XML。我不是說僅僅是XML規格本身,還包括一系列相關的基於XML的語言:最重要的是XHTML、XSLT、XSL、DTDs、XML Schema (XSD)、XPath、XQuery和SOAP。那些在過去5年內從未碰過鍵盤的人,可能不知道XML為何物。XML是一種文字檔案,使用與HTML類似的標記。XML能定義一個樹狀結構,並能描述所含的資料。
XML最好的一點是既能存結構化資料也能存非結構化資料。它既能存貯和描述“規格的”(regular)表格資料,也能容納和描述“粗糙的”(ragged)檔案資料。
XHTML是現今寫HTML的首選方法。因為它是形式完好(well formed)的XML,比起古老的、通常是畸形(malformed)的HTML檔案,XHTML格式的檔案更容易處理。
XSLT和XSL是用於把XML檔案轉成其它格式的語言。可轉換的格式包括:文字檔案、PDF檔案、HTML、以逗號為分隔符的檔案,或其它XML檔案。 DTD和XML Schema描述XML檔案所能包含的內容的型別,並讓你“驗證”XML檔案內容的合理性,而不用寫特殊程式碼以確保內容符合規則要求。
XPath和XQuery是用於從XML檔案中抽取單個專案或一組專案的查詢語言。XQuery擴充套件了XPath,因而更重要。XQuery與XML的關係正像SQL與關聯式資料庫的關係。
SOAP是Web服務之間的一個標準通訊協議。儘管你不需要對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不是象牙塔裡的技術。OOP從Smalltalk開始,傳到C++和Pascal (Delphi)。Java使OOP大踏步地邁向主流,幾年後的VB.NET和C#則完全確立了OOP的優勢地位。儘管這些語言中的多數並不要求你必須會OOP,但我覺得如果你不瞭解OOP的基本概念也不知道如何應用這些概念,你能找到的程式設計工作將越來越少。
4. Java、C++、C#和VB.NET
我把這些語言列在一起,並不是建議你成為每一種語言的專家。我的理由是:學習程式設計最有效的方法之一是看程式碼,而你能看到的大量的程式碼很可能不是用你所喜愛的語言編寫的。
在過去幾年,各語言的能力越來越接近。現在,你可以用VB.NET寫Windows服務、Web應用程式或命令列程式。即使你只使用一種語言,你也應該學一些其它語言,以便能看懂那些樣例,並將其翻譯到你所用的語言。這4種語言是基本核心,還有其它一些滿足不同需要、頗具用途的語言,如FORTRAN、COBOL、APL、ADA、Perl和Lisp。
5. JavaScript
儘管名字有些相像,但Java與JavaScript並無關聯。為什麼一個指令碼語言會如此重要呢?因為所有主流瀏覽器都用JavaScript。如果你需要寫Web應用程式,你就有足夠的理由學JavaScript。JavaScript可以用作ASP或ASP.NET的伺服器語言,也可以當做用於擴充套件XSLT的功能語言(functional language)。JavaScript是Mozilla/Netscape中用於啟用基於XUL的程式介面的首選語言。JavaScript的一個變種ActionScript是Flash MX的程式語言。將來,JavaScript很可能成為新裝置的程式語言,以及大型應用軟體中的巨集語言。
與JavaScript相對照的是VBScript。儘管Microsoft的軟體對VBScript有良好的支援,但VBScript在未來的開發工作中很可能是一個糟糕的選擇。就是Microsoft也傾向於用JavaScript(或Microsoft自己的變種:JScript)寫客戶端程式。在選擇指令碼語言時,請選擇JavaScript。
6. 正規表示式(Regular Expressions)
查尋關聯式資料庫可以用SQL,查詢XML可以用XPath和XQuery,查詢純文字檔案則可以用正規表示式。例如,你可以用一個命令從一個HTML檔案中查詢並刪除所有的註釋。各種開發語言內建的一些簡單的文字查詢功能,如"IndexOf"函式或VB中經典的"InStr"函式或"Like"操作符,根本不能與正規表示式相提並論。現在,各種主要的開發語言都提供使用正規表示式的途徑。儘管正規表示式本身既難懂更難讀(是回到早期計算機時代的一種倒退),但它卻是一個功能強大而且未被充分利用的工具。
7. 設計模式
正像OOP通過把物件分類以簡化程式設計一樣,設計模式對一些普遍的物件之間的互動進行分類,並賦予一個恰當的名稱。OOP用得越多,設計模式就越有用。一些最常用的模式的名稱已經變成了軟體開發領域共同使用的術語,所以要跟上資訊的主流,你就要對設計模式有相當的理解。
8. Flash MX
如果你需要在客戶端得到比HTML和CSS更多的圖形和更強的程式設計功能,Flash是你的答案。用Flash程式設計比開發Java applets或寫.NET程式碼要快得多,也容易得多。
在最新版本 (MX) 中,Flash不僅僅是畫圖和製造動畫的工具,它已經成為一個程式設計功能強大的開發環境:能呼叫SOAP Web服務,也能呼叫遠端伺服器上的ColdFusion、Java或.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門技術),好奇心是你最重要的技能。要去嘗試各種東西。新語言或新技術對你當前或將來的工作可能有用,也可能沒用,但並不是你所學的每一件事都是為了工作。不要害怕失敗,萬事開頭難,學新技術也是如此。大多數失敗是因為人們希望太快地學到太多的東西。要對每一點進步感到滿意,不要讓時間(或缺乏時間)妨礙你。相反,你要安排時間留心、研究、試驗新的開發技術和工具。
你可能永遠也沒有必要成為這些技術的專家,而且我的選擇可能根本不適合你的特殊情況,但通過培養好奇心,你將會發現你應該瞭解的東西。
編輯注:現在就到talk.editors.devx討論組去評論羅素的選擇,並提出你自己的清單。
羅素·瓊斯是DevX的執行編輯。E-mail地址是:rjones@devx.com。 ? 版權所有2003 DevX Inc
The 10 Technologies that Will Help You Stay Employed
Keeping up with key technologies is the best thing you can do to give yourself an edge in the employment market now—and in the future. Are you at least semi-proficient with all 10 of the technologies on our list?
by A. Russell Jones, Executive Editor
能跟上關鍵技術的發展,是你在就業市場和未來保持優勢的最佳手段。你對我們列出的十門技術精通嗎?哪怕是大略精通? -- 羅素·瓊斯,執行編輯 2002年12月11日
我不知道你的具體工作是什麼。如果你是某冷門領域的專家而變得不可或缺,或者你們的公司十分穩固,以你現有的技術就足以安度你的職業生涯,那我不知道你是否有失業的危險。不管怎樣,請你先不要急著寄出那些告訴我你們的公司對用VB3十分滿意或你們除C以外永不用其它語言的信件,並保留起那些講述.NET將如何把Java掃地出門、XML將如何取代關係型資料庫、或你怎樣能用匯編語言或C寫任何軟體而任何其它開發工具都不重要的信件。
現在,想象一下如果你像很多受裁員和公司倒閉影響的同行一樣失去了工作,那將會怎樣。如果你突然需要搬往它處該怎麼辦?如果你的公司突然做了技術轉向又怎麼辦?
在目前的就業市場,經理們是根據當前和未來的開發需要招聘僱員。作為開發人員,你所掌握的知識是你找工作和保住工作的關鍵。你要了解技術的發展方向,跟上技術的變化,這一點十分重要,即使你永遠不用再找開發方面的工作。
這裡是我選出的當前最重要的十大開發技術,最重要的排在前面。看完本文後,請務必加入talk.editors.devx討論組,提出你選出的十大技術。
1. XML
首先,你要了解XML。我不是說僅僅是XML規格本身,還包括一系列相關的基於XML的語言:最重要的是XHTML、XSLT、XSL、DTDs、XML Schema (XSD)、XPath、XQuery和SOAP。那些在過去5年內從未碰過鍵盤的人,可能不知道XML為何物。XML是一種文字檔案,使用與HTML類似的標記。XML能定義一個樹狀結構,並能描述所含的資料。
XML最好的一點是既能存結構化資料也能存非結構化資料。它既能存貯和描述“規格的”(regular)表格資料,也能容納和描述“粗糙的”(ragged)檔案資料。
XHTML是現今寫HTML的首選方法。因為它是形式完好(well formed)的XML,比起古老的、通常是畸形(malformed)的HTML檔案,XHTML格式的檔案更容易處理。
XSLT和XSL是用於把XML檔案轉成其它格式的語言。可轉換的格式包括:文字檔案、PDF檔案、HTML、以逗號為分隔符的檔案,或其它XML檔案。 DTD和XML Schema描述XML檔案所能包含的內容的型別,並讓你“驗證”XML檔案內容的合理性,而不用寫特殊程式碼以確保內容符合規則要求。
XPath和XQuery是用於從XML檔案中抽取單個專案或一組專案的查詢語言。XQuery擴充套件了XPath,因而更重要。XQuery與XML的關係正像SQL與關聯式資料庫的關係。
SOAP是Web服務之間的一個標準通訊協議。儘管你不需要對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不是象牙塔裡的技術。OOP從Smalltalk開始,傳到C++和Pascal (Delphi)。Java使OOP大踏步地邁向主流,幾年後的VB.NET和C#則完全確立了OOP的優勢地位。儘管這些語言中的多數並不要求你必須會OOP,但我覺得如果你不瞭解OOP的基本概念也不知道如何應用這些概念,你能找到的程式設計工作將越來越少。
4. Java、C++、C#和VB.NET
我把這些語言列在一起,並不是建議你成為每一種語言的專家。我的理由是:學習程式設計最有效的方法之一是看程式碼,而你能看到的大量的程式碼很可能不是用你所喜愛的語言編寫的。
在過去幾年,各語言的能力越來越接近。現在,你可以用VB.NET寫Windows服務、Web應用程式或命令列程式。即使你只使用一種語言,你也應該學一些其它語言,以便能看懂那些樣例,並將其翻譯到你所用的語言。這4種語言是基本核心,還有其它一些滿足不同需要、頗具用途的語言,如FORTRAN、COBOL、APL、ADA、Perl和Lisp。
5. JavaScript
儘管名字有些相像,但Java與JavaScript並無關聯。為什麼一個指令碼語言會如此重要呢?因為所有主流瀏覽器都用JavaScript。如果你需要寫Web應用程式,你就有足夠的理由學JavaScript。JavaScript可以用作ASP或ASP.NET的伺服器語言,也可以當做用於擴充套件XSLT的功能語言(functional language)。JavaScript是Mozilla/Netscape中用於啟用基於XUL的程式介面的首選語言。JavaScript的一個變種ActionScript是Flash MX的程式語言。將來,JavaScript很可能成為新裝置的程式語言,以及大型應用軟體中的巨集語言。
與JavaScript相對照的是VBScript。儘管Microsoft的軟體對VBScript有良好的支援,但VBScript在未來的開發工作中很可能是一個糟糕的選擇。就是Microsoft也傾向於用JavaScript(或Microsoft自己的變種:JScript)寫客戶端程式。在選擇指令碼語言時,請選擇JavaScript。
6. 正規表示式(Regular Expressions)
查尋關聯式資料庫可以用SQL,查詢XML可以用XPath和XQuery,查詢純文字檔案則可以用正規表示式。例如,你可以用一個命令從一個HTML檔案中查詢並刪除所有的註釋。各種開發語言內建的一些簡單的文字查詢功能,如"IndexOf"函式或VB中經典的"InStr"函式或"Like"操作符,根本不能與正規表示式相提並論。現在,各種主要的開發語言都提供使用正規表示式的途徑。儘管正規表示式本身既難懂更難讀(是回到早期計算機時代的一種倒退),但它卻是一個功能強大而且未被充分利用的工具。
7. 設計模式
正像OOP通過把物件分類以簡化程式設計一樣,設計模式對一些普遍的物件之間的互動進行分類,並賦予一個恰當的名稱。OOP用得越多,設計模式就越有用。一些最常用的模式的名稱已經變成了軟體開發領域共同使用的術語,所以要跟上資訊的主流,你就要對設計模式有相當的理解。
8. Flash MX
如果你需要在客戶端得到比HTML和CSS更多的圖形和更強的程式設計功能,Flash是你的答案。用Flash程式設計比開發Java applets或寫.NET程式碼要快得多,也容易得多。
在最新版本 (MX) 中,Flash不僅僅是畫圖和製造動畫的工具,它已經成為一個程式設計功能強大的開發環境:能呼叫SOAP Web服務,也能呼叫遠端伺服器上的ColdFusion、Java或.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門技術),好奇心是你最重要的技能。要去嘗試各種東西。新語言或新技術對你當前或將來的工作可能有用,也可能沒用,但並不是你所學的每一件事都是為了工作。不要害怕失敗,萬事開頭難,學新技術也是如此。大多數失敗是因為人們希望太快地學到太多的東西。要對每一點進步感到滿意,不要讓時間(或缺乏時間)妨礙你。相反,你要安排時間留心、研究、試驗新的開發技術和工具。
你可能永遠也沒有必要成為這些技術的專家,而且我的選擇可能根本不適合你的特殊情況,但通過培養好奇心,你將會發現你應該瞭解的東西。
編輯注:現在就到talk.editors.devx討論組去評論羅素的選擇,並提出你自己的清單。
羅素·瓊斯是DevX的執行編輯。E-mail地址是:rjones@devx.com。 ? 版權所有2003 DevX Inc
相關文章
- 幫你免於失業的十大軟體技術 beiyan(翻譯)
- 使用AI技術,免費幫你的影片配音AI
- 讓前端開發者失業的技術,Flutter Web初體驗前端FlutterWeb
- 代理IP軟體如何幫助網站推廣技術!網站
- ?【Alibaba中介軟體技術系列】「RocketMQ技術專題」幫你梳理RocketMQ或Kafka的選擇理由以及二者PKMQKafka
- 雲技術是軟體技術,並非硬體技術
- 中國十大技術社群你都知道哪些?
- eMarketer:1/3的廣告支出用於技術和軟體中介
- 1269道Java技術答疑,阿里技術專家幫你Java技術進階Java阿里
- 軟體技術的森林時代 (轉)
- 火遍全球的小程式技術,軟體供應鏈安全也能幫得上忙?
- 物流CRM軟體能幫你送快遞嗎?
- “軟體定義汽車”下的軟體虛擬化技術
- ChatGPT軟體技術棧解密ChatGPT解密
- 軟體天才與技術民工
- 基於軟體分析的智慧化開發新型服務與技術
- [技術討論]軟體的產品、技術、標準對話
- 這些職場潛規則幫你做高效技術人
- 模型驅動的軟體測試技術模型
- 軟體測試技術及工具
- 軟體開發技術問答
- 【免殺技術】Tomcat記憶體馬-FilterTomcat記憶體Filter
- 虛擬現實技術也許會幫你控制自己的夢
- 關於軟體開發流程規範,有感於最近做技術顧問(一)
- 一個幫助軟體免費實現國際化翻譯的網站網站
- 影片分發軟體,幫你一鍵分發短影片
- vnc viewer免費版,4款你不知道的vnc viewer免費版軟體VNCView
- 軟體技術更新速度很快,擔心自己掌握的技術會過時?
- VC眼中的十大技術趨勢
- 軟體設計的沉靜|ONES 技術人
- SaaS軟體的技術缺陷以及解決方案
- 軟體配置管理中的基線技術
- 軟體測試中的行業技術薦行業
- 好用的免費CRM軟體
- 運維創新紀-運維幫技術沙龍報名啦 (北京·免費)運維
- 關於輪播圖的技術理解你知道多少
- 直播內容搶先看 | 基於AUTOSAR技術的SOA軟體平臺實踐
- 基於虛擬化技術的軟體開發構成雲應用根本