天天看點

七種程式員的基本技能、武器 程式員應具備哪七種武器

七種程式員的基本技能,它們是:數組、字元串與哈希表,正規表達式,調試,兩門語言,一個開發環境,SQL語言,編寫軟體的思想。       
   數組、字元串與哈希表      
      任何受過專業訓練的程式員,對“資料結構”這門課程中涉及到的各種資料結構都不會陌生,但是在實際的程式設計工作中,大部分的資料結構都不會用到,而且也永遠都不會用到。雖然如此,深入地了解基本資料結構的概念和實作細節,仍然是每個程式員的任務。這不僅僅是因為,掌握這些知識将有利于更加正确和靈活地應用它們,而且也是因為,對于語言背後的實作細節的求知欲是一個優秀程式員的素質。      
    正規表達式
      在程式員日常工作中,資料處理占據了相當的比重。而所有的資料之中文本又占據了相當的比重。文本能夠被人了解、具有良好的透明性,利于系統開發、測試和維護等就必需要有一定規律遵循一種規則,當你掌握一門正規表達式語言,就能夠培養你程式設計的直覺本能,達到較高水準,也能夠在實踐中提供更高的開發和執行效率。
    調試
      軟體調試是軟體工程的一個重要部分,其過程出現在軟體工程的各個階段,從最初的可行性分析、原型驗證、到開發和測試階段、再到釋出後的維護與支援,都有軟體調試過程參與。學習和靈活運用軟體調試技術,不僅可以提高程式員工作效率,而且有利于對代碼的感覺力和控制力,加深對軟體和系統的了解。此外,調試技術是解決各種軟體難題的一種有效武器,它直擊要害、銳不可擋,相對其它間接方法具有明顯的優勢。軟體有大美,調試見真功!
    兩門語言
      任何一位職業化的軟體技術人員都會将程式設計語言當成自己的利器。它們代表了開發人員對計算機本身的了解與對軟體開發工作的執著。同時,建立在程式設計語言之上的基礎也标志着程式員的職業化道路發展到了一個新的階段,而單一語言又有一定的局限性,軟體開發的本質就是處理資訊以及資料。一種專門用來處理資料的腳本語言常常是走向更加職業化的必備武器之一。是以精通兩種語言,對于任何一個開發人員來說,并非必須,但是對于一個專業化程度較高的開發人員來說,又常常是必要的。
    一個開發環境
      随着技術的進步,IDE已經越來越強大,遠遠超出我們心目中的最初形象,越來越多的内容被涵蓋到IDE中,從需求分析、業務建摸大批軟體釋出,IDE已經逐漸覆寫了軟體開發的整個生命周期。
    SQL語言
      說起SQL,絕大多數程式員對其作用都了然于胸--用來通路資料庫嘛。确實,資料是資訊系統的核心,沒有資料的計算機應用沒有任何意義。資訊系統中,大量資料本質上就以實體--關系的模式存在,而RDBMS支援SQL這麼簡單但表達能力豐富的通路接口,同時還提供了内建的事務ACID特性保證和故障恢複能力--是以,RDBMS理所當然地成為了大部分資訊系統的标準資料存儲媒體。于是,無論使用何種語言開發資訊系統,從C、C++,Delphi到Java,從Perl、Python到Ruby,使用SQL通路RDBMS都是我們必須修煉的武功秘籍。
    編寫軟體的思想
      說起程式員的武器自然少不了技術書籍,它們就像是拳譜、劍經、雖然不能馬上轉化為巨大的傷害輸出,但假以時日勤以研讀,有朝一日成為傍身絕學也是說不定。不過雖然各類技術書籍汗牛充棟,除去入門時淺顯易用的參考和複雜深奧的學術專著,能夠讓所有程式員常看常新的心法秘籍還是不多。      

程式員應具備哪七種武器

熟練開發工具    做為一名程式員至少熟練掌握兩到三種開發工具的使用,這是程式員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,并能夠強化程式員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。    熟知資料庫    為什麼資料庫是如此重要?作為程式員,他們自然有自己的理由:很多應用程式都是以資料庫的資料為中心,而資料庫的産品也有不少,其中關系型資料庫仍是主流形式,是以程式員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本文法。雖然很多資料庫産品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫産品是一個不錯的選擇,如mySQL,Postgres等。    了解作業系統    目前主流的作業系統是Windows,Linux/Unix,熟練地使用這些作業系統是必須的,但隻有這些還遠遠不夠。要想成為一個真正的程式設計高手,需要深入了解作業系統,了解它的記憶體管理機制、程序/線程排程、信号、核心對象、系統調用、協定棧實作等。Linux作為開發源碼的作業系統,是一個很好的學習平台,Linux幾乎具備了所有現代作業系統的特征。雖然Windows系統的核心實作機制的資料較少,但通過網際網路還是能擷取不少資料。懂得網絡協定TCP/IP。在網際網路如此普及的今天,如果您還沒有對網際網路的支撐協定TCP/IP協定棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟體運作的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協定棧為基礎的網絡協定支援,深入掌握TCP/IP協定是非常必要的。至少,需要了解ISO七層協定模型,IP/UDP/TCP/HTTP等常用協定的原理和三次握手機制。    明白DCOM/CORBA/XML/WEBServices存在的意義    随着技術的發展,軟體與網絡的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特征之一,DCOM/CORBA是目前兩大主流的分布計算的中間平台,DCOM是微軟COM(元件對象模型)的擴充,而CORBA是OMG支援的規範。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為網際網路上的“世界語”,是分布式計算的基石之一。    不要将軟體工程與CMM分開    大型軟體系統的開發中,工程化的開發控制取代個人英雄主義,成為軟體系統成功的保證,一個程式設計高手并不一定是一個優秀的程式員,一個優秀的程式員是将出色的程式設計能力和開發技巧同嚴格的軟體工程思想有機結合,程式設計隻是軟體生命周期中的其中一環,優秀的程式員應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。    需求了解能力    程式員要能正确了解任務單中描述的需求。在這裡要明确一點,程式員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正确評估自己的子產品對整個項目中的影響及潛在的威脅,如果有着兩到三年項目經驗的熟練程式員對這一點沒有體會的話,隻能說明他或許是認真工作過,但是沒有用心工作。    子產品化思維能力    作為一個優秀的程式員,他的思想不能在局限目前的工作任務裡面,要想想看自己寫的子產品是否可以脫離目前系統存在,通過簡單的封裝在其他系統中或其他子產品中直接使用。這樣做可以使代碼能重複利用,減少重複的勞動,也能是系統結構越趨合理。子產品化思維能力的提高是一個程式員的技術水準提高的一項重要名額。