保證你現(xiàn)在和未來不失業(yè)的十種IT關鍵技術
保證你現(xiàn)在和未來不失業(yè)的十種IT關鍵技術??
在當今的IT就業(yè)市場,有人歡喜有人憂。有人對目前的工作和薪水很滿意,有人目前正面臨著下崗,或者已經下崗……
可能你是公司里唯一諳熟某項關鍵技術的高手,缺了你,公司便玩不轉了;也可能你所在的公司對你現(xiàn)有的專業(yè)技能高枕無憂,認為你在任期內足以勝任公司給你的開發(fā)任務(當然就不會再花銀子去培訓你啦)。
不要告訴我你們公司對原來用VB3開發(fā)的業(yè)務處理系統(tǒng)很滿意,而你呢,也認為自己除了用C語言開發(fā)程序以外,不會再去做別的什么事情。
你是不是對.NET和Java為爭奪開發(fā)工具市場撕破臉皮而熟視無睹,你是不是對XML將要取代關系數據庫而無動于衷以及不屑一顧。你是不是認為你能用匯編或C開發(fā)任何東西,所以覺得其它開發(fā)工具都不再重要……
如果真是這樣,那么你離失業(yè)的日子不遠了,俗話說--未雨綢繆……
想一想如果你現(xiàn)在失業(yè)沒有工作會怎么樣,
想一想現(xiàn)在還有如此之多的弟兄們?yōu)榱苏乙粋€飯碗而四處奔波。
想一想如果現(xiàn)在你們公司為了搶占市場,突然要進行技術轉向,你該怎么辦?
想一想你現(xiàn)在為了自己的前途,突然需要改變技術領域,你該怎么辦?或者你不滿足于現(xiàn)在自己的知識結構,想要再充實一下,但又不知選擇那些內容來學習。那么繼續(xù)往下看,并一起參加討論吧,相信會有收獲的。
在人才招聘市場,人事經理們關注的是實際技能,要求現(xiàn)在和將來從事開發(fā)工作所需要的實際技能。作為一個技術開發(fā)人員,自己的知識結構是就業(yè)和保持自身崗位的關鍵。此外還有一點也很重要,那就是即便你不再從事或者尋求實際的開發(fā)工作,也必須盡可能多地了解和熟悉當今你所從事的領域中最前沿的技術和信息,只有這樣才能跟上技術發(fā)展的步伐。以便使自己始終處于不敗之地。
本文列出了當今計算機軟件開發(fā)和應用領域最重要十種關鍵技術排名,如果你想保證你現(xiàn)在以及未來的幾年不失業(yè),那么你最好跟上這些技術的發(fā)展。雖然你不必對這十種技術樣樣精通,但至少應該對它們非常熟悉。
一、XML
在十種技術中,最重要的一種技術我想應該非XML莫屬。這里不僅僅指XML規(guī)范本身,還包括一系列有關的基于XML的語言:主要有XHTML,XSLT,XSL,DTDs,XML Schema(XSD),XPath,XQuery和SOAP。如果你現(xiàn)在還對XML一無所知,那么趕快狂補吧。XML是包含類似于HTML標簽的一個文本文件,在這個文件中定義了一個樹型結構來描述它所保存的數據。XML最大的優(yōu)點是你既可以在這個文本文件中存儲結構化數據,也可以在其中存儲非結構化數據——也就是說,它能包含和描述"粗糙的"文檔數據,就象它描述"規(guī)則的"表格數據一樣。XHTML是目前編寫HTML的首選方法;因為XHTML本身就是格式良好的XML,與通常畸形的HTML文檔相比, XHTML格式文檔更容易處理。XSLT和XSL是對XML文檔進行轉換的語言。它們可以將XML文檔轉換成各種格式,比如另一個文本文件、PDF文件、HTML文件、逗號分割的文件,或者轉換成其它的XML文檔。DTDs 和XML Schema用來描述XML文件所包含的數據內容的類型,使你不用編寫定制的代碼就能對XML文檔的內容進行"有效性"檢查,使內容強行遵守給出的規(guī)則。XPath 和 XQuery是查詢語言,用它們可以從XML文檔中吸取單個的數據項或者數據項列表。XQuery的功能特別強大,因為它對XPath查詢進行了擴展。實際上,XQuery和XML的關系就像SQL之于關系數據庫一樣。SOAP是Web services間進行通訊的標準協(xié)議。你不必知道SOAP協(xié)議的所有細節(jié),但是你應該熟悉其常用規(guī)則及其工作原理,這樣你才能使用它。
二、Web Services
Web服務是XML流行后的直接產物。因為XML可以描述數據和對象,XML大綱可以保證XML文檔數據的有效性,因為XML的基于文本的規(guī)范,因而XML文檔極其適合于作為一種跨平臺通訊標準的基本格式。如果你還沒有接觸過Web服務,那么過不了多久你肯定會碰到它,所以必須熟練掌握Web服務,最好是精通它,因為它是迄今為止應用程序間跨不同種類機器、語言、平臺和位置通訊的最簡單的一種方式。不管你需不需要它,Web服務都會是將來互用性的主要趨勢。
XML工作組的John Bosak曾說過:"XML使得Java有事可做",那么,我們也可以說,Web服務使得所有語言都有事可做。Web服務讓運行在大型機上的COBOL應用程序與運行在手持設備上的應用程序相互溝通;讓Java小應用與.NET服務器相互通訊,讓桌面應用與Web服務器進行無縫交互,不但為商業(yè)數據處理,同時也為商業(yè)功能提供了方便的實現(xiàn)——并且這種實現(xiàn)與語言、平臺、和位置無關。
三、面向對象編程
許多程序員仍然認為OOP乃技術的象牙之塔,但是細細想一下過去十年里在面向對象領域里占據過統(tǒng)治地位的開發(fā)語言之后,你就不會這么認為了,OOP理念從Smalltalk開始,然后蔓延到C++和Pascal(Delphi),到Java成為真正的主流,幾年之后,VB.NET 和 C#的出現(xiàn)可以說是OOP發(fā)展到了登峰造極的地步。雖然使用這些語言不必了解OOP的概念,但如果你缺乏一些OOP的基本知識和方法,我想你很難在逐漸疲軟的就業(yè)市場中找到工作。
四、Java, C++, C#, VB.NET
如果你熱衷于技術,并且熱愛編程,那么我想你應該輕松玩轉這些高級語言,我說的玩轉并不一定要你成為超級編程高手。而是能看懂用這些語言編寫的代碼即可。如果你還有精力用它們編碼那就更好了。其實這種機會甚少。但是看代碼的機會很多,學習編程的最有效的一種方式就是看源代碼——浩如煙海的源代碼中很多都不是用你所鐘愛的開發(fā)語言編寫的。
在過去的幾年里,各個語言功能的發(fā)展基本上都差不多?,F(xiàn)在你完全可以用VB.NET來寫Windows服務、Web應用或者命令行程序。即使你只用其中的一種語言寫程序。我認為也完全有必要學習另外一種語言,使自己能閱讀和理解它們現(xiàn)有的例子代碼,并且能將一種語言編寫的代碼轉換成你首選的編程語言代碼。這里列出的四種語言可謂是一個強大的開發(fā)語言工具箱,如果你掌握了它們,毫無疑問你一定是一個眾人仰慕的高手。這里我要聲明一下:那就是我并沒有要忽略和排除其它的高級語言,如:FORTRAN、COBOL、APL、ADA、Perl和Lisp等等,根據你所從事的領域不同,應該選擇適合的語言和工具。
五、JavaScript
Java 和JavaScript兩者的名字盡管很類似,但它們之間并沒有什么關系。為什么一種腳本語言會如此重要,以至于將它列入十種關鍵技術之一呢?仔細想一下就知道了,目前所有主流的瀏覽器都使用JavaScript。如果你要編寫Web應用程序,那么JavaScript不可或缺。此外,JavaScript還能作為一種服務器端的腳本語言,如將它嵌入在ASP、ASP.NET中,或者嵌入XSLT來擴展功能。目前JavaScript在Mozilla/Netscape中是激活基于XUL界面的首選語言,它派生出了ActionScript,成為Flash MX應用的編程語言。還有就是JavaScript極有可能成為未來新設備的腳本語言以及主流應用的宏語言。相比之下,VBScript雖然在微軟的產品中得到很好的支持,但從長遠來看,沒有跡象表明它會有美好前途。微軟自己都趨向于用JavaScript(或者用由JavaScript派生的JScript)來編寫其客戶端腳本代碼。因此,如果你要選擇腳本語言,非JavaScript莫屬。
六、Regular Expressions
從所周知,關系數據庫的查詢使用SQL,搜索XML文檔用XPath 和XQuery,而正則表達式則用來搜索純文本。例如,你可以用一個命令來查找或刪除HTML格式文件中的注釋內容。大家都用過"IndexOf"、"InStr"以及"Like"這些內建在JavaScript或VB中的文本搜索函數,這些函數雖然很容易使用,但是它們的功能卻無法與正則表達式同日而語——現(xiàn)在每一種主流的開發(fā)語言都提供對正則表達式的存取。盡管有人認為正則表達式本身的讀寫艱澀難懂,但畢竟它的功能強大,使用它的領域也越來越多。
七、Design Patterns
就像OOP通過創(chuàng)建和分類對象來簡化編程一樣,設計模式將普通的對象交互分類成指定的模型,這是一個從一般到具體的過程。OOP的成分使用得越多,設計模式就顯得越有用武之地。所以你必須理解它們,跟上其總體理論的發(fā)展。
八、Flash MX
當你需要比HTML和CSS所能提供的更多的客戶端圖形和編程能力時,F(xiàn)lash是最佳選擇。在Flash中編程比用Java小應用或者.NET代碼來得快得多,也容易得多。
在最新版本中(MX),F(xiàn)lash不僅可以畫圖和進行動畫打包,它還是個高度的可編程應用環(huán)境。具備強大的與SOAP Web服務溝通的能力,可以調用運行在遠端服務器上的ColdFusion、Java或.NET代碼??梢哉fFlash幾乎無處不在,包括手持設備、置頂盒、甚至是新的平板電腦,你到處都可以見到它的身影,所以使用它實際上可以擴展和延伸你的應用程序使用領域。
九、Linux/Windows
這是當今PCs機操作系統(tǒng)的兩大陣容,如果你想在計算機行業(yè)里混,就一定要熟悉它們。對于Linux,最好能自己安裝,配置,下載它的圖形用戶界面以及一些應用程序。自己安裝Apache并會編寫Web應用程序。要清醒地認識到這個世界除了Windows之外,還有Linux的存在。并且這種局面將會長期存在。反過來,如果你是一個死忠的Linux開發(fā)者,不要再繼續(xù)對Windows的憎惡,要相互學習,取長補短,看看Windows有什么好的東東可以采納。記住Windows仍然是桌面之王。誰也說不準你們公司什么時候會決定從Linux轉向Windows,或者從Windows轉向Linux。誰也說不準什么時候你會跳槽跑到另外一個使用不同平臺的公司上班——或者即便不跳槽,也有可能在不同平臺上開始另外一個殺手級項目——所以最好在每個平臺上都積累一些經驗,而不要在一棵樹上吊死。
十、SQL
盡管SQL在當今眾多的技術中已不是什么新東西,而且在未來的十年里它的作用很有可能被削弱,甚至整個被淘汰,但它仍然是一種基本技能——別看它是一種基本技能,至今仍有許多開發(fā)人員不懂什么是SQL或對它了解不多。不要指望基于圖形用戶界面的SQL構造器會幫你的忙,還是自己親手寫SQL查詢吧,確定你掌握了SQL的基本語法?,F(xiàn)在理解了SQL,不僅對以后學習XQuery有所裨益,而且可以使你很快找到簡化或改進當前開發(fā)項目的途徑。
尾聲:培養(yǎng)對技術的好奇心
其實,不管技術的發(fā)展趨勢如何,每個人最重要的一個技能是好奇心。敢于面對挑戰(zhàn),在你目前或未來的工作中,新語言或新技術可能很重要,也可能不怎么重要,你所學習的東西并不一定非要針對你的工作。不要怕失敗,任何新的技術對初學者來說都是困難的。大多數的失敗都可以歸咎于本身急功近利,希望速成。俗話說——千里之行,始于足下,應該腳踏實地,一步一個腳印地往前走。不要讓時間來左右你行動,而是要利用時間來關注、研究、測試新的開發(fā)技術和工具。本文的用意不在于要讓你成為任何一種技術的專家——只是想借VCKBAE這塊寶地拋磚引玉,和大家暢談現(xiàn)在和未來哪些技術是我們要密切關注的,討論今后IT行業(yè)就業(yè)的知識結構,思考自己今后應該在哪些方面需要多花些功夫。因為每一個人的情況各有不同,應該根據具體情況來構筑自己的知識層面。但有一點無庸置疑——那就是保持良好的好奇心始終會使你充實和睿智。