呵。
要看你想往哪方面的程序方向發(fā)展了?,F(xiàn)在程序員也分很多種的啊。
有WEB程序員,嵌入式程序員,有C/S程序員。我就給你一份.net程序員的規(guī)劃吧!呵。
希望對(duì)你有幫助!一份.Net的學(xué)習(xí)規(guī)劃 一、研究方向 智能信息處理實(shí)驗(yàn)室.Net小組的主要研究方向是“.Net平臺(tái)下軟件開(kāi)發(fā)技術(shù)及相關(guān)應(yīng)用”,其研究?jī)?nèi)容包括.Net框架、.Net語(yǔ)言、面向?qū)ο蟮脑O(shè)計(jì)、軟件工程學(xué)方法以及以上理論在實(shí)際中的應(yīng)用。小組將以.Net為開(kāi)發(fā)平臺(tái),著眼于軟件體系結(jié)構(gòu),特別是面向?qū)ο蟮能浖O(shè)計(jì)方法,學(xué)習(xí)軟件模塊化、系統(tǒng)解耦合和設(shè)計(jì)模式等相關(guān)的理論知識(shí),并結(jié)合實(shí)驗(yàn)室“Web語(yǔ)義”、“工作流”等已有的課題點(diǎn),討論以上技術(shù)在實(shí)際生產(chǎn)中的應(yīng)用。
在更高層次上,小組將系統(tǒng)的學(xué)習(xí)目前較為常見(jiàn)的軟件工程學(xué)方法,包括瀑布模式、螺旋模式和敏捷模式等。并在項(xiàng)目中嘗試采用這些方法,分析這些模式的特點(diǎn)和適用范圍,使小組成員掌握基本的軟件項(xiàng)目管理能力。
二、研究階段 對(duì)于.Net下軟件的開(kāi)發(fā)的研究分為以下四個(gè)階段:第一階段:.Net開(kāi)發(fā)環(huán)境的掌握和相關(guān)開(kāi)發(fā)技術(shù)的學(xué)習(xí)。這一階段主要是掌握一門(mén).Net語(yǔ)言(推薦C#);掌握.Net開(kāi)發(fā)的基本技能,包括熟悉.Net框架中的核心類(lèi)、用于數(shù)據(jù)訪問(wèn)的ADO.Net和用于Web應(yīng)用的Asp.Net等;掌握Web開(kāi)發(fā)的相關(guān)技術(shù),包括數(shù)據(jù)庫(kù)、HTML、JavaScript、CSS和服務(wù)器的配置等;熟悉Visual Studio .Net、Visual Source Safe等開(kāi)發(fā)工具。
該階段完成后小組成員將有能力閱讀.Net系統(tǒng)的代碼,并在已有的基礎(chǔ)上進(jìn)行改善的能力。第二階段:掌握基本的面向?qū)ο笤O(shè)計(jì)。
在這一階段,小組成將繼續(xù)學(xué)習(xí).Net框架的相關(guān)知識(shí),了解包括反射、XML、ORM和Ajax等較為深入的內(nèi)容。同時(shí),應(yīng)該注重對(duì)相關(guān)原理的理解,包括IL語(yǔ)言、Asp.Net運(yùn)行時(shí)和Http協(xié)議等。
在軟件結(jié)構(gòu)體系方面,小組成員開(kāi)始學(xué)習(xí)使用面向?qū)ο蟮姆椒ㄟM(jìn)行思考,使用繼承、引用和多態(tài)等面向?qū)ο蟮乃悸穪?lái)描述系統(tǒng)的設(shè)計(jì),掌握UML等系統(tǒng)設(shè)計(jì)工具。這一階段將加大實(shí)踐的比例,使小組通過(guò)開(kāi)發(fā)實(shí)際項(xiàng)目,掌握相關(guān)的技術(shù)和面向?qū)ο笤O(shè)計(jì)能力。
在這一階段,隨著項(xiàng)目實(shí)踐的展開(kāi),小組成員開(kāi)始接觸軟件工程學(xué)方法,了解不同的開(kāi)發(fā)模式,掌握?qǐng)F(tuán)隊(duì)協(xié)作能力和相關(guān)協(xié)作工具的使用。第三個(gè)階段:掌握初步系統(tǒng)架構(gòu)設(shè)計(jì)。
在這一階段,系統(tǒng)地實(shí)現(xiàn)已經(jīng)不是重點(diǎn),而該是如何設(shè)計(jì)出一個(gè)良好的系統(tǒng)結(jié)構(gòu)。這要求深入的理解面向?qū)ο蟮乃枷耄⑶揖哂幸欢ǖ拈_(kāi)發(fā)經(jīng)驗(yàn)。
在這一階段,小組將學(xué)習(xí)軟件構(gòu)架的相關(guān)知識(shí),包括系統(tǒng)的模塊化、模塊間解耦合、面向?qū)ο蟮脑O(shè)計(jì)原則、設(shè)計(jì)模式、測(cè)試和重構(gòu)等,并且學(xué)習(xí)使用這些知識(shí)對(duì)不同的系統(tǒng)進(jìn)行設(shè)計(jì),掌握各種模式的特點(diǎn)和使用范圍,從而對(duì)于給定的系統(tǒng)要求能夠設(shè)計(jì)出較為完善的架構(gòu)。第四階段:掌握完善系統(tǒng)架構(gòu)設(shè)計(jì)。
這一階段著眼于如何對(duì)系統(tǒng)的需求進(jìn)行深入的理解,以及此基礎(chǔ)上,設(shè)計(jì)出完善的系統(tǒng)架構(gòu)。完善的系統(tǒng)架構(gòu)應(yīng)該重視并準(zhǔn)確的反映系統(tǒng)的業(yè)務(wù)邏輯,并考慮需求變化的應(yīng)對(duì),兼顧系統(tǒng)的靈活性、健壯性、復(fù)雜度、開(kāi)發(fā)效率和運(yùn)行效率等諸多方面。
小組成員在這一階段將學(xué)習(xí)大量現(xiàn)有的優(yōu)秀系統(tǒng)設(shè)計(jì),并結(jié)合實(shí)驗(yàn)室相關(guān)項(xiàng)目,充分理解不同系統(tǒng)所應(yīng)該采用的構(gòu)架模式,并盡量能夠擁有自己獨(dú)到的設(shè)計(jì)見(jiàn)解和設(shè)計(jì)風(fēng)格。附:參考書(shū)目1,第一階段:a) 《C#高級(jí)編程》b) 《Asp.Net高級(jí)編程》c) 《HTML&XHTML權(quán)威指南》d) 《JavaScript權(quán)威指南》e) 《數(shù)據(jù)系統(tǒng)概論》2,第二階段:a) 《.Net Framework高級(jí)編程》b) 《Asp.Net 技術(shù)內(nèi)幕》c) 《C# XML高級(jí)編程》d) 《JavaScript高級(jí)編程》e) 《Ajax基礎(chǔ)教程》f) 《代碼大全2》g) 《面向?qū)ο箝_(kāi)發(fā)實(shí)踐之路——C#版》h) UML書(shū)籍一本3,第三階段:a) 《重構(gòu)——改善既有代碼的設(shè)計(jì)》b) 《敏捷軟件開(kāi)發(fā)——原則、模式及實(shí)踐》c) 《Head First Design Patterns》d) 《設(shè)計(jì)模式——可復(fù)用的面向?qū)ο笤O(shè)計(jì)》4,第四階段:a) 《企業(yè)應(yīng)用構(gòu)架模式》b) 《測(cè)試驅(qū)動(dòng)開(kāi)發(fā)》c) 《程序員修煉之道》。
程序員的考試要求:掌握數(shù)制及其轉(zhuǎn)換、數(shù)據(jù)的機(jī)內(nèi)表示、算術(shù)和邏輯運(yùn)算,以及相關(guān)的應(yīng)用數(shù)學(xué)基礎(chǔ)知識(shí);理解計(jì)算機(jī)的組成以及各主要部件的性能指標(biāo);掌握操作系統(tǒng)、程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)知識(shí);熟練掌握計(jì)算機(jī)常用辦公軟件的基本操作方法;熟練掌握基本數(shù)據(jù)結(jié)構(gòu)和常用算法;熟練掌握C程序設(shè)計(jì)語(yǔ)言,以及C++、Java、Visual
Basic中一種程序設(shè)計(jì)語(yǔ)言;熟悉數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)和多媒體的基礎(chǔ)知識(shí);掌握軟件工程的基礎(chǔ)知識(shí),了解軟件過(guò)程基本知識(shí)、軟件開(kāi)發(fā)項(xiàng)目管理的常識(shí);了解常用信息技術(shù)標(biāo)準(zhǔn)、安全性,以及有關(guān)法律、法規(guī)的基本知識(shí)。
如果你是學(xué)生,或者如果你有充足的時(shí)間。我建議你仔細(xì)的掌握下面的知識(shí)。我的建議是針對(duì)那些希望在IT技術(shù)上有所成就的初學(xué)者。同時(shí)我還列出了一些書(shū)目,這些書(shū)應(yīng)該都還可以在書(shū)店買(mǎi)到。說(shuō)實(shí)在的,我在讀其他人的文章時(shí)最大的心愿就是希望作者列出一個(gè)書(shū)單。
大學(xué)英語(yǔ)——不要覺(jué)得好笑。我極力推薦這門(mén)課程是因?yàn)闆](méi)有專(zhuān)業(yè)文檔的閱讀能力是不可想象的。中文的翻譯往往在猴年馬月才會(huì)出來(lái),而現(xiàn)在的許多出版社干脆就直接把E文印刷上去。學(xué)習(xí)的方法是強(qiáng)迫自己看原版的教材,開(kāi)始會(huì)看不懂,用多了自然熟練。吃得苦下得狠心絕對(duì)是任何行業(yè)都需要的品質(zhì)。
計(jì)算機(jī)體系結(jié)構(gòu)和匯編語(yǔ)言——關(guān)于體系結(jié)構(gòu)的書(shū)遍地都是,而且也大同小異,倒是匯編有一本非常好的書(shū)?!?0x86匯編語(yǔ)言程序設(shè)計(jì)教程》(清華大學(xué)出版社,黑色封面,楊季文著)。你需要著重學(xué)習(xí)386后保護(hù)模式的程序設(shè)計(jì)。否則你在學(xué)習(xí)現(xiàn)代操作系統(tǒng)底層的一些東西的時(shí)候會(huì)覺(jué)得是在看天書(shū)。
計(jì)算機(jī)操作系統(tǒng)原理——我們的開(kāi)發(fā)總是在特定的操作系統(tǒng)上進(jìn)行,如果不是,只有一種可能:你在自己實(shí)現(xiàn)一個(gè)操作系統(tǒng)。無(wú)論如何,操作系統(tǒng)原理是必讀的。這就象我們?yōu)橐粋€(gè)芯片制作外圍設(shè)備時(shí),芯片基本的工作時(shí)序是必需了解的。這一類(lèi)書(shū)也很多,我沒(méi)有發(fā)現(xiàn)哪一本書(shū)非常出眾。只是覺(jué)得在看完了這些書(shū)后如果有空就應(yīng)該看看《Inside Windows 2000》(微軟出版社,我看的是E文版的,中文的書(shū)名想必是Windows 2000 技術(shù)內(nèi)幕之類(lèi)吧)。
數(shù)據(jù)結(jié)構(gòu)和算法——這門(mén)課程能夠決定一個(gè)人程序設(shè)計(jì)水平的高低,是一門(mén)核心課程。我首選的是清華版的(朱戰(zhàn)立,劉天時(shí))。很多人喜歡買(mǎi)C#版的,但我覺(jué)得沒(méi)有必要。C#的語(yǔ)法讓算法實(shí)現(xiàn)過(guò)程變得復(fù)雜多了,而且許多老師喜歡用模塊這一東西讓算法變得更復(fù)雜。倒是在學(xué)完了C版的書(shū)以后再來(lái)瀏覽一下C#的版的書(shū)是最好的。
軟件工程——這門(mén)課程是越到后來(lái)就越發(fā)現(xiàn)它的重要,雖然剛開(kāi)始看時(shí)就象看馬哲一樣不知所云。我的建議是看《實(shí)用軟件工程》(黃色,清華)。不要花太多的時(shí)間去記條條框框,看不懂就跳過(guò)去。在每次自己完成了一個(gè)軟件設(shè)計(jì)任務(wù)(不管是練習(xí)還是工作)以后再來(lái)回顧回顧,每次都會(huì)有收獲。
Windows 程序設(shè)計(jì)——《北京大學(xué)出版社,Petzold著》我建議任何企圖設(shè)計(jì)Windows 程序的人在學(xué)習(xí)VC以前仔細(xì)的學(xué)完它。而且前面的那本《Inside Windows 2000》也最好放到這本書(shū)的后面讀。
在這本書(shū)中,沒(méi)有C++,沒(méi)有GUI,沒(méi)有控件。有的就是如何用原始的C語(yǔ)言來(lái)完成Windows 程序設(shè)計(jì)。在學(xué)完了它以后,你才會(huì)發(fā)現(xiàn)VC其實(shí)是很容易學(xué)的。千萬(wàn)不要在沒(méi)有看完這本書(shū)以前提前學(xué)習(xí)VC,你最好碰都不要碰。我知道的許多名校甚至都已經(jīng)用它作為教材進(jìn)行授課。可見(jiàn)其重要。
上面的幾門(mén)課程我認(rèn)為是必學(xué)的重要課程(如果你想做Windows 程序員)。
對(duì)于其它的課程有這樣簡(jiǎn)單的選擇方法:如果你是計(jì)算機(jī)系的,請(qǐng)學(xué)好你所有的專(zhuān)業(yè)基礎(chǔ)課。如果不是,請(qǐng)參照計(jì)算機(jī)系的課程表。如果你發(fā)現(xiàn)自己看一本書(shū)時(shí)無(wú)法看下去了,請(qǐng)翻到書(shū)的最后,看看它的參考文獻(xiàn),找到它們并學(xué)習(xí)它們,再回頭看這本書(shū)。如果一本書(shū)的書(shū)名中帶有“原理”兩個(gè)字,你一定不要去記憶它其中的細(xì)節(jié),你應(yīng)該以一天至少50頁(yè)的速度掌握其要領(lǐng)。盡可能多的在計(jì)算機(jī)上實(shí)踐一種理論或者算法。
你還可以在CSDN上閱讀到許多書(shū)評(píng)。這些書(shū)評(píng)能夠幫助你決定讀什么樣的書(shū)。
根據(jù)軟考程序員職稱(chēng)的考試內(nèi)容,我們可以得出,程序員需要具備以下的知識(shí)。
但這些只是基礎(chǔ),還要不斷擴(kuò)展。 計(jì)算機(jī)硬件基礎(chǔ)知識(shí)。
計(jì)算機(jī)科學(xué)基礎(chǔ)。1.1數(shù)制及其轉(zhuǎn)換。
二進(jìn)制、十進(jìn)制和十六進(jìn)制等常用數(shù)制及其相互轉(zhuǎn)換。1.2數(shù)據(jù)的表示。
數(shù)的表示(原碼、反碼、補(bǔ)碼表示,整數(shù)和實(shí)數(shù)的機(jī)內(nèi)表示方法,精度和溢出)。校驗(yàn)方法和校驗(yàn)碼(奇偶校驗(yàn)碼、海明校驗(yàn)碼)。
1.3算術(shù)運(yùn)算和邏輯運(yùn)算。計(jì)算機(jī)中二進(jìn)制數(shù)的運(yùn)算方法。
邏輯代數(shù)的基本運(yùn)算和邏輯表達(dá)式的化簡(jiǎn)。1.5常用數(shù)據(jù)結(jié)構(gòu)。
數(shù)組(表態(tài)數(shù)組、動(dòng)態(tài)數(shù)組)、線(xiàn)性表、鏈表(單向鏈表、雙向鏈表、循環(huán)鏈表)、隊(duì)列、棧、樹(shù)(二叉樹(shù)、查找樹(shù))、圖的定義、存儲(chǔ)和操作1.6 常用算法。算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)系,算法效率,算法設(shè)計(jì),算法描述(流程圖、偽代碼、決策表)2. 計(jì)算機(jī)系統(tǒng)基礎(chǔ)知識(shí)。
2.1計(jì)算機(jī)基礎(chǔ)知識(shí)。2.1.1計(jì)算機(jī)系統(tǒng)的組成,硬件系統(tǒng)、系統(tǒng)及層次結(jié)構(gòu)。
2.1.3 中央處理器CPU。運(yùn)算器和控制器的組成,常用的寄存器、指令系統(tǒng)、尋址方式、指令執(zhí)行控處理機(jī)性能。
2.1.4 主存和輔存。存儲(chǔ)器系統(tǒng)。
存儲(chǔ)介質(zhì)(半導(dǎo)體、硬盤(pán)、光盤(pán)、閃存、軟盤(pán)、磁帶等)。主存儲(chǔ)器的組成、性能及基本原理。
Cache的概念、虛擬存儲(chǔ)的概念。輔存設(shè)備的類(lèi)型、特性、性能和容量計(jì)算。
2.1.5 I/O接口、I/O設(shè)備和通信設(shè)備。I/O接口(總線(xiàn)、DMA、通道、SCSI、并行口、RS232C、USB、IEEE1394)。
I/O設(shè)備的類(lèi)型和特性(鍵盤(pán)、鼠標(biāo)、顯示器、打印機(jī)、掃描儀、攝像頭,以及各種輔存設(shè)備)。I/O設(shè)備控制方式(中斷控制、DMA)。
通信設(shè)備的類(lèi)型和特性(Modem、集線(xiàn)器、交換機(jī)、中繼器、路由器、網(wǎng)橋、網(wǎng)關(guān))及其連接方法和連接介質(zhì)(串行連接、并行連接,傳輸介質(zhì)的類(lèi)型和特性)。2.2 基礎(chǔ)知識(shí)。
2.2.1 操作系統(tǒng)基礎(chǔ)知識(shí)。操作系統(tǒng)的類(lèi)型和功能。
操作系統(tǒng)的內(nèi)核(中斷控制)和進(jìn)程概念。處理機(jī)管理、存儲(chǔ)管理、設(shè)備管理、文件管理、作業(yè)管理、漢字處理。
2.2.2 程序設(shè)計(jì)語(yǔ)言和語(yǔ)言處理程序基礎(chǔ)知識(shí)。匯編、編譯、解釋系統(tǒng)的基礎(chǔ)知識(shí)。
過(guò)程(函數(shù))調(diào)用。2.3 網(wǎng)絡(luò)基礎(chǔ)知識(shí)。
網(wǎng)絡(luò)的功能、分類(lèi)、組成和拓?fù)浣Y(jié)構(gòu)。網(wǎng)絡(luò)體系結(jié)構(gòu)與協(xié)議(OSI/RM,TCP/IP)。
2.4 數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)。數(shù)據(jù)模型,ER圖。
數(shù)據(jù)操作(關(guān)系運(yùn)算)。數(shù)據(jù)庫(kù)語(yǔ)言(SQL)。
2.5 多媒體基礎(chǔ)知識(shí)。多媒體基礎(chǔ)概念,常用多媒體設(shè)備性能特征,常用多媒體文件格式類(lèi)型。
3.開(kāi)發(fā)和運(yùn)行維護(hù)基礎(chǔ)知識(shí)。3.2 需求分析、需求定義及基礎(chǔ)知識(shí)。
結(jié)構(gòu)化分析概念(數(shù)據(jù)流圖(DFD)、實(shí)體關(guān)系圖(ER))。面向?qū)ο笤O(shè)計(jì)、結(jié)構(gòu)化設(shè)計(jì)基礎(chǔ)知識(shí)。
模擬設(shè)計(jì)、代碼設(shè)計(jì)、人機(jī)界面設(shè)計(jì)要點(diǎn)。3.3 程序設(shè)計(jì)基礎(chǔ)知識(shí)。
結(jié)構(gòu)設(shè)計(jì)程序設(shè)計(jì),程序流程圖,NS圖,PAD圖。程序設(shè)計(jì)風(fēng)格。
面向?qū)ο笤O(shè)計(jì)基礎(chǔ)知識(shí)、可視化程序設(shè)計(jì)基礎(chǔ)知識(shí)。3.4 程序測(cè)試基礎(chǔ)知識(shí)。
黑盒測(cè)試、白盒測(cè)試、灰盒測(cè)試基礎(chǔ)知識(shí)。4. 安全性基礎(chǔ)知識(shí)。
安全性基本概念。加密與解密基礎(chǔ)知識(shí)。
5. 標(biāo)準(zhǔn)化基礎(chǔ)知識(shí)標(biāo)準(zhǔn)化基本概念6. 信息化基本知識(shí)。有關(guān)的法律、法規(guī)要點(diǎn)。
7. 計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ)??荚嚳颇?:程序設(shè)計(jì)。
1. 內(nèi)部設(shè)計(jì)1.1 理解外部設(shè)計(jì)。1.3 物理數(shù)據(jù)設(shè)計(jì)。
確定數(shù)據(jù)組織方式、存儲(chǔ)介質(zhì),設(shè)計(jì)記錄格式和處理方式。2. 程序設(shè)計(jì)。
2.1 模擬劃分(原則、方法、標(biāo)準(zhǔn))。3. 程序?qū)崿F(xiàn)。
3.1 編程。編程方法和標(biāo)準(zhǔn)。
程序設(shè)計(jì)語(yǔ)言的使用。4.程序設(shè)計(jì)語(yǔ)言(C語(yǔ)言為必選,其他語(yǔ)言可以任選一種)。
4.1 C程序設(shè)計(jì)語(yǔ)言(ANSI C標(biāo)準(zhǔn))。程序結(jié)構(gòu),語(yǔ)法,數(shù)據(jù)類(lèi)型說(shuō)明,可執(zhí)行語(yǔ)句,函數(shù)調(diào)用,標(biāo)準(zhǔn)庫(kù)函數(shù),指針。
4.2 C++程序設(shè)計(jì)語(yǔ)言(ANSI C++標(biāo)準(zhǔn))。C++和面向?qū)ο蟪绦蛟O(shè)計(jì),語(yǔ)法和程序結(jié)構(gòu),類(lèi)、成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)、模板、繼承、多態(tài)。
4.3 Java程序設(shè)計(jì)(Java 2)。語(yǔ)言機(jī)制(程序結(jié)構(gòu)和語(yǔ)法,類(lèi)、成員、構(gòu)造函數(shù)、析構(gòu)函數(shù)、繼承、接口)。
4.4 Visual Basic程序設(shè)計(jì)(Visual Basic 6.0)。用戶(hù)界面設(shè)計(jì)。
數(shù)學(xué)基礎(chǔ)(高中夠了) 英語(yǔ)基礎(chǔ)(初中夠了) 計(jì)算機(jī)常識(shí) 操作系統(tǒng):windows dos Lilx 原理(不是簡(jiǎn)單的復(fù)制粘貼"原理") 計(jì)算機(jī)語(yǔ)言:匯編和C/C 軟件方向 或 java網(wǎng)絡(luò)方向之一 再加上其他語(yǔ)言如Pascal或Visual Basic。
軟件工程`知識(shí)產(chǎn)權(quán)`安全知識(shí)`計(jì)算機(jī)原理`數(shù)據(jù)庫(kù)`多媒體常識(shí)`這都是軟件設(shè)計(jì)師的考綱(上午題)此證由國(guó)家人事部發(fā),比重點(diǎn)本科證值錢(qián)(注意:等級(jí)上比不上,但在現(xiàn)在的現(xiàn)實(shí)社會(huì)足以)。 若是普通程序員,至少在深圳人才市場(chǎng)看來(lái)都是直接T(踢),除非你是高級(jí)程序員。
建議去參考一下北大青鳥(niǎo)集團(tuán)的培訓(xùn),有基礎(chǔ)的一年半即可拿到此證(呵呵~有基礎(chǔ)~但是中國(guó)還是不多)。祝你成功。
程序員(英文Programmer)是從事程序開(kāi)發(fā)、維護(hù)的專(zhuān)業(yè)人員。
一般我們將程序員分為程序設(shè)計(jì)人員和程序編碼員,但兩者的界限并不非常清楚,特別是在中國(guó)。作一個(gè)真正合格的程序員,應(yīng)該具有的素質(zhì)。
1:團(tuán)隊(duì)精神和協(xié)作能力 團(tuán)隊(duì)精神和協(xié)作能力是作為一個(gè)程序員應(yīng)具備的最基本的素質(zhì)。軟件工程已經(jīng)提了將近三十年了,當(dāng)今的軟件開(kāi)發(fā)已經(jīng)不是編程了,而是工程。
獨(dú)行俠可以寫(xiě)一些程序也能賺錢(qián)發(fā)財(cái),但是進(jìn)入研發(fā)團(tuán)隊(duì),從事商業(yè)化和產(chǎn)品化的開(kāi)發(fā)任務(wù),就必須具備這種素質(zhì)??梢院敛豢鋸埖恼f(shuō)這種素質(zhì)是一個(gè)程序員乃至一個(gè)團(tuán)隊(duì)的安身立命之本。
2:文檔習(xí)慣 文檔是一個(gè)軟件系統(tǒng)的生命力。一個(gè)公司的產(chǎn)品再好、技術(shù)含量再高,如果沒(méi)有缺乏文檔,知識(shí)就沒(méi)有繼承,公司還是一個(gè)來(lái)料加工的軟件作坊。
作為代碼程序員,必須將30%的工作時(shí)間寫(xiě)用于技術(shù)文檔。沒(méi)有文檔的程序員勢(shì)必會(huì)被淘汰。
3:規(guī)范化的代碼編寫(xiě)習(xí)慣 知名軟件公司的代碼的變量命名、注釋格式,甚至嵌套中行縮進(jìn)的長(zhǎng)度和函數(shù)間的空行數(shù)字都有明確規(guī)定,良好的編寫(xiě)習(xí)慣,不但有助于代碼的移植和糾錯(cuò),也有助于不同技術(shù)人員之間的協(xié)作。 一些所謂的高手甚至叫囂高手寫(xiě)的代碼一般人看不懂,我只能說(shuō)他不是一名合格的程序員。
4:需求理解能力 程序員要能正確理解任務(wù)單中描述的需求。在這里要明確一點(diǎn),程序員不僅僅要注意到軟件的功能需求,還應(yīng)注意軟件的性能需求,要能正確評(píng)估自己的模塊對(duì)整個(gè)項(xiàng)目中的影響及潛在的威脅,如果有著兩到三年項(xiàng)目經(jīng)驗(yàn)的熟練程序員對(duì)這一點(diǎn)沒(méi)有體會(huì)的話(huà),只能說(shuō)明他或許是認(rèn)真工作過(guò),但是沒(méi)有用心工作。
5:模塊化思維能力 作為一個(gè)優(yōu)秀的程序員,他的思想不能在局限當(dāng)前的工作任務(wù)里面,要想想看自己寫(xiě)的模塊是否可以脫離當(dāng)前系統(tǒng)存在,通過(guò)簡(jiǎn)單的封裝在其他系統(tǒng)中或其他模塊中直接使用。這樣做可以使代碼能重復(fù)利用,減少重復(fù)的勞動(dòng),也能是系統(tǒng)結(jié)構(gòu)越趨合理。
模塊化思維能力的提高是一個(gè)程序員的技術(shù)水平提高的一項(xiàng)重要指標(biāo)。 6:測(cè)試習(xí)慣 測(cè)試是軟件工程質(zhì)量保證的重要環(huán)節(jié),但是測(cè)試不僅僅是測(cè)試工程師的工作,而是每個(gè)程序員的一種基本職責(zé)。
程序員要認(rèn)識(shí)測(cè)試不僅是正常的程序調(diào)試,而要是要進(jìn)行有目的有針對(duì)性的異常調(diào)用測(cè)試,這一點(diǎn)要結(jié)合需求理解能力。 7:學(xué)習(xí)和總結(jié)的能力 程序員是很容易被淘汰的職業(yè),所以要善于學(xué)習(xí)總結(jié)。
許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術(shù)人員無(wú)論學(xué)了多少語(yǔ)言,代碼寫(xiě)起來(lái)多熟練,我們只能說(shuō)他是一名熟練的代碼民工,他永遠(yuǎn)都不會(huì)有質(zhì)的提高。一個(gè)善于學(xué)習(xí)的程序員會(huì)經(jīng)??偨Y(jié)自己的技術(shù)水平,對(duì)自己的技術(shù)層面要有良好的定位,這樣才能有目的地提高自己。
這樣才能逐步提高,從程序員升級(jí)為軟件設(shè)計(jì)師、系統(tǒng)分析員。 作為高級(jí)程序員,除了應(yīng)該具備上述全部素質(zhì)之外,還需要具備以下素質(zhì): 1、需求分析能力 2、整體框架能力 3、流程處理能力 4、模塊分解能力 5、整體項(xiàng)目評(píng)估能力 6、團(tuán)隊(duì)組織管理能力 1,激情。
我曾經(jīng)遇到許多“職業(yè)程序員”,他們從事IT是因?yàn)橛X(jué)得這是一種職業(yè),他們只在工作時(shí)間編程,除非送去培訓(xùn)否則他們不會(huì)學(xué)習(xí)新東西,這不是好的程序員。我認(rèn)為一個(gè)好的程序員總是對(duì)編程充滿(mǎn)激情,而且好的開(kāi)發(fā)者會(huì)做一些編程工作即使這沒(méi)有報(bào)酬。
激情是一個(gè)優(yōu)秀程序員的重要指標(biāo)。2,自學(xué)好學(xué) 編程領(lǐng)域始終發(fā)展變化著,不出一年有些新技術(shù)就變成了老技術(shù),這并不是說(shuō)好的程序員要對(duì)所有新技術(shù)跟進(jìn),但有些卻對(duì)學(xué)習(xí)任何新技術(shù)都沒(méi)有興趣。
他們通常在學(xué)校學(xué)習(xí)了編程,然后工作后單位安排學(xué)什么就學(xué)什么。如果在招聘中你聽(tīng)到“讓我培訓(xùn)一個(gè)星期我就會(huì)勝任這個(gè)工作”那不要雇傭他。
實(shí)際上,真正優(yōu)秀的程序員始終談?wù)撝闼恢赖男录夹g(shù),向人們解釋為什么你必須用這個(gè)技術(shù),哪怕沒(méi)有聽(tīng)眾聽(tīng)得明白,哪怕他自己也不明白。3,聰明 聰明包括很多因素,情緒和社會(huì)交際只是其中之一。
好的程序員絕不木訥,他們是最聰明的人,他們中的許多善于交際,健談、興趣廣泛。4,隱性的經(jīng)驗(yàn) —好的程序員通。
常有自己的私人的一些研究、愛(ài)好、項(xiàng)目,而這些是他們不寫(xiě)在簡(jiǎn)歷上 (通常覺(jué)得不值得寫(xiě)),但表現(xiàn)出來(lái)卻可能恰恰是他的潛能、深度和后勁所在。5,技術(shù)多樣性 由于好的程序員喜歡學(xué)習(xí)和涉獵新技術(shù),所以一般來(lái)說(shuō)超過(guò)22歲的都熟知很多新技術(shù),而且對(duì)多種技術(shù)的長(zhǎng)短有 “強(qiáng)烈”的個(gè)人意見(jiàn)/見(jiàn)解,喜好嘗試新鮮技術(shù)。
6,資格證書(shū) 資格證書(shū)并不是識(shí)別真正程序員的方法,MCSE、SCJP、說(shuō)明不了什么,它們只是讓別人認(rèn)識(shí)和獲取的,頂多代表這個(gè)人在某個(gè)技術(shù)有一定的知識(shí)。原文作者在文末寫(xiě)道:以上所說(shuō)的標(biāo)準(zhǔn)并不是絕對(duì)的,因?yàn)橛行﹥?yōu)秀的程序員確實(shí)不符合上述,而有些bad程序員卻符合了。
但相信這些對(duì)大多數(shù)真正的程序員都適用。總結(jié)而言,優(yōu)秀的程序員通常有一下特點(diǎn):n 對(duì)技術(shù)充滿(mǎn)激情;n 將編程作為一種愛(ài)好 n 如果你允許會(huì)滔滔不絕地跟你談?wù)摷夹g(shù) n 有過(guò)個(gè)人的開(kāi)發(fā)經(jīng)歷(與4意思相同) n 堅(jiān)持認(rèn)為某種技術(shù)最好 n 如果讓他用他認(rèn)為不好的技術(shù)他會(huì)非常別扭 n 聰明、健談、興趣廣泛 n 在大學(xué)。
別人寫(xiě)的一篇關(guān)于初學(xué)電腦的心得文章,可以給你一些參考。
零基礎(chǔ)如何學(xué)習(xí)編程 心得筆記 自學(xué)編程2年來(lái),加過(guò)n多群,泡過(guò)n多論壇,接觸過(guò)心懷激情的編程新人,遇到過(guò)沉著冷靜的技術(shù)大?!幊蹋艘慌忠慌臒嵫嗄?,或許是為了理想,或許是心中的愛(ài)好,不斷有新人的加入,也不斷有人從編程中退出。編程的入場(chǎng)入口只有一個(gè),出場(chǎng)的出口卻很多。
自學(xué)編程的新人,有很大一部分卡在了入門(mén)上,對(duì)此,我想寫(xiě)下對(duì)編程入門(mén)的一些拙見(jiàn),權(quán)當(dāng)拋磚引玉,或?qū)蝈e(cuò),還望同學(xué)們自己鑒定。 1.零基礎(chǔ),打算自學(xué)編程,應(yīng)具備哪些的知識(shí)? 答: 對(duì)于入門(mén)階段,對(duì)知識(shí)水平的要求并不算高,或者說(shuō)很低,大家都應(yīng)該聽(tīng)說(shuō)過(guò)xxx小學(xué)生編程如何如何這般這般怎么樣之類(lèi)的話(huà)題,這里,我們不談長(zhǎng)期發(fā)展,只談如何入門(mén)。
首先,我覺(jué)得你應(yīng)該具備計(jì)算機(jī)的基本操作能力,如果說(shuō)你連新建一個(gè)文件夾或者說(shuō)從網(wǎng)上下載資料都不會(huì),那么你應(yīng)該先買(mǎi)本《windows xx從入門(mén)到提高》看,然后再考慮編程這件事,如果你覺(jué)得對(duì)計(jì)算機(jī)的基本操作已經(jīng)熟練后,請(qǐng)繼續(xù)向下看。 2.學(xué)編程應(yīng)具備哪些條件? 答: 第一:硬件保證,首先你應(yīng)該具備一臺(tái)電腦,不管是筆記本還是臺(tái)式,也不管性能高低,性能對(duì)前期學(xué)習(xí)編程幾乎無(wú)任何影響,就入門(mén)來(lái)看,操作系統(tǒng)還是首選windwos。
第二:有xx語(yǔ)言的入門(mén)本書(shū),紙做的,具體xx語(yǔ)言是哪種語(yǔ)言,后面我們?cè)儆懻撨@個(gè)問(wèn)題。雖說(shuō)現(xiàn)在鋪天蓋地的都是電子書(shū)了(保留這句話(huà)的確定性),到處是掃描版,還高清呢,但我還是推薦看紙做的書(shū),好處有兩點(diǎn),其一是便于攜帶,可以隨時(shí)翻閱;其二是避免眼疲勞,我不信你一直晚盯著顯示器看電子書(shū)眼睛不會(huì)酸;還有一點(diǎn),尊重圖書(shū)作者的版權(quán)。
第三:時(shí)間保證,如果你每天都有一大堆事等著你去處理,先去處理那些事吧,處理完后把剩余時(shí)間劃出一整塊的給編程,進(jìn)行隨時(shí)可能被打斷的學(xué)習(xí),在編程這塊,我不認(rèn)為這是在用功學(xué)習(xí),零碎時(shí)間去背單詞?應(yīng)該是個(gè)不錯(cuò)的選擇。 3.你確定要學(xué)編程? 答: 這個(gè)問(wèn)題看起來(lái)有點(diǎn)多余,但為什么要提出這個(gè)問(wèn)題?要知道,編程不是一朝一夕的事,如果你只是一時(shí)的沖動(dòng),或者僅僅是要完成心目中的某個(gè)小工具,并沒(méi)有長(zhǎng)期寫(xiě)程序的打算,這樣的話(huà),編程不學(xué)也罷,畢竟編程從入門(mén)到能獨(dú)立寫(xiě)軟件會(huì)有很長(zhǎng)的一段路要走,中途一旦放棄就前功盡棄,并且已經(jīng)浪費(fèi)了你大把的寶貴時(shí)間,實(shí)在是得不償失。
不過(guò),你盡管吐槽說(shuō)是這是你的業(yè)余愛(ài)好,有個(gè)愛(ài)好也挺好,那么,繼續(xù)往下看吧。 4.如何才能入門(mén)? 答: 到底怎樣才能入門(mén)?其實(shí),只要你有毅力,慢慢折騰個(gè)一年半載,肯定能入門(mén),但寫(xiě)這篇文章的目的就是為了把這個(gè)周期縮短些,不是嗎?所以,下面我就以個(gè)人的觀點(diǎn)來(lái)談?wù)勗趺床拍芨斓娜腴T(mén),這里先籠統(tǒng)的介紹下,對(duì)于每點(diǎn),后面單獨(dú)介紹。
–1>.去了解計(jì)算機(jī)的基本組成,計(jì)算機(jī)的發(fā)展史和編程的發(fā)展史,看起來(lái)和編程沒(méi)什么關(guān)系,潛在的影響還是十分大的; –2>.選擇一門(mén)簡(jiǎn)單的語(yǔ)言作為入門(mén)語(yǔ)嚴(yán); –3>.學(xué)會(huì)使用搜索引擎; –4>.知道如何看書(shū); –5>.要”像”個(gè)高手; –6.>應(yīng)具備的學(xué)習(xí)態(tài)度; 4.1:了解這些歷史的意義: 了解一些編程的實(shí)質(zhì)遠(yuǎn)比知道如何編程更有意義,不要在編程是怎么回事的情況下就去學(xué)習(xí)編程,這樣對(duì)你的學(xué)習(xí)是十分不利的,作為一個(gè)編程愛(ài)好者,知道計(jì)算機(jī)的工作原理,這應(yīng)該是一件再正常不過(guò)的事,你難道不想去知道嗎? 4.2>.選擇入門(mén)語(yǔ)言: 這個(gè)問(wèn)題在入門(mén)階段一直是爭(zhēng)議十分大的問(wèn)題,n多語(yǔ)言,n多推薦,到最后搞到新手一會(huì)聽(tīng)說(shuō)這種語(yǔ)言適合新手,于是學(xué)習(xí)這種語(yǔ)言,一會(huì)又有人說(shuō)xx語(yǔ)言是垃圾、弱爆了,學(xué)了也沒(méi)用,之類(lèi)的話(huà),開(kāi)始推薦你xxx語(yǔ)言,于是新手們又開(kāi)始學(xué)習(xí)這種語(yǔ)言,搞到最后,什么語(yǔ)言都沒(méi)搞懂,時(shí)間大把大把的流失,熱情消耗殆盡。要解決這個(gè)問(wèn)題,首先要明白一個(gè)根本問(wèn)題,怎樣挑選適合入門(mén)的編程語(yǔ)言?我推薦從難度這個(gè)角度來(lái)考慮,這門(mén)語(yǔ)言必須簡(jiǎn)單易學(xué),有趣,而且要有一定的熱度,有熱度才能有更多的人一起交流討論,翻開(kāi)編程語(yǔ)言列表,發(fā)現(xiàn)有100多種編程語(yǔ)言,而且這個(gè)數(shù)還是在不斷增加的,這里我們一起來(lái)看下2012年5月份的編程語(yǔ)言排行榜,能進(jìn)排行榜前20的,首先在熱度上都已經(jīng)差不多了,現(xiàn)在要做的就是從排行榜里找到一門(mén)簡(jiǎn)單有趣的語(yǔ)言。
2012年5月編程語(yǔ)言排行 對(duì)于上述的語(yǔ)言,這里不可能一個(gè)個(gè)詳細(xì)介紹,篇幅有限,最主要的是,這些語(yǔ)言的介紹只需要你打開(kāi)搜索引擎(百度?谷歌?還是其他?隨便你嘍。),輸入這項(xiàng)語(yǔ)言的名字,搜索一下,就能看到他的詳細(xì)介紹了,如果你說(shuō)你不會(huì)搜索,那么,請(qǐng)返回第一個(gè)問(wèn)題,一般來(lái)說(shuō),如果你去論壇提問(wèn)什么語(yǔ)言適合入門(mén),得到最多的結(jié)果應(yīng)該是C語(yǔ)言,沒(méi)錯(cuò),就是上述排行榜排行第一的那個(gè),強(qiáng)烈推薦C語(yǔ)言入門(mén)的同學(xué)如果看到這篇文章可能會(huì)很想吐槽,因?yàn)檫@里筆者要推薦的不是C語(yǔ)言,筆者認(rèn)為,Python語(yǔ)言對(duì)于零基礎(chǔ)更適合入門(mén),很多人推薦C語(yǔ)言原因我猜測(cè)可能有兩個(gè),一是全國(guó)大部分的高校的編程課C語(yǔ)言是都有開(kāi)設(shè)的,也可以說(shuō)是學(xué)習(xí)過(guò)C語(yǔ)言的用戶(hù)基數(shù)大,第二是C語(yǔ)言自身的強(qiáng)大,。
聲明:本網(wǎng)站尊重并保護(hù)知識(shí)產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請(qǐng)?jiān)谝粋€(gè)月內(nèi)通知我們,我們會(huì)及時(shí)刪除。
蜀ICP備2020033479號(hào)-4 Copyright ? 2016 學(xué)習(xí)鳥(niǎo). 頁(yè)面生成時(shí)間:3.655秒