電子工程師編程回憶錄
恐怕編程算得上是一種純粹的創(chuàng )造了,從無(wú)到有,在開(kāi)始編程之前,你有的只是心中一個(gè)遙遠甚至不且實(shí)際的想法,人們會(huì )對你的想法感到驚奇并且給你貼上不可能的標簽,甚至你自己的心中也存在著(zhù)這樣的疑問(wèn),你在疑問(wèn)自己是否能夠拿出心中想象的那個(gè)東西,你在質(zhì)問(wèn)你的能力所能達到的界限。等到那一行行的代碼誕生的時(shí)候,你不禁感到無(wú)比的驚奇,你不禁贊嘆其自己的那種似乎無(wú)線(xiàn)的創(chuàng )造力,他給了你走在路上自豪的理由,你會(huì )去情不自禁的想到,如果當初否定了這種可能,該是一件多么可惜的事情啊!在代碼出來(lái)之前,誰(shuí)都不能確定下一刻在他們的眼前會(huì )產(chǎn)生啥,這就是編程,不是寫(xiě)代碼,不是敲代碼。
本文引用地址:http://dyxdggzs.com/article/201611/319868.htm對編程的回憶,最早的時(shí)候應該開(kāi)始于一種模糊地聽(tīng)說(shuō),一種不太清楚的了解。在無(wú)數的電影中這項事業(yè)只適合于頭腦十分發(fā)達的人群,只適合于那種長(cháng)的帥氣逼人的影視明星(當然,這是開(kāi)玩笑),往往在危機時(shí)刻的挺身而出,在迫近極限的那幾秒,敲上一連串的代碼,然后回車(chē),所有的榮譽(yù)屬于他們,關(guān)于英雄的神話(huà)又一次被活生生的創(chuàng )造,但是實(shí)際上,現實(shí)不是這個(gè)樣子,或者說(shuō),差得遠了,真是世界中當然存在黑客,但是也肯定不是如此的活在如此富有戲劇性的劇本中,他們也像正常人一樣,經(jīng)營(yíng)者滅天的油鹽醬醋,重復著(zhù)每天的冥思苦想。這就是生活的必不可少的一部分,好像扯遠了,讓我們回來(lái)一點(diǎn)。
之所以這么說(shuō),就是一個(gè)意思,在編程的道路上,誰(shuí)都有可能成為自己的英雄,只要你在內心中懷有一種十分的興趣,你會(huì )覺(jué)得這一些指令背后肯定隱藏著(zhù)令你著(zhù)迷的事情,而你也有這種可能去了解和探查他,或許還能做出某些友誼的改變,你也許會(huì )選擇這個(gè)東西的研究或是深入作為一種將來(lái)的職業(yè),因為你或許知道,這個(gè)職業(yè),聯(lián)通他曾經(jīng)創(chuàng )造和造就的一大批的財富神話(huà)(諸如蓋茨)一樣的神奇,正在吸引著(zhù)無(wú)數的聰明的腦袋,你也有只成為其中的一員。
不幸的是,對于我來(lái)說(shuō),上述的一切只是一種遙遠的想象(不過(guò)即便如此,對于正在讀著(zhù)這篇文章的你來(lái)說(shuō),并不是啥不幸的事),吸引我的,只是一種未知的奧妙,以及一點(diǎn)點(diǎn)的興趣,或者不違心的說(shuō),在開(kāi)始時(shí)很大的興趣。
有了在大學(xué)開(kāi)始時(shí)學(xué)習的C的一點(diǎn)基礎,我便可以開(kāi)始一點(diǎn)自己的奇妙的旅程,事實(shí)上,每一個(gè)人都可以,我當時(shí)用的編譯器(通俗點(diǎn)說(shuō),就是可以吧你寫(xiě)的代碼解釋給機器聽(tīng)的中間人,說(shuō)的也許比較玄乎,你也許會(huì )認為這個(gè)東西很神秘,不過(guò)據我了解,這個(gè)充其量也只是一個(gè)軟件學(xué)院大二或是大三的學(xué)生一個(gè)學(xué)期的大作業(yè),所以說(shuō),有些事情,不用去把它想得太復雜,畢竟也是一樣構造的人腦想出來(lái)的東西嘛)是名叫TURBOC的東西,他想對其他的大型的編譯器來(lái)說(shuō)可以說(shuō)是短小精悍的了,但正像有句話(huà)說(shuō)得好,麻雀雖小,但五臟俱全吶。這還真不是胡說(shuō),及時(shí)現在還是有很多的人在使用它,其中存在一種難以割舍的情感,是的,對于這一點(diǎn)我不得不承認,我懷舊,有些東西用的時(shí)間久了,你就比較難以離開(kāi)他,或者說(shuō),及時(shí)他已經(jīng)變得比較落伍,你還是不會(huì )去放棄他,而是尋求使他改進(jìn)的新的方法,不過(guò)這種努力往往會(huì )失敗(在后面我會(huì )提到)。
自己主動(dòng)開(kāi)始探究的東西往往會(huì )給你留下很深刻的印象,這種經(jīng)驗總是可以成立,不用考慮其他的因素,上課的時(shí)候所教授的是一種絕對的標準,你會(huì )去費勁腦子去對付一個(gè)一個(gè)標準的檢驗的問(wèn)題,去努力解決他們,有的時(shí)候你知道及時(shí)解決了也沒(méi)啥有趣的,但是你必須去做,這個(gè)畢竟有一點(diǎn)惱人,但是現在想來(lái),有些東西只有標準化了,特別是開(kāi)始的時(shí)候,日后才會(huì )對你起到至關(guān)重要的作用,會(huì )是你事半功倍。所以說(shuō),基礎是一定要打牢的。
可以說(shuō),從游戲開(kāi)始探究是一個(gè)不錯的主意,而讓你的屏幕上的東西動(dòng)起來(lái),是第一步激動(dòng)人心的(至少在我看是這樣),我的第一個(gè)探究,就是讓一個(gè)靜止閃爍的動(dòng)起來(lái),如果你有那么的一點(diǎn)興趣,只要有現在的網(wǎng)絡(luò )的巨大的幫助,相信不是難事,而你也會(huì )想到之后會(huì )發(fā)生的事情,當一個(gè)點(diǎn)動(dòng)起來(lái)的時(shí)候,你就會(huì )去想更多的點(diǎn)動(dòng)起來(lái)并且形成某種組合的神奇的效果。不錯,接下來(lái)就是這么發(fā)展的,首先你可以做一個(gè)大大的組合式的倒計時(shí),也就是用很多的小點(diǎn)來(lái)組合成一個(gè)數字,然后隨著(zhù)時(shí)間的推移,你可以使這些點(diǎn)按照你所預想的方式動(dòng)起來(lái),然后就是倒計時(shí)的實(shí)現了,這之中設計到一些特定的函數的使用,之前對這個(gè)的認識比較不足,編譯工具在自己的哭腫其實(shí)已經(jīng)包括了一些固化的函數,比如時(shí)間的函數,Delay函數,可以是你的程序等待一會(huì )兒,而在這一段短暫的時(shí)間內,我們可以讓程序作出一些改變,就是改變點(diǎn)的排列,然后等到時(shí)間一到,數字就變化了,內置的固化的函數對編程時(shí)很有用的(這一點(diǎn)在后面你也將看到)。是的,然后就是貪食蛇的游戲,我發(fā)現通過(guò)些許的代碼,我可以創(chuàng )造出一個(gè)小小的游戲,也許他的界面還是黑白兩色的(這一點(diǎn)必將改變,你馬上就能看到),只是一條抽象化概念上的蛇,但是那種激動(dòng)真的是非常的!如果你也是在這樣的惡地步,你可以想見(jiàn)我當時(shí)的興奮!所以說(shuō),編程就是一件這樣神奇的事情,你需要的不多,只是那么一段簡(jiǎn)短的代碼的鼓舞。
順便提一下,像CSDN這樣的網(wǎng)站需要經(jīng)常去看一下,等到有了一定的基礎,這些網(wǎng)站對水平的提高會(huì )有巨大的幫助,不過(guò)對于前不久的泄密事件我不想說(shuō)啥,這只能說(shuō)明,國內的網(wǎng)絡(luò )環(huán)境本身需要一種凈化和提純。
貪食蛇讓我初次接觸了圖形化的編程,盡管在后來(lái)的眼光中,這根本算不上是圖形化,24點(diǎn)是我們熟悉的游戲,我還能清楚地記得當初在那四個(gè)數字面前的那種糾結,當一個(gè)軟件學(xué)院的朋友說(shuō)道正在編寫(xiě)這樣的程序時(shí),我也突然想到,把它交給程序來(lái)做,會(huì )是怎樣的情形呢?毫無(wú)疑問(wèn),最后的成果證明了在計算機面前,這就不能算作是游戲了。
對于24點(diǎn)程序的編寫(xiě)我力求簡(jiǎn)短,而我也做到了這一點(diǎn),至少在一定的程度上做到了,如果有誰(shuí)需要程序,可以聯(lián)系我,qq:970435817.而計算機在計算上的優(yōu)勢,無(wú)疑為計算機在我們身邊存在的各種各樣的應用中大顯身手,我也一直相信,人工智能,將有巨大的發(fā)展。從中我們可以,或者說(shuō),至少看出來(lái),編寫(xiě)程序有時(shí)對我們的智力的發(fā)展是有幫助的,或者說(shuō),如果你認為自己是聰明的,那就用程序代碼來(lái)證明吧。微軟程序員的《編程之美》,從這個(gè)意義上說(shuō)是一本好書(shū),而對他的研讀需要一定的功底和時(shí)間,而這一切對于興趣來(lái)說(shuō)是沒(méi)有問(wèn)題的。說(shuō)到這兒,在網(wǎng)絡(luò )之外,對于書(shū)籍的閱讀,也是提高水平的一個(gè)重要的途徑,學(xué)習就是這樣,那無(wú)窮無(wú)盡的知識會(huì )讓你感到一種失眠的興奮,你會(huì )整個(gè)一個(gè)月都在鉆研這個(gè)東西,而不會(huì )感受到任何的枯燥,如果你有志于科研的道路,這樣的精神是值得保持的。當然,也希望中國會(huì )有越來(lái)越多的人愿意在學(xué)術(shù)的路上真正貢獻和花費。
其中也編了不少的小程序,如果想要編寫(xiě)大型的程序,那么小型的程序的數量必須足夠,而且,當編程到了一定的階段,對于軟件的認識也要有一定的改變,對于軟件的組件上的理論也要有一定的了解,當然,這只是我個(gè)人的看法?;蛟S連參考都不能算上。
之后就應該到了真正稱(chēng)得上圖形化的編程了,由于我使用的編程工具一直沒(méi)有發(fā)生改變,你應該能猜想到下面發(fā)生的故事,TURBO C上圖形化界面編程,用最簡(jiǎn)單的例子來(lái)說(shuō),或許就是在屏幕上畫(huà)上一條并不漂亮的直線(xiàn),或是一個(gè)規則的四方體,而在這之前,必須要經(jīng)過(guò)某些配置和頭文件(如果看不懂,建立你去百度一下)的添加才行。所以后來(lái)在網(wǎng)上看到別人的惡帖子時(shí)確實(shí)也覺(jué)得該換一個(gè)編程的環(huán)境了,所以接著(zhù)就走進(jìn)了VC++的環(huán)境,全新的環(huán)境,但是其實(shí)是換湯不換藥,只要你掌握了編程的思想和語(yǔ)法,其實(shí)編程工具真的不會(huì )產(chǎn)生太大的影響,在VC中圖形化的實(shí)現就簡(jiǎn)單和容易多了,而且我也開(kāi)始了對話(huà)框的編程,即一種控件的編程。
對于控件的編程我要詳細的講一下,因為這段編程的經(jīng)歷中給我的欣喜是比之前更多的,直到現在,在假期空閑的時(shí)候,我依然會(huì )去手癢的編上幾個(gè)實(shí)用的程序,編程的另一個(gè)好處就在這其中體現出來(lái)了,當你需要某種特定程序的時(shí)候,你會(huì )有有這種信心去自己編寫(xiě),當然利用現成的VC工具,這個(gè)會(huì )在之后詳細的講到。
說(shuō)的更為專(zhuān)業(yè)一點(diǎn),就是VC里面的著(zhù)名的MFC編程,而MFC編程采用的編程思想與之前采用的過(guò)程式的編程思想產(chǎn)生了很大的變化,所以在這之前必須對這一切做詳細的了解,興趣就是最好的老師,這句話(huà)真的說(shuō)到了點(diǎn)子上,基于事件的結構,以及C++中面向對象的思想,都是新奇的,我也最終掌握了,然后就能真的開(kāi)始編程了。
初次接觸對話(huà)框編程的時(shí)候,你或許會(huì )得到某種巨大的滿(mǎn)足,因為你編寫(xiě)出的程序竟然有了和微軟差不多的界面,僅僅是一個(gè)小小的對話(huà)框,你會(huì )倍受鼓舞,但是也不能忘記,這個(gè)界面是微軟默認實(shí)現的,我們只是踩在巨人的肩膀上完成的,當有一天能自己獨立完成這一切的時(shí)候,那種感覺(jué)或許還會(huì )有不同,但是現在的時(shí)代要求我們能夠高速的接觸知識,學(xué)習知識,然后快速的運用知識,所以說(shuō)借助巨人的肩膀已經(jīng)變得必不可少了。也不必感到某種失落,先接著(zhù),將來(lái)或許還能還得嘛。
在小小的對話(huà)框中,放上自己定義的控件愛(ài)你,比如一個(gè)小小的按鈕,真的是一件奇妙的事情,VC所見(jiàn)即所得的編程方式,使這一切的誕生伴隨著(zhù)快捷和方便。在這里賣(mài)弄我編寫(xiě)了不少的程序,比如軟件書(shū)簽,詩(shī)詞閱讀器,又比如文件加密,真的有太多的好玩的應用,如果有興趣,可以問(wèn)我要源代碼,而在孫鑫的C++的視頻中,你也可以找到很多可以給你的靈感帶來(lái)幫助的新奇的學(xué)習,從C,到C++,再到匯編,在計算機的世界里,充分的領(lǐng)略了人們的聰明才智,這又是何等幸運的事情啊。
編程到現在,其中斷斷續續,已經(jīng)有一個(gè)一個(gè)半的年頭,之后或許我會(huì )去學(xué)習JAVA,也或許不會(huì ),而是在硬件的道路上去更深入的學(xué)習,畢竟是電子專(zhuān)業(yè),而電子對于編程的貢獻,當然不言而喻,你的軟件畢竟也需要硬件的良好的運轉嘛,而且軟件的速度也根本上取決于硬件的速度。
說(shuō)道最后,2012年的第一個(gè)月就要過(guò)去了,新的一年,新的開(kāi)始。如果你喜愛(ài)編程,如果你覺(jué)得自己對代碼有一種天生的興趣,如果你不干預平凡,如果你希望某種滿(mǎn)足,那就學(xué)學(xué)編程吧,寫(xiě)寫(xiě)代碼吧,或許哪一天,你會(huì )感謝當初的這種選擇。
而我的對于編程的回憶,也在這里,這個(gè)時(shí)間打上一個(gè)小小的印記。
評論