當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]編程之道

    前些日子在CSDN看到一篇文章,雖然是寫筆者的人生經(jīng)歷,但里面提及的技術(shù)讓我目瞪口呆(呆了半天說不出話來),(高中生的寫尼姆達(dá)病毒源代碼析,清華研究生寫了Linux服務(wù)器集群系統(tǒng),Lion 是四年制中專生.....),嗨,想想這些,再看看自己,都20來歲了,
想想在這方面不可能有多大建樹了,真是有些傷感。靜下心來,參考了一些資料,總結(jié)了一些專家點(diǎn)評(píng)再加上一點(diǎn)個(gè)人的感悟,寫了這篇文章希望能對(duì)后來者有些幫助使后來者少走些彎路:

    曾幾何時(shí),為了一段程序的通過,翻閱了不知多少本冊(cè)子,設(shè)置了不知多少個(gè)斷點(diǎn),耗費(fèi)了不知多少個(gè)時(shí)辰,流了不知多少的汗水,哦,忘記了吃飯,忘記了睡覺。累乎?

    曾幾何時(shí),當(dāng)調(diào)試窗口出現(xiàn) 0 Error 0 Warning ,程序按照意圖通過,一切的一切,全然不在話下,征服的快感頓生,哦,忘記了吃飯,忘記了睡覺。樂乎?
