往事隨風(fēng)@遺忘
(一)、 一個(gè)程序員應(yīng)該具備的基礎(chǔ)知識(shí)和概念1、計(jì)算機(jī)是有什么組成的,CPU是什么東西,其工作原理是什么。(對(duì)于這些以及下面將要提到的概念我不會(huì)告訴你什么答案,你可以看相應(yīng)的教材,關(guān)于教材我會(huì)在下一部分詳述,記住理解最重要?。?、機(jī)器語(yǔ)言和微指令集的概念。3、程序的概念。4、匯編語(yǔ)言是低級(jí)語(yǔ)言但不是機(jī)器語(yǔ)言。5、高級(jí)語(yǔ)言主要有那些?(C,C++,Basic,Pascal,F(xiàn)ortran,C#,Java等等;如果你是中國(guó)軟件業(yè)的英雄,你也寫(xiě)一門(mén)語(yǔ)言,最好不用英語(yǔ)) 6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專(zhuān)家編寫(xiě)的)7、HTML、XML等是標(biāo)識(shí)性語(yǔ)言。8、Prolog是人工智能語(yǔ)言。9、操作系統(tǒng)OS的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實(shí)時(shí)OS,嵌入OS,編這些的絕對(duì)是高手)10、Windows編程說(shuō)白了就是Windows API的調(diào)用。(中國(guó)的程序員很多只是會(huì)編windows程序,用的是VB,我的建議是這些程序員頂多只是低級(jí)編碼員,我稱(chēng)其是coder)11、VC++、VB、BC、BCB、Delphi、VF等都只是編程的工具和環(huán)境,不是編程語(yǔ)言。12、面向結(jié)構(gòu)的設(shè)計(jì)概念。13、面向?qū)ο蟮母拍?。(好好理解,兄弟,這個(gè)東西還是很重要的)14、軟件工程的概念和原理。(如果你想當(dāng)老總就需要好好研究了,系統(tǒng)分析員比編碼員要高一個(gè)等級(jí),薪水也高喲)15、數(shù)據(jù)庫(kù)的概念。(要熟悉一些著名的數(shù)據(jù)庫(kù)系統(tǒng)和語(yǔ)言的名字,如Orcle,SQL,DB2,DyBase等)16、了解網(wǎng)絡(luò)概念。17、了解多媒體概念。18、熟悉和掌握數(shù)據(jù)結(jié)構(gòu)和基本算法。19、是不是要求太高了,別著急慢慢來(lái),進(jìn)步在不知不覺(jué)之中。(一旦開(kāi)始學(xué)習(xí),一個(gè)月以后你就會(huì)有一個(gè)基本的概念;兩個(gè)月以后你就會(huì)感覺(jué)自己有了全面的基礎(chǔ)知識(shí);當(dāng)你知道編程序是怎么回事時(shí),說(shuō)明你已經(jīng)入門(mén)了。也有很多人編了很多年程序還沒(méi)有入門(mén)呢,你不會(huì)希望自己步其后塵吧。要有信心和耐心。沉不住氣怎么能成大事??。ǘ?教材推薦――-推薦的教材主要還是針對(duì)概念來(lái)的,最好選用名校的教學(xué)用書(shū)。1、《計(jì)算機(jī)組成原理》(熟悉)2、《數(shù)據(jù)結(jié)構(gòu)》(掌握)3、《操作系統(tǒng)》(了解->熟悉)4、《The C language》(掌握)5、《編譯原理》(了解原理)6、《匯編語(yǔ)言》(了解)7、《計(jì)算機(jī)網(wǎng)絡(luò)》(了解)8、《軟件工程》(了解)9、《關(guān)系數(shù)據(jù)庫(kù)》(熟悉)10、《The C++Languege 》(掌握)11、《面向?qū)ο笤O(shè)計(jì)》(掌握;結(jié)合C++學(xué)習(xí))(三)一些經(jīng)驗(yàn)和體會(huì)1、真正的程序員用C++;(一位專(zhuān)家說(shuō)的)2、動(dòng)手去編程序;3、動(dòng)腦去思考;4、要有良好的編程風(fēng)格;5、讀書(shū),讀好書(shū),盡量讀原版書(shū)?。ㄎ曳磸?fù)強(qiáng)調(diào)這一點(diǎn),讀書(shū)要有選擇,堅(jiān)持讀好書(shū),名家出的經(jīng)典書(shū),不要浪費(fèi)實(shí)踐在一些粗制濫造的書(shū)上面;堅(jiān)持博覽群書(shū))6、有自己的學(xué)習(xí)計(jì)劃;7、總結(jié)自己的經(jīng)驗(yàn)教訓(xùn);(準(zhǔn)備一個(gè)筆記本,記錄錯(cuò)誤和心得)8、不要怕學(xué)新東西;9、要有軟件工程的思想;10、善于發(fā)現(xiàn)問(wèn)題,然后去尋找答案;11、向高手請(qǐng)教;(要虛心直到你成為高手)12、和同行交流;(不善于交流肯定不行)13、懂得軟件的實(shí)質(zhì),不要被千變?nèi)f化的表象所迷惑;14、真正要學(xué)習(xí)用的是編程語(yǔ)言和方法,不是什么庫(kù),什么類(lèi),什么工具;(學(xué)用那些什么庫(kù)都比較簡(jiǎn)單,但光會(huì)這些庫(kù),我覺(jué)得還遠(yuǎn)遠(yuǎn)不夠)15、學(xué)習(xí)wiodows編程主要是學(xué)習(xí)windows OS和win32 API;16、有空了解一下嵌入式開(kāi)發(fā);17、有空了解一下PDA軟件開(kāi)發(fā);18、了解一下.NET框架和C#語(yǔ)言,也許它是你新的衣食父母;19、要有耐心,不要作浮躁的人; 20、對(duì)程序加注釋?zhuān)⒈A裟愕睦铣绦颍?1、學(xué)到的東西越多,了解的越多,你就越接近專(zhuān)家;22、有空去逛逛CSDN,那里有你很多知己;23、要有信心成為一個(gè)優(yōu)秀的程序員;(四)一些好書(shū)的推薦1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988)2、《The C++ Programming Languague》(Bjarne Stroustrup 1997)3、《Inside The C++ Object Model》 (lippmans)4、《Effective C++》 (同上)5、《More Effective C++》 (同上)6、《Exceptional c++》7、《C++面向?qū)ο蟾咝Ь幊獭?、《設(shè)計(jì)模式》9、《Thinking In C++》10、《The Standard C++ Bible》(一般推薦)11、《The Art of Computer Programming 》12、《Programming Windows》 (Charles Petzold)13、《VC++技術(shù)內(nèi)幕》14、《MFC 深入淺出》15、《軟件需求》16、《Advanced Windows》17、《C++ primer》18、《win32程序員參考手冊(cè)》19、《用TCP/IP進(jìn)行網(wǎng)際互連》20、《COM 本質(zhì)論》(五)學(xué)習(xí)計(jì)劃――-這個(gè)學(xué)習(xí)計(jì)劃是我個(gè)人定的,也共享給大家參考一下,共同進(jìn)步吧。 1、《計(jì)算機(jī)組成原理》2、《操作系統(tǒng)》3、《數(shù)據(jù)結(jié)構(gòu)》4、《匯編語(yǔ)言》5、《 C 》6、《 C++ 》7、《VC 技術(shù)內(nèi)幕》8、《Programming Windows》9、《深入淺出MFC》10、《Advanced Windows》11、《Inside The C++ Object Model》12、《Thinking in C++》13、《Effective C++》14、數(shù)據(jù)庫(kù)15、網(wǎng)絡(luò)16、嵌入式OS和編程17、硬件單片機(jī)18、.NET和C#19、軟件工程20、UNIX和Linux
呼啦啦達(dá)人
首先是對(duì)操作系統(tǒng)的認(rèn)知
大家都是知道,不管什么應(yīng)用軟件,都必須依靠一個(gè)操作系統(tǒng),只有在一個(gè)操作系統(tǒng)上,它才能很好的運(yùn)行;我們常用的操作系統(tǒng)最多的當(dāng)數(shù)微軟的windows操作系統(tǒng)了,2013年微軟推出的是win8操作系統(tǒng);由于是剛剛推出,它還不能被用戶(hù)所接受,2013年大多用戶(hù)還在用win7和windowsxp操作系統(tǒng)。
其次是對(duì)開(kāi)發(fā)語(yǔ)言的掌握
軟件開(kāi)發(fā),通俗的說(shuō)就是寫(xiě)程序,就是把一串一串的命令組合起來(lái),讓它來(lái)替我們完成某種特定的任務(wù)。如果你從事的是java軟件開(kāi)發(fā),那么你重點(diǎn)必須精通java語(yǔ)言,你要懂得java的特性,java語(yǔ)言的語(yǔ)法,java語(yǔ)言的算法等等。
第三是對(duì)開(kāi)發(fā)工具的使用
俗話(huà)說(shuō):磨刀不誤砍柴工,要想開(kāi)發(fā)出一個(gè)好的軟件,對(duì)開(kāi)發(fā)工具的熟練應(yīng)用是非常重要的,它可以讓你事半功倍;java軟件開(kāi)發(fā)常用的開(kāi)發(fā)工具有:開(kāi)源的Eclipse和收費(fèi)的MyEclipse,.Net軟件開(kāi)發(fā)工具有:微軟的,Pascal軟件開(kāi)發(fā)工具:Delphi。關(guān)于軟件開(kāi)發(fā)工具的使用,可以參考擴(kuò)展文章《常用的軟件開(kāi)發(fā)工具有哪些使用技巧》。
第四是對(duì)TCP/IP網(wǎng)絡(luò)協(xié)議的了解
有了TCP/IP網(wǎng)絡(luò)協(xié)議,使網(wǎng)絡(luò)得到了飛速的發(fā)展;從早期的C/S結(jié)構(gòu)的運(yùn)行模式到現(xiàn)在主流的B/S結(jié)構(gòu)的完美轉(zhuǎn)變,TCP/IP協(xié)議是功不可沒(méi)的,未來(lái)更是離不開(kāi)TCP/IP協(xié)議;要想成為一名優(yōu)秀的軟件開(kāi)發(fā)工程師,特別是手機(jī)軟件開(kāi)發(fā)工程師,你不僅僅要知道ISO有哪幾層組成,你更要知道,每層的功能和作用。
第五是對(duì)數(shù)據(jù)庫(kù)的熟練應(yīng)用
數(shù)據(jù)庫(kù)對(duì)軟件的影響是不容小視的,因?yàn)槲覀冏龅墓ぷ鞫际切臄?shù)據(jù)為中心,重點(diǎn)部分就是操作數(shù)據(jù),如果沒(méi)有數(shù)據(jù)庫(kù),那么軟件的作用也就會(huì)大大降低;2011年常用的都是關(guān)系型數(shù)據(jù)庫(kù),主流的有:甲骨文公司的Oracle、微軟公司的sqlserver、IBM公司的DB2,還有一些小的數(shù)據(jù)庫(kù),如mysql,Aess等;我們一定要熟練掌握SQL語(yǔ)言,它是操作數(shù)據(jù)庫(kù)的關(guān)鍵。
第六是對(duì)軟件工程的了解
大多軟件開(kāi)發(fā)公司在招聘的時(shí)候,都會(huì)問(wèn)你對(duì)軟件工程的了解,軟件工程是軟件開(kāi)發(fā)的前提;因?yàn)楣静豢赡苷幸粋€(gè)只會(huì)寫(xiě)代碼而不知道為什么要這樣寫(xiě)的員工;作為一個(gè)優(yōu)秀的軟件開(kāi)發(fā)工程師,你不僅僅要會(huì)寫(xiě)代碼,更重要的是要掌握《軟件開(kāi)發(fā)的流程》中每個(gè)階段所要用的技術(shù),如客戶(hù)需求,市場(chǎng)調(diào)查,可行性分析,需求分析,詳細(xì)設(shè)計(jì),最后的軟件測(cè)試等等。
第七是要有勇于探索,勇于創(chuàng)新的精神
一個(gè)優(yōu)秀的程序員,不能總是原地不動(dòng),不去思考,要多去想一想為什么要這樣做,如果不這樣做會(huì)產(chǎn)生什么樣的后果;要努力學(xué)習(xí)新的知識(shí),因?yàn)檐浖袠I(yè)是一個(gè)更新速度非??斓男袠I(yè),如果你的知識(shí)2年都沒(méi)有更新的話(huà),那么,你在這個(gè)軟件開(kāi)發(fā)行業(yè)的前景就不容樂(lè)觀了;每天都要抽出一定的時(shí)間學(xué)習(xí)新知識(shí),只有這樣,才能走的更好,更遠(yuǎn),更穩(wěn)。
優(yōu)質(zhì)工程師考試問(wèn)答知識(shí)庫(kù)