月度归档: 2009 年 2 月

  • SCJD認證介紹

    Sun推出的專業認證包括下列三種:

      ◆ JAVA認證考試   

      對於JAVA程序設計員,Sun推出兩項認證:
      Sun Certified JAVA Programmer (SCJP)
      Sun Certified JAVA Developer (SCJD)

      SCJP測驗JAVA程序設計概念及能力,內容偏重於JAVA語法及JDK的內容;SCJD則進一步測試用JAVA 開發應用程序的能力,考試者必須先完成一個程序的設計方案,再回答與此方案相關的一些問題。

     
     ◆ Solaris系統管理認證考試
      
      對Solaris/Sun OS系統管理員,Sun推出Certified Solaris Administrator(CSA)。CSA分別為兩個等級( Part I 和 Part II ),測試對Solaris 系統管理的了解程度。

      ◆ Solaris網絡管理認證考試
     
      為了測試使用者對於Solaris網絡管理能力,Sun推出Certified Network Administrator(CNA)。內容包括基本網絡概念、Routing and Subnet、Security、Performance、DNS、NIS+等。  

      Sun Java認證是業界唯一經Sun授權Java認證培訓。Sun認證Java開發員考試內容包括完整的Java應用程序開發,涉及數據庫、圖形用戶界面、網 絡通信、平臺移植等各方面內容,要求學員已通過Java程序員認證。學習結束後,可參加全球連網考試。考試合格則由Sun公司頒發國際通用的Java開發 員證書。

    java開發員認證Sun Certified JAVA Deverloper(SCJD),認證考試以Sun指定的javaSL-285為教材,機考部分的考試號為310-027。預備知識:1.具有使用Java編程經驗;2.了解怎樣實現接口和處理Java異常;3.應用面向對象技術;4.了解用戶界面設計;5.了解基本的TCP/IP通信;6.掌握Socket或流編程。

    該認證將證明您具備以下能力:1.分析、設計、實現和測試“自底而上”的intranet的商業應用;2.理解JDBC和編寫與SQL數據庫連接的程序;3.解釋軟件開發周期,每階段的目標,可使用適當的Java程序類型,了解API設計的基本元素,根據項目中的功能需求確定程序組件;4.描述關系數據庫的設計及其設計原則;5.了解JDBC及其使用;6.使用良好的GUI設計原則設計用戶界面;7.可以使用Socket連接以適當格式傳輸數據,並將其集成到應用程序中;8.描述一層,兩層及多層數據庫結構及相關問題,創建一個多層Java小程序或應用程序;9.了解在Solaris和Windows平臺之間的移植問題。

  • JAVA認證基礎:隨機整數的生成過程

    使用Java 2 SDK基礎類庫產生隨機數的方法很多。但是如果你跟不上這些類庫的更新腳步,你有可能正在使用的是一種低效的隨機數生成機制,更糟糕的是:你有可能得到的不是均勻分布的隨機數。本文將向你展示一種較為可靠的隨機數生成方法,同時與其他方法進行比較。
    自從JDK最初版本發布起,我們就可以使用java.util.Random類產生隨機數了。在JDK1.2中,Random類有了一個名為nextInt()的方法:public int nextInt(int n)給定一個參數n,nextInt(n)將返回一個大於等於0小於n的隨機數,即:0 <= nextInt(n) < n。你所要做的就是先聲明一個Random的對象,在調用其nextInt(n)函數以返回隨機值。這裏有個示例,下面的代碼段將生成很多隨機數並輸出它們的平均值:

    以下是引用片段:
      int count = 1000000;
      int range = Integer.MAX_VALUE / 3 * 2;
      double sum = 0;
      Random rand = new Random();
      for (int i=0; i<count; i++) {
      sum += rand.nextInt(range);
      }
      System.out.println(sum/count);

    執行了1000000次循環之後,得到的平均值基本上就處於隨機數範圍的中點(midpoint)。

      到目前為止,事情還並不復雜,但是我們會問為什麽要使用nextInt(n)?考慮一下的隨機數生成方法:
      (1)使用老的方法nextInt(),沒有制定數值範圍
      (2)用Math.abs()靜態函數得到(1)中產生值的絕對值
      (3)對(2)的結果進行取模運算(%),得到期望範圍類的值

      我們說nextInt(n)要比上述方法更好,為什麽呢?參考以下的代碼段:

    以下是引用片段:
      sum = 0;
      for (int i=0; i<count; i++) {
      sum += Math.abs(rand.nextInt()) % range;
      }
      System.out.println(sum/count);
      不難發現,每次循環都多出了幾步運算。事實上,這種隨機數生成的方法存在著以下三個問題:

      首先,nextInt()返回的值是趨於均勻分布在Integer.MIN_VALUE 和 Integer.MAX_VALUE之間的。如果你取Integer.MIN_VALUE的絕對值,得到的仍然不是一個正數。事實上,Math.abs(Integer.MIN_VALUE)等於Integer.MIN_VALUE。因此,存在著這樣一種情況(雖然很少見):rand.nextInt()=Integer.MIN_VALUE,經過取絕對值Math.abs(rand.nextInt())之後,得到是一個負數。這種幾率為 1/(2^31),在我們的測試中不太可能發生——循環次數只有1000000次。
      其次,當你對nextInt()取模時,你使結果的隨機性大打折扣。隨機數中較小的值出現的幾率更大一些。這就是眾所周知的偽隨機數生成,因此我們不是用取模的方法。
      最後,也可能是最糟糕的:隨機數不是均勻分布。如果你執行了上述的兩段代碼,第一段代碼的結果將會大於715,000,000,考慮到數值範圍的中點(midpoint)715,827,882,所以這是一個可以接受的結果。然而,你會吃驚的發現第二段代碼得到的平均值肯定不會超過600,000,000。

      為何第二段代碼的結果會如此的偏差?糾其本質,問題出在數值分布的不均勻。當你進行取模運算時,你將過大的數轉換成了較小的。這使得較小的數更容易產生。

      使用nextInt(range)將會解決上述的三個問題。還有一種隨機數生成方法——使用Math.random()。這個方法的效果如何?

    以下是引用片段:
      sum = 0;
      for (int i=0; i<count; i++) {
      sum += (int)(Math.random() * range);
      }
      System.out.println(sum/count);
    很好,使用random()不會碰到nextInt()的麻煩。你不會得到負數返回值,沒有使用取模運算,值分布也是均勻的。還有什麽問題嗎?你有沒有考慮到Math.random()使用了浮點運算,而nextInt()和nextInt(range)只有整數操作?Math.random()可能會慢上四倍。再加上從浮點到整數的類型轉換,整個運算將會更慢。好了,經過一番比較,我們發現使用nextInt(range)生成隨機數更為有效,因為它避免了其他方法的種種弊端。最後再給出一段代碼,通過測試可以比較本文提到的幾種隨機數生成方法。

  • SCJP認證信息

    Sun Java。考試內容涉及所有Java相關知識、編程概念及applet開發技巧。Sun 認證Java程序員考試旨在觀察您通過應用軟件分配進行復雜編程的能力。之後還要測試您完成編程所需的知識。
      
    認證要求:
    學員掌握如何使用標準Java Development kit,V1.2 (JDK)或V1.4(JDK)開發應用程序和applets。學會Java語言的語法;如何使用Java來創建圖形用戶接口(GUI),事件處理機制,例外處理,通過設計與開發各種Java程序來獲得實際的編程經驗;您也將學到文件輸入/輸出(I/O);多線程和網絡的知識。
      
    通過認證將證明您能夠:認證是業界唯一經Sun授權的Java認證

    1.使用Java編程語言創建Java應用程序和applets
    2.定義和描述垃圾搜集,安全性和Java虛擬機(JVM)
    3.描述和使用Java語言面向對象的特點
    4.開發圖形用戶接口(GUI)。利用Java支持的多種布局管理
    5.描述和使用Java 1.2的事件處理模式
    6.使用Java語言的鼠標輸入,文本,窗口和菜單窗口部件
    7.使用Java的例外處理來控制程序執行和定義用戶自己的例外事件
    8.使用Java語言的先進的面向對象特點,包括方法重載,方法覆蓋,抽象類,接口,final,static和訪問控制
    9.實現文件的輸入/輸出(I/O)
    10.使用Java語言內在的線程模式來控制多線程

  • SUN認證常識

    Sun在 UNIX領域一直是技術上和市場占有率的領先者;近年來推出的Java技術,更成為業界的標準。所以Sun公司所舉辦的認證考試,必然成為Java和UNIX在全球信息界公認的標準。Sun推出的專業認證包括下列三種:

    1.Java認證考試:

     對於Java程序設計員,Sun推出兩項認證:Sun Certified Java Programmer(SCJP)和Sun Certified Java Developer(SCJD)。310-027SCJP測驗Java程序設計概念及能力,內容偏重於Java語法及JDK的內容;SCJD則進一步測試用Java開發應用程序的能力,考試者必須先完成一個程序的設計方案,再回答與此方案相關的一些問題。

    2.Solaris系統管理認證考試:

     對Solaris/Sun OS系統管理員,Sun推出Certified Solaris Administrator(CSA)。CSA分別為兩個等級(Part I 和 Part II ),測試對Solaris 系統管理的了解程度。

    3.Solaris網絡管理認證考試:

     為了測試使用者對於Solaris網絡的管理能力,Sun還特別推出Certified NetworkAdministrator(CNA). 內容包括基本網絡概念、 Routing and Subnet、Security、Performance、DNS、NIS+等通過SUN任何一門專業認證後,將全收到Sun Microsystems 總公司寄發的資格證及徽章,並有權將通過Sun認證的標記印在個人名片上,作為個人技術能力的肯定。

    SUN認證JAVA程序員

    眾所周知,Java以其獨有的開放性,跨平臺性和面向網絡的交互性席卷全球,以其安全性、易用性和開發周期短的特點,迅速從最初的編程語言發展成為全球第二大軟件開發平臺。這些優點已引起國內外計算機界的極大關註;Java公用規範(PAS)已被國際標準化組織(ISO)認定,Java技術已列為當今世界信息技術三大要點之一。

     Sun Java認證是業界唯一經Sun授權的Java認證。考試內容涉及所有Java相關知識、編程概念及applet開發技巧。Sun 認證Java程序員考試旨在觀察您通過應用軟件分配進行復雜編程的能力。之後還要測試您完成編程所需的知識。每次考試都包括65道以上的選擇題,時間大約為90分鐘。

    課程:SL-275 JAVA語言編程
    本課程是使學員掌握如何使用標準Java Development Kit,V1.1 (JDK) 開發應用程序和applets。在本課程中您將學會Java語言的語法。如何使用Java 來創建圖形用戶接口GUI,事件處理機制, 例外處理,通過設計與開發各種Java 程序來獲得實際的編程經驗.您也將學到文件輸入/輸出(I/O)、 多線程和網絡的知識.。本課程適用於熟悉C或C++的編程人員,也適用於想參加Sun Java 認證考試的各位考生。

  • 簡述SUN認證

    Sun公司為了為業界建立一套認證的標準,特別針對最先進的科技,推出Java及Solaris 技術認證方案。根據這些認證,在企業方面可以藉此作為招聘人才的評判標準,或是作為衡量員工技術水準的依據;在技術方面,通過這些認證也可以證明個人的技術能力。

    Sun在 UNIX領域一直是技術上和市場占有率的領先者;近年來推出的Java技術,更成為業界的標準。所以Sun公司所舉辦的認證考試,必然成為Java和UNIX在全球信息界公認的標準。Sun推出的專業認證包括下列三種:

    Java認證考試

    對於Java程序設計員,Sun推出兩項認證:Sun Certified Java Programmer (SCJP)和Sun Certified Java Developer(SCJD)。SCJP測驗Java程序設計概念及能力,內容偏重於Java語法及JDK的內容;SCJD則進一步測試用Java 開發應用程序的能力,考試者必須先完成一個程序的設計方案,再回答與此方案相關的一些問題。

    Solaris系統管理認證考試

    對Solaris/Sun OS系統管理員,Sun推出Certified Solaris Administrator(CSA)。CSA分別為兩個等級( Part I 和 Part II ),測試對Solaris 系統管理的了解程度。

    Solaris網絡管理認證考試

    為了測試使用者對於Solaris網絡管理能力,Sun推出Certified Network Administrator(CNA)。內容包括基本網絡概念、Routing and Subnet、Security、Performance、DNS、NIS+等。通過SUN任何一門專業認證後,將全收到Sun Microsystems 總公司寄發的資格證書及徽章,並有權將通過Sun認證的標記印在個人名片上,作為個人技術能力的肯定。

    java開發員認證Sun Certified JAVA Deverloper(SCJD) java開發員的認證考試以Sun指定的javaSL-285為教材,機考部分的考試號為310-027。Java開發員的認證考試: Java開發員的考試分程序設計和機考兩部分。其中,程序設計部分不限時。考生報名後,可從指定的網址下載考試題目,並根據題目要求進行程序設計。在指定的時間段(1年)內,考生須傳回自行設計的java程序。

  • 初學者,你應當如何學習C++以及編程

    Javascript是世界上最受誤解的語言,其實C++何嘗不是。坊間流傳的錯誤的C++學習方法一抓就是一大把。我自己在學習C++的過程中也走了許多彎路,浪費了不少時間。

    為什麼會存在這麼多錯誤認識?原因主要有三個,一是C++語言的細節太多。二是一些著名的C++書籍總在(不管有意還是無意)暗示語言細節的重要性和有趣。三是現代C++庫的開發哲學必須用到一些犄角旮旯的語言細節(但注意,是庫設計,不是日常編程)。這些共同塑造了C++社群的整體心態和哲學。

    單是第一條還未必能夠成氣候,其它語言的細節也不少(儘管比起C++起來還是小巫見大巫),就拿javascript來說,作用域規則,名字查找,closure,for/in,這些都是細節,而且其中還有違反直覺的。但許多動態語言的程序員的理念我猜大約是學到哪用到哪罷。但C++就不一樣了,學C++之人有一種類似於被暗示的潛在心態,就是一定要先把語言核心基本上吃透了才能下手寫出漂亮的程序。這首先就錯了。

    這個意識形成的原因在第二點,C++書籍。市面上的C++書籍不計其數,但有一個共同的缺點,就是講語言細節的書太多——《C++ gotchas》,《Effective C++》,《More Effective C++》,但無可厚非的是,C++是這樣一門語言:要拿它滿足現代編程理念的需求,尤其是C++庫開發的需求,還必須得關注語言細節,乃至於在C++中利用語言細節已經成了一門學問。比如C++模板在設計之初根本沒有想到模板元編程這回事,更沒想到C++模板系統是圖靈完備的,這也就導致了《Modern C++ Design》和《C++ Template Metaprogramming》的驚世駭俗。
    這些技術的出現為什麼驚世駭俗,打個比方,就好比是一塊大家都認為已經熟悉無比,再無秘密可言的土地上,突然某天有人挖到原來地下還蘊藏著最豐富的石油。在這之前的C++雖然也有一些細節,但也還算容易掌握,那可是C++程序員們的happy old times,因為C++的一切都一覽無餘,everything is figured out。然而《Modern C++ Design》的出世告訴人們,“瞧,還有多少細節你們沒有掌握啊。”於是C++程序員們久違的激情被重燃起來,奮不顧身的踏入細節的沼澤中。尤其是,模板編程將C++的細節進一步挖掘到了極致——我們幹嘛關心涉及類對象的隱式轉換的優先級高低?看看boost::is_base_of就可以知道有多詭異了。
    但最大的問題還在於,對於這些細節的關注還真有它合適的理由:我們要開發現代模板庫,要開發active library,就必須動用模板編程技術,要動用模板編程技術,就必須利用語言的犄角旮旯,enable_if,type_traits,甚至連早就古井無波的C宏也在亂世中重生,看看

    boost::preprocessor有多詭異就知道了,連C宏的圖靈完備性(預編譯期的)都被挖掘出來了。為什麼要做這些?好玩?標榜?都不是,開發庫的實際需求。但這也正是最大的悲哀了。在boost裡面因實際需求而動用語言細節最終居然能神奇的完成任務的最好教材就是
    boost::foreach,這個小設施對語言細節的發掘達到了驚天地泣鬼神的地步,不信你先試著自己去看看它的源代碼,再看看作者介紹它的文
    章吧。而boost::typeof也不甘其後——C++語言裡面有太多被“發現”而不是被“發明”的技術。難道最初無意設置這些語言規則的傢伙們都是oracles?

    因為沒有variadic templates,人們用宏加上缺省模板參數來實現類似效果。因為沒有concepts,人們用模板加上析構函數的細節來完成類似工作。因為沒有typeof,人們用模板元編程和宏加上無盡的細節來實現目標… C++開發者們的DIY精神不可謂不強。然而,如果僅僅是因為要開發優秀的庫,那麼涉及這些細節都還是情有可原的,至少在C++09出現並且編譯器廠商跟上之前,這些都還能說是不得已而為之。但我們廣大的C++程序員呢?大眾是容易被誤導的,我也曾經是。以為掌握了更多的語言細節就更牛,但實際卻是那些語言細節十有八九是平時編程用都用不到的。 C++中眾多的細節雖然在庫設計者手裡面有其用武之地,但普通程序員則根本無需過多關注,尤其是沒有實際動機的關注。一般性的編碼實踐準則,以及基本的編程能力和基本功,乃至基本的程序設計理論以及算法設計。才是真正需要花時間掌握的東西。學習最佳編碼實踐比學習C++更重要。看優秀的代碼也比埋頭用差勁的編碼方式寫垃圾代碼要有效。直接、清晰、了、KISS地表達意圖比玩編碼花招要重要…

    避免去過問任何語言細節,除非必要。這個必要是指在實際編程當中遇到問題,這樣就算需要過問細節,也是最省事的,懶惰者原則嘛。一個掌握了基本的編程理念並有較強學習能力的程序員在用一門陌生的語言編程時就算拿著那本語言的聖經從索引翻起也可以編出合格的程序來。十年學會編程不是指對每門語言都得十年,那一輩子才能學幾門語言哪,如果按字母順序學的話一輩子都別指望學到Ruby了;十年學習編程更不是指先把語言特性從粗到細全都吃透才敢下手編程,在實踐中提高才是最重要的。

    至於這種摳語言細節的哲學為何能在社群裡面呈野火燎原之勢,就是一個心理學的問題了。想像人們在論壇上討論問題時,一個對語言把握很細緻的人肯定能夠得到更多的佩服,而由於論壇上的問題大多是小問題,所以解決實際問題的真正能力並不能得到顯現,也就是說,知識型的人能夠得到更多佩服,後者便成為動力和仿效的砝碼。然而真正的編程能力是與語言細節沒關係的,熟練運用一門語言能夠幫你最佳表達你的意圖,但熟練運用一門語言絕不意味著要把它的邊邊角角全都記住。懂得一些常識,有了編程的基本直覺,遇到一些細節錯誤的時候再去查書,是最節省時間的辦法。

    C++的書,Bjarne的聖經《The C++ Programming Language》是高屋建瓴的。 《大規模C++程序設計》是挺務實的。 《Accelerated C++》是最佳入門的。 《C++ Templates》是僅作參考的。 《C++ Template Metaprogramming》是精力過剩者可以玩一玩的,普通程序員碰都別碰的。 《ISO.IEC C++ Standard 14882》不是拿來讀的。 Bjarne最近在做C++的教育,新書是絕對可以期待的。

    PS關於如何學習編程,g9的blog上有許多精彩的文章:這裡,這裡,這裡,這裡…實際上,我建議你去把g9老大的blog翻個底朝天:P

    再PS書單?我是遑於給出一個類似《C++初學者必讀》這種書單的。 C++的書不計其數,被公認的好書也不勝枚舉。只不過有些書容易給初學者造成一種錯覺,就是“學習C++就應該是這個樣子的”。比如有朋友提到的《高質量C/C++編程》,這本書有價值,但不適合初學者,初學者讀這樣的書容易一葉障目不見泰山。實際上,正確的態度是,細節是必要的。但細節是次要的。其實學習編程我覺得應該最先學習如何用偽碼表達思想呢,君不見《Introduction to Algorithm》裡面的代碼?《TAOCP》中的代碼?哦,對了它們是自己建立的語言,但這種僅教學目的的語言的目的就是為了避免讓寫程序的人一開始就忘了寫程序是為了完成功能,以為寫程序就是和語言細節作鬥爭了。 Bjarne說程序的正確性最重要,boost的編碼標準裡面也將正確性列在性能前面。此外,一旦建立了正確的學習編程的理念,其實什麼書(只要不是太垃圾的)都有些用處。都當成參考書,用的時候從目錄或索引翻,基本就對了。

    再再PS myan老大和g9老大都給出了許多精彩的見解。我不得不再加上一個P.S。具體我就不摘錄了,如果你讀到這裡,請務必往下看他們的評論。轉載者別忘了轉載他們的評論:-)許多朋友都問我同一個問題,到底要不要學習C++。其實這個問題問得很沒有意義。 “學C++”和“不學C++”這個二分法是沒意義的,為什麼?因為這個問題很表面,甚至很浮躁。重要的不是你掌握的語言,而是你掌握的能力,借用myan老大的話,“重要的是這個磨練過程,而不是結果,要的是你粗壯的腿,而不是你身上背的那袋鹽巴。 ”。此外學習C++的意義其實真的是醉翁之意不在酒,像C/C++這種系統級語言,在學習的過程中必須要涉及到一些底層知識,如內存管理、編譯連接系統、彙編語言、硬件體系結構等等等等知識(注意,這不包括過分犄角旮旯的語言枝節)。這些東西也就是所謂的內功了(其實最最重要的內功還是長期學習所磨練出來的自學能力)。對此大嘴Joel在《Joel On Software》裡面提到的漏洞抽象定律闡述得就非常漂亮。

    所以,答案是,讓你成為高手的並不是你掌握什麼語言,精通C++未必就能讓你成為高手,不精通C++也未必就能讓你成為低手。我想大家都不會懷疑g9老大如果要抄起C++做一個項目的話會比大多數自認熟練C++的人要做得漂亮。所以關鍵的不是語言這個表層的東西,而是底下的本質矛盾。當然,不是說那就什麼語言都不要學了,按照一種曹操的邏輯,“天下語言,唯imperative與declarative耳”。 C++是前者裡面最複雜的一種,支持最廣泛的編程範式。借用當初數學系入學大會上一個老師的話,“你數學都學了,還有什麼不能學的呢?”。學語言是一個途徑,如果你把它用來磨練自己,可以。如果你把它用來作為學習系統底層知識的鑰匙,可以。如果你把它用來作為學習如何編寫優秀的代碼,如何組織大型的程序,如何進行抽象設計,可以。如果掉書袋,光啃細節,我認為不可以(除非你必須要用到細節,像boost庫的coder們)。

  • Linux認證的基本知識點介紹

    一、什麼是Linux ?

    Linux誕生於1991年10月,至今已有十多年曆史。 Linux是一套免費且功能完整的UNIX軟件。且它是一個32位的操作系統,運作穩定且有

    效率,被廣泛用作服務器操作系統。 Linux承襲的是開放式原始碼(Open Source)的精神,所有Linux Source Code(源代碼)均可免費取得,

    這使得它相對其它的操作系統(尤其是昂貴的Windows NT)而言價格極其便宜。同時,因為它的源代碼是開放的,因此,可以方便地被全球數

    以萬計的程序員應用並不斷改進,使得它在技術上的進展突飛猛進—–目前Linux的內核已經升級到2.4版。這種進步使得Linux成為市場倍

    加青睞的操作系統,1999年,Linux超過了Novell公司的Netware,成為僅次於微軟Windows NT的排名第二的服務器操作系統。 IDC預測,未

    來四年Linux的出貨量將以年增長28%的比例增長,從1999年的130萬套增長到2004年的470萬套。

    目前,全球最大的Linux是Red Hat Linux,紅旗Linux則是中國Linux的第一品牌。

    二、為什麼你應該選擇Linux認證?

    知識產權保護將逐步規範,使得更多企業轉向成本低廉的Linux操作平台。據統計,2000年,Linux在服務器市場上的佔有率超過27%,

    其增長率超過Windows操作系統4個百分點。同時,這一市場正在飛速發展,IDC日前表示,Linux急速增加的使用者急需專業訓練,到公元

    2004年,光是在美國,這塊市場就能成長到3億1千1百萬美金。尤其Linux持續不斷滲入各大企業中,使得Linux的專業教育訓練格外緊要。

    因此,對那些急於轉向IT業界的同學來說,linux認證是一個不錯的選擇。在目前來看,至少它有以下優勢:

    Windows XP高昂的價格和升級收費政策使更多企業和個人用戶轉向自由開放的Linux操作系統,目標雇主群會迅速增長;

    方便地向潛在的雇主證明您在Linux方面獨特的專業技能,獲得更多提升和提薪的機會;

    成為屈指可數的Linux認證工程師,可以在與成千上萬的MCSE、CCNA競爭中脫穎而出,輕鬆勝出;

    相對其他IT認證更低廉的花費(例如最廣泛被接受的LPIL Linux認證的兩門考試每門只需要100美元)。

    同時,根據Tech RePublic的調查,IT業界內人士也有相當多的技術人員正在考慮Linux認證,這一比例高達45%。

    三、國際Linux認證現狀

    目前在國外廣泛承認的linux認證共有四種:

    1. Linux Professional Institute(簡稱為LPI)

    就目前Linux團體所關注的程度來看,LPI認證計劃受到了最為廣泛的支持。 LPI已經先期推出了Linux Profession Institute

    Certified-Level 1 (簡稱為LPIC-1)認證計劃,不久的將來還會按預定計劃推出第2和第3級認證。為了獲得LPIC-1證書,你必須通過兩門各

    自長達90分鐘的考試—–101 (LPI General Linux,Part1)和102 (LPI General Linux,Part 2)。 LPI的LPIC—1的應試對象主要是有至少1

    年Linux工作經驗的系統管理員。

    2.Sair Linux和GNU

    同LPI一樣,Sair提供了三種級別的認證計劃;

    Level 1——Sair Linux & GNU Certified Administrator(LCA)

    Level 2 —– Sair Linux & GNU Certified Engineer(LCE)

    Level 3 —- Master Sair Linux & GNU Certified Engineer(MLCE)

    第1級才是目前得到完全開發的Sair認證項目,這一點也和LPI一樣。

    3.Linux+

    CompTIA主辦的Linux+認證計劃是最新進入Linux認證市場的。該計劃於2001年9月21日正式推出,目前已經在Linux從業人員和業內引起

    了廣泛的關注。幾乎所有的主要認證出版商都撰寫了針對Linux+認證的考試參考書,眾多的IT培訓中心都在準備Linux+認證計劃了。

    同CompTIA推出的其他帶“+”號的認證一樣,Linux十資格證書只需要通過一場考試即可獲得(VUE和Prometric考試中心舉辦此類考試)

    ,一旦你獲得了Linux+資格證書,證書就終生有效。 Linux+考試價格是190美元,考試採用多選題形式,時長120分鐘,所覆蓋的內容很多都

    是和Sair以及LPI認證完全一樣的,但難度稍有降低。

    LPI和Sair認證計劃的考試對像是具有相當經驗的Linux網絡和系統管理員,而Linux+認證則主要面向只有半年左右的Linux體驗、想獲

    得基本Linux技術資格的個人。

    4.Red Hat Certified Engineer

    Linux+代表了低級的Linux認證計劃,而高級的Linux認證長期以來則幾乎完全是Red Hat Certified Engineer(RHCE)認證計劃的天下

    。 RHCE是該領域最具挑戰性的認證考試,所以它也是最有價值的Linux認證。但也是最貴的,全套課程費用為2,498美金,也可單獨做認證

    測驗,費用為749美金。

  • linux的職業方向

    如何入門及如何規劃自己的Linux學習之路一直是困擾Linux愛好者的一大難題,實際上,Linux的入門與學習並不難,只是由於長期使用其他操作系統的習慣與沒有正確的引導指向,所以一個本身不是難題的問題變成了難題。

    本文為長期在Linux行業從業的技術人員與您分享他的經驗與指導意見,相信這篇文章將對很多想入門的Linux愛好者有較大幫助。學習Linux的一個非常大的誤區在於僅僅學習Linux本身,想要讓它對自己有利,必須學習使用Linux做事情,比如:用Linux平台做大型網站、用Linux作為Oracle RAC集群的平台、製作一個電視中運行的小型嵌入式Linux系統。

    很多國家及地區的政府(如新加坡、台灣和德國)已經表明有計劃把自己的服務器體系結構由WINDOWS向Linux轉移。英國政府在與微軟協商一個三年期的合同續約時,利用有可能轉向Linux成功地節省了1.5億美元。美國也不甘落後,其國防部(DOD)、國家安全局(NSA)、國家航空和宇宙航行局(NASA)以及美國國家標準和技術委員會(NIST)都在就部署Linux服務器系統和開放源碼軟件進行研究。千萬不能僅僅學習Linux系統本身,Linux僅僅是操作系統,重要的是其上的應用,就是能為你能創造多少價值,學習Linux的一個誤區在於精力只是局限於Linux本身,從Linux的操作到Linux的內核,也不管自己到底要幹嘛?但是系統畢竟是拿來用的,學習使用Linux的目的是創造效益,如果不是僅僅製作Linux系統,不是加入Red Hat這樣的專業Linux發布版廠商,那麼你在學習了Linux基礎後就相當於掌握了Windows,很顯然這是不夠的,你還需要更進一步的學習,選擇Linux上的應用或者Linux上的軟件開發。

    學習Linux要選擇好自己的發展方向,大的方向有兩個,一是Linux的系統、網絡、服務應用方向,另一個是Linux下軟件開發方向。根據我們多年跟踪的學員情況,我們發現,學員在同等條件,學習Linux後,選擇開發要比系統應用薪水要上升的更為迅速,而且更容易突破5000、8000或10000等每月的門檻,但是這個方向難度會更大,同時會更枯燥些,需要“鐵屁股”——能坐得住,一但真正入門,就會有很強的成就感,進入大公司也只是早晚的事。但是另一方面,高級的系統應用方面,如集群、數據庫等也相當不錯,那些不想吃程序員的苦的人可以選擇這個方向。以下為兩個方向的詳細介紹:

    Linux的系統、網絡、服務、集群,網站,Oracle數據庫應用方向:

    1、數據庫服務器如Oracle Sybase

    2、Web應用服務器如sina baidu大型網站

    3、Mail應用服務器如163或外企mail系統等

    4、中間件或J2EE服務器如為JBOSS Weblogic Websphoto做平台

    5、網絡應用等

    嵌入式開發、UNIX/Linux應用系統開發,Linux內核驅動開發方向,主要有以下幾類:

    1、Linux下的C/C++系統程序開發

    2、Linux平台Java體系開發

    3、Linux下的圖形界面開發

    4、Linux底層內核/驅動開發

    5、嵌入式Linux開發等。