要學(xué)習(xí)編程是要有很大恒心和毅力的,首先你要明確自己的目標(biāo),想好自己編程是為了干什么。如果你學(xué)習(xí)僅僅只是一時(shí)想編出QUAKE和成為比爾蓋次的沖動(dòng),那么我勸你還是應(yīng)該不要開始學(xué)習(xí),因?yàn)檫@樣的目標(biāo)很難支持你日后大量的學(xué)習(xí)。而且你的年齡不能太大(最好是中學(xué)或者大學(xué)生)。

    1 無論學(xué)習(xí)編程還是計(jì)算機(jī)的其它方面,首先是培養(yǎng)興趣,這點(diǎn)非常重要,如果有興趣,編程會(huì)使你有強(qiáng)烈的興奮感,你自然就有了強(qiáng)烈的求知欲。不然它就會(huì)是一份枯燥的工作,你也不可能深入學(xué)習(xí)下去。一開始可以看一些計(jì)算機(jī)軟硬件雜志比如說<<電腦報(bào)>>,對(duì)于里面提及的計(jì)算機(jī)操作技巧盡量動(dòng)手試試,這樣會(huì)使你有些成就感,這很好,要的就是這個(gè)。其實(shí)學(xué)習(xí)一些"Crack技術(shù)"也是培養(yǎng)興趣的一條捷徑,上網(wǎng)看看,或去書店找找《黑客,就這么幾招》之類的東東看看(想想這些"漫畫書":->的作用這就于限此吧),當(dāng)你發(fā)現(xiàn)開始對(duì)計(jì)算機(jī)產(chǎn)生興趣后,那么就開始學(xué)習(xí)專業(yè)知識(shí)吧,上面提及的東東可以不用再看了,你可能覺得從中學(xué)了不少知識(shí),但要清楚的是這些都是一些三流的非專業(yè)知識(shí)。你還有很長(zhǎng)的路要走,得趕快上路,不要在上面浪費(fèi)時(shí)間了!

    2  一開始你可以學(xué)習(xí)BASIC語(yǔ)言,這個(gè)語(yǔ)言并不會(huì)耽誤你太多的時(shí)間,學(xué)習(xí)它完全是為了入門,讓你對(duì)電腦編程有一個(gè)比較初步的認(rèn)識(shí)。,知道一些最基本每條語(yǔ)句的功能,搞清楚一些基本的數(shù)據(jù)結(jié)構(gòu)(尤其是數(shù)組)對(duì)于一些其余用途的函數(shù)最好不要做任何學(xué)習(xí),因?yàn)檫@樣只會(huì)分散你的注意力,并天馬行空地多寫些小程序自?shī)首詷罚?dāng)你能夠可以熟練的運(yùn)用BASIC編出猴子選大王,以及電腦出題考試之類的程序時(shí),你就可以開始后面的學(xué)習(xí)了。(之所以選擇BASIC也是為了培養(yǎng)興趣,選擇C就顯得有點(diǎn)不適合了,就教材而言BASIC教材上的的屏控制比C教材上來得豐富得多,而一般的C教材上基本上沒有這方面的介紹,這對(duì)于自己想些小程序來做很有利)。

    3 接下來是可以看C了,學(xué)C主要是學(xué)過程化的程序設(shè)計(jì),學(xué)會(huì)把自己的程序分成許多的函數(shù)(或過程),養(yǎng)成良好的編程習(xí)慣。這時(shí)可以多看一下高人的程序,不一定要懂意思,主要是學(xué)會(huì)別人程序的格式(比如變量如何起名,怎么劃分函數(shù))。除開掌握基本的控制流語(yǔ)句外,應(yīng)該學(xué)習(xí)一些很簡(jiǎn)單的I/O函數(shù)和數(shù)學(xué)函數(shù)。C的學(xué)習(xí)主要是你舍棄原來BASIC程序那種把所有語(yǔ)句積成一大堆的風(fēng)格,要學(xué)會(huì)使用函數(shù),提高代碼重用性。對(duì)于指針之類的東西如果實(shí)在看不懂可以先不去管,到后面會(huì)有辦法。當(dāng)你能夠比較自如的用C編寫一些小的計(jì)算程序時(shí),你就可以開始你的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)了(數(shù)學(xué)的學(xué)習(xí)主要是在學(xué)校,自己要多用心)。數(shù)據(jù)結(jié)構(gòu)你可以一點(diǎn)一點(diǎn)慢慢看,并不需要專門空出一段時(shí)間來專門研究,這樣的目的是讓你能夠很好的掌握它,要學(xué)會(huì)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)來規(guī)范自己的程序設(shè)計(jì)和提高程序的效率。對(duì)數(shù)據(jù)結(jié)構(gòu)引起足夠的重視。如果說計(jì)算機(jī)專業(yè)的學(xué)生與非計(jì)算機(jī)專業(yè)的最根本的差別絕對(duì)是數(shù)據(jù)結(jié)構(gòu)(數(shù)學(xué)大家都一樣學(xué)了,主要看你自己學(xué)得好壞)。對(duì)數(shù)據(jù)結(jié)構(gòu)的掌握與運(yùn)用能力是衡量你編程能力的一個(gè)很重要的指標(biāo)。有的人對(duì)于看了鏈表,棧,樹,廣義表這些東西就頭痛。然而這些東西往往能使你的程序的效率比別人高出百倍

    4 學(xué)完C我認(rèn)為接著最好學(xué)習(xí)匯編。從最基本的DOS匯編開始,買本《IBM PC匯編程序設(shè)計(jì)》(清華黃皮)一定要一點(diǎn)一點(diǎn)吃透,實(shí)在看不懂就跳,反復(fù)的嚴(yán)讀是一定可以看懂的。匯編是一定要掌握的,因?yàn)樗婕暗胶芏嘧罨镜闹R(shí)。掌握了匯編和對(duì)I/O有了個(gè)很徹底的認(rèn)識(shí)后,應(yīng)該去學(xué)編譯原理。這個(gè)東西并不要精通,但是一定要知道,在大腦里要有一個(gè)這樣的概念,這對(duì)你對(duì)程序語(yǔ)言的控制能力都有很大的幫助。這樣最基本的學(xué)習(xí)就算完成了。一般智力正常的人前一段東西應(yīng)該都是可以掌握的。接著后面的學(xué)習(xí)就要看你自身的造化了。這個(gè)時(shí)候你應(yīng)該研究一下數(shù)據(jù)結(jié)構(gòu),不要分散自己學(xué)習(xí)的注意力,要知道數(shù)據(jù)結(jié)構(gòu)是異常重要的如果你覺得自己已經(jīng)對(duì)于樹,連表,堆棧之類的東西和排序,遞歸之類的算法已經(jīng)十分清楚,就可以開始學(xué)習(xí)Window程序設(shè)計(jì)了(Microsoft畢竟是老大)。

    5 對(duì)于SDK的學(xué)習(xí)非常重要,寫Windows程序的人對(duì)API不了解是不可想象的,它就相當(dāng)于計(jì)算機(jī)專業(yè)的學(xué)生得學(xué)操作系統(tǒng)和組成原理這兩門基礎(chǔ)課一樣(當(dāng)然SDK可比這兩門課來得有趣和重要得多)搞清windows基本消息機(jī)制和系統(tǒng)原理,為以后的編程打下基礎(chǔ),以后學(xué)RAD也就快得多得多,對(duì)于API沒有必要去硬記,只要理解了有個(gè)印象就行。千萬不要一開始就學(xué)VB,DELPHI,BCB之類的東西(這是一個(gè)很多人都容易犯的錯(cuò)誤,而且很多人犯了這樣的錯(cuò)誤,自己都沒覺得,如果你有作職業(yè)選手的心,一開始學(xué)這些東西是絕對(duì)的錯(cuò),我也犯過這樣的錯(cuò),好痛),這些東西 在一開始學(xué)會(huì)對(duì)你造成很壞的影響。有可能會(huì)把 你引入另外一個(gè)錯(cuò)誤的學(xué)習(xí)方向而忽略了真正應(yīng)該掌握的東西。

    6 對(duì)Windows程序設(shè)計(jì)有一定掌握后,就開始學(xué)習(xí)C++了,學(xué)習(xí)前一定要有個(gè)正確的認(rèn)識(shí),那就是C和C++是兩個(gè)不同的東西(很多垃圾書會(huì)使你覺得C++只是帶類的C)。學(xué)習(xí)C++是為了學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì),這個(gè)時(shí)候你對(duì)于指針應(yīng)該也能夠掌握了(有匯編的基礎(chǔ)),主要抓住C++和C相比的一些新特性,對(duì)于多態(tài)之類的特性要注意理解掌握,如果沒有搞懂就堅(jiān)決不要往下學(xué)習(xí)。一些基本的概念掌握以后可以看一些別人設(shè)計(jì)的程序,學(xué)習(xí)別人怎么利用面向?qū)ο蟮姆椒▉碓O(shè)計(jì)程序的。這個(gè)東西也是人之間拉開檔次的一個(gè)環(huán)節(jié),可以和數(shù)據(jù)結(jié)構(gòu)在同等重要的地位。

    7 對(duì)于C++有了一定掌握后,你就可以學(xué)習(xí)VC 或 BCB,DELPHI了(建議是VC) 之類的開發(fā)工具了,當(dāng)然學(xué)之前先學(xué)它們的語(yǔ)言和類庫(kù),比如MFC或VCL。如果你在第四階段就上VB DELPHI 或BCB并發(fā)現(xiàn)有問題而倒回來重新學(xué)習(xí),到了這里你就會(huì)深切地感受到你寫程序時(shí)游韌有余,運(yùn)用自如得多了。

    8 以后的OLE(ActiveX),.NET,數(shù)據(jù)庫(kù)就要看自己的發(fā)展方向而定了,在以后的學(xué)習(xí)上同樣要注意的是原理的學(xué)習(xí),就好象學(xué)習(xí)數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)編程一樣,千萬別一開始就用BCB或DELPHI這樣的RAD。

   最后引以候老師的一就話:省下一個(gè)浪漫的夜晚吧,人生還很長(zhǎng),你可能因此獲得無數(shù)個(gè)愉快的工作天。

    以上只是本人一些愚見(也未提及相關(guān)學(xué)習(xí)書籍),希望大家指出不正確的地方并與我多多交流: 

QQ:46898363  
 
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