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