程序員, 超越軟件藍領(lǐng)的七種武器
——
信息技術(shù)的更新速度是驚人的,程序員的職業(yè)生涯則是一個(gè)要求不斷學(xué)習的過(guò)程,永遠不能固步自封。本人在工作期間曾看見(jiàn)過(guò)很多程序員只要有閑暇時(shí)間就瀏覽一些沒(méi)有太大作用的網(wǎng)頁(yè),在網(wǎng)上聊天,打游戲,浪費了大量的時(shí)間,十分不可取。而另外一種情況是,IT技術(shù)的日新月異使很多程序員眼花繚亂,什么都想學(xué),卻又不知從何學(xué)起,今天看看這個(gè),明天學(xué)學(xué)那個(gè),貪多不熟。
雖然IT技術(shù)發(fā)展迅速,但很多技術(shù)都是有規律可循,一些基本的概念、原理和方法還很通用,可以舉一反三。本人根據自己的體會(huì )和經(jīng)驗,向那些剛剛踏入IT行業(yè)的新程序員們或正在迷茫的程序員們推薦程序員必須掌握的七種武器,有了這七種武器,雖不敢說(shuō)笑傲江湖,但將自己立于不敗之地還是可以的。
第一種武器:開(kāi)發(fā)工具
至少熟練掌握兩到三種開(kāi)發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點(diǎn)推薦的開(kāi)發(fā)工具,C/C++以其高效率和高度的靈活性成為開(kāi)發(fā)工具中的利器,很多系統級的軟件還是用C/C++編寫(xiě)。而JAVA的跨平臺和與WEB很好的結合是JAVA的優(yōu)勢所在,而本人對SUN公司的“網(wǎng)絡(luò )即計算機”的概念相當欣賞,并相信JAVA即其相關(guān)的技術(shù)集JAVA One會(huì )成為未來(lái)的主流開(kāi)發(fā)工具之一。其次,如果能掌握一種簡(jiǎn)便的可視化開(kāi)發(fā)工具,如VB,PowerBuilder,Delphi,C++ Builder,則更好,這些開(kāi)發(fā)工具減小了開(kāi)發(fā)難度,并能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語(yǔ)言,如shell,perl等,至少能讀懂這些腳本代碼。
第二種武器:數據庫
為什么數據庫是如此重要?很多應用程序都是以數據庫的數據為中心,而數據庫的產(chǎn)品也有不少,其中關(guān)系型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關(guān)系型數據庫的關(guān)鍵元素要非常清楚,要熟練掌握SQL的基本語(yǔ)法。雖然很多數據庫產(chǎn)品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒(méi)有機會(huì )接觸商業(yè)數據庫系統,可以使用免費的數據庫產(chǎn)品是一個(gè)不錯的選擇,如mySQL, Postgres等。
第三種武器:操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個(gè)真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進(jìn)程/線(xiàn)程調度、信號、內核對象、系統調用、協(xié)議棧實(shí)現等。Linux作為開(kāi)發(fā)源碼的操作系統,是一個(gè)很好的學(xué)習平臺,Linux幾乎具備了所有現代操作系統的特征。雖然Windows系統的內核實(shí)現機制的資料較少,但通過(guò)互聯(lián)網(wǎng)還是能獲取不少資料。只有對操作系統有一定的了解后,你會(huì )發(fā)現自己上了一個(gè)新的臺階。
第四種武器:網(wǎng)絡(luò )協(xié)議TCP/IP
在互聯(lián)網(wǎng)如此普及的今天,如果您還沒(méi)有對互聯(lián)網(wǎng)的支撐協(xié)議TCP/IP協(xié)議棧有很好的掌握,就需要迅速補上這一課,網(wǎng)絡(luò )技術(shù)已改變了軟件運行的模式,從最早的客戶(hù)/服務(wù)器結構,到今天的WEB Services,再到未來(lái)的網(wǎng)格計算,這一切都離不開(kāi)以TCP/IP協(xié)議棧為基礎的網(wǎng)絡(luò )協(xié)議支持,所以,深入掌握TCP/IP協(xié)議是非常必要的。至少,你需要了解ISO七層協(xié)議模型,IP/UDP/TCP/HTTP等常用協(xié)議的原理和三次握手機制。
第五種武器:DCOM/CORBA/XML/WEB Services
隨著(zhù)技術(shù)的發(fā)展,軟件與網(wǎng)絡(luò )的無(wú)縫結合是必然趨勢,軟件系統的位置無(wú)關(guān)性是未來(lái)計算模式的重要特征之一,DCOM/CORBA是當前兩大主流的分布計算的中間件平臺,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業(yè)的開(kāi)發(fā)平臺來(lái)開(kāi)發(fā)軟件,而是要理解這些技術(shù)的初衷,即為什么需要這項技術(shù),如果你能理解了這一點(diǎn),再回頭看這些技術(shù)的具體實(shí)現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯(lián)網(wǎng)上的“世界語(yǔ)”,是分布計算的基石之一。
第六種武器:軟件工程與CMM
現代大型軟件系統的開(kāi)發(fā)中,工程化的開(kāi)發(fā)控制取代個(gè)人英雄主義,成為軟件系統成功的保證,一個(gè)編程高手并不一定是一個(gè)優(yōu)秀的程序員,一個(gè)優(yōu)秀的程序員是將出色的編程能力和開(kāi)發(fā)技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環(huán),優(yōu)秀的程序員應該掌握軟件開(kāi)發(fā)各個(gè)階段的基本技能,如市場(chǎng)分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話(huà)可以概括我的看法:“創(chuàng )意無(wú)限,流程保證”。
第七種武器:強烈的好奇心
什么才是一個(gè)程序員的終極武器呢,那就是強烈的好奇心和學(xué)習精神。沒(méi)有比強烈的好奇心和學(xué)習精神更好的武器了,它是程序員們永攀高峰的源泉和動(dòng)力所在。
其實(shí)學(xué)好一種就夠用了。
tcp/ip相關(guān)文章:tcp/ip是什么
評論