互聯(lián)網(wǎng),移動互聯(lián)網(wǎng),無論你愿意不愿意,反正在短期之內(nèi)IT生活是肯定無法改變的了,所以我想我現(xiàn)在最喜歡的c語言也將可以在未來給我?guī)硪环轁M意的工作。
不錯,在這個IT行業(yè)正不斷增溫的年代里面,我還是選擇的計算機(jī)這個熱門的專業(yè),選擇這個專業(yè)的主要原因一來是我自己喜歡編程,二來就是這個行業(yè)只有你做得好,找份好的工作還是沒有太多問題的。
作為全國計算機(jī)、通信、數(shù)學(xué)等相關(guān)專業(yè)參加二級考試的一門語言,c語言的強(qiáng)大地位一直沒能沒其他的java,go,c#這些編程語言撼動。在學(xué)校的推薦之下,我進(jìn)入一下主要適用VC進(jìn)行軟件開發(fā)的軟件公司里面實習(xí),雖然平時在課堂上認(rèn)真聽講,課后會積極地參與實踐操作,但是如果要我獨立開發(fā)出一個比較完善的系統(tǒng)的話,我感覺自己還是沒有那個能力,所以我也希望可以在實習(xí)中了解一款主要語言是由c語言編寫的軟件到底有那些模塊,這樣學(xué)到了這些編程經(jīng)驗之后,以后畢業(yè)答辯的時候,在其他同學(xué)都只是拿出那些c#,java,vb寫出的軟件的時候可以自豪地將我的c語言軟件拿出來。
起初雖然我并沒有直接參與到開發(fā)的過程中,但是在我與測試人員一起寫測試代碼,測試程序的時候你也可以發(fā)現(xiàn)原來程序可以測試。當(dāng)晚上會到學(xué)校宿舍的時候,將在公司里面學(xué)到的幾種測試思維一一實踐下就會發(fā)現(xiàn)原來自己驕傲得不得了的程序竟然到處都是錯誤。
如果不是后面幾天,在測試組長的重磅推薦之下,我可以參與到軟件的開發(fā)過程的話,我只怕都會拋棄c語言直接去做一名測試人員了。令人不可思議的是,一個午間休息的時候,負(fù)責(zé)帶我的龍哥說給我一些有趣好玩的代碼給我看看,結(jié)果里面竟然還有龍哥以前在騰訊、金山那些大公司里面做事的時候保留的一些代碼,看著那些熟悉的關(guān)鍵詞竟然像他那樣組合起來,我也想要成為那樣牛逼的程序員。而且當(dāng)我知道騰訊的那些表情包什么的可以用c語言寫出來之后,我更加堅定了我要好好學(xué)習(xí)c語言決心。
有一次,龍哥給我分配了一個小時鐘的任務(wù),雖然我沒有做過小時鐘,但是以前有過制作一個日歷的經(jīng)驗,這兩種應(yīng)該還是有不少相同之處的話,因此我就按照以前的思路,花了幾乎一天的時間才將這個功能完善了一下交個龍哥,當(dāng)時因為龍哥他也在趕一個功能,所以沒有及時看我的代碼,等到晚上的時候,他突然用qq離線將修改后的代碼發(fā)我,天吶,整整少了100多行代碼。
因此在后面的實習(xí)生活中,我也從龍哥那里學(xué)到不少好東西,現(xiàn)在我雖然回到了學(xué)校,但是我對于c語言的熱愛卻絲毫沒有降低,一有我實在解決不了的問題我又可以去問龍哥,所以我覺得這次c語言實習(xí)還是挺有意義的。
在科技高度發(fā)展的今天,計算機(jī)在人們之中的作用越來越突出。而c語言作為一種計算機(jī)的語言,我們學(xué)習(xí)它,有助于我們更好的了解計算機(jī),與計算機(jī)進(jìn)行交流,因此,c語言的學(xué)習(xí)對我們尤其重要。
在這個星期里,我們專業(yè)的學(xué)生在專業(yè)老師的帶領(lǐng)下進(jìn)行了c語言程序?qū)嵺`學(xué)習(xí)。在這之前,我們已經(jīng)對c語言這門課程學(xué)習(xí)了一個學(xué)期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由于時間的關(guān)系,我們的這次實踐課程老師并沒有給我們詳細(xì)的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理。簡單界面程序。高級界面程序。程序的添加修改。用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機(jī)實驗是學(xué)習(xí)程序設(shè)計語言必不可少的實踐環(huán)節(jié),特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對于程序設(shè)計語言的學(xué)習(xí)目的,可以概括為學(xué)習(xí)語法規(guī)定、掌握程序設(shè)計方法、提高程序開發(fā)能力,這些都必須通過充分的實際上機(jī)操作才能完成。
學(xué)習(xí)c程序設(shè)計語言除了課堂講授以外,必須保證有不少于課堂講授學(xué)時的上機(jī)時間。因為學(xué)時所限,課程不能安排過多的統(tǒng)一上機(jī)實驗,所以希望學(xué)生有效地利用課程上機(jī)實驗的機(jī)會,盡快掌握用c語言開發(fā)程序的能力,為今后的繼續(xù)學(xué)習(xí)打下一個良好的基礎(chǔ)。為此,我們結(jié)合課堂講授的內(nèi)容和進(jìn)度,安排了12次上機(jī)實驗。課程上機(jī)實驗的目的,不僅僅是驗證教材和講課的內(nèi)容、檢查自己所編的程序是否正確,課程安排的上機(jī)實驗的目的可以概括為如下幾個方面:
1、加深對課堂講授內(nèi)容的理解
課堂上要講授許多關(guān)于c語言的語法規(guī)則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。通過多次上機(jī)練習(xí),對于語法知識有了感性的認(rèn)識,加深對它的理解,在理解的基礎(chǔ)上就會自然而然地掌握c語言的語法規(guī)定。對于一些內(nèi)容自己認(rèn)為在課堂上聽懂了,但上機(jī)實踐中會發(fā)現(xiàn)原來理解的偏差,
這是由于大部分學(xué)生是初次接觸程序設(shè)計,缺乏程序設(shè)計的實踐所致。
學(xué)習(xí)c語言不能停留在學(xué)習(xí)它的語法規(guī)則,而是利用學(xué)到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機(jī)幫助我們解題。只有通過上機(jī)才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。
通過上機(jī)實驗來驗證自己編制的程序是否正確,恐怕是大多數(shù)同學(xué)在完成老師作業(yè)時的心態(tài)。但是在程序設(shè)計領(lǐng)域里這是一定要克服的傳統(tǒng)的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程序中的錯誤,而不是盡可能多地發(fā)現(xiàn)程序中存在的問題。自己編好程序上機(jī)調(diào)試運行時,可能有很多你想不到的情況發(fā)生,通過解決這些問題,可以逐步提高自己對c語言的理解和程序開發(fā)能力。
2、熟悉程序開發(fā)環(huán)境、學(xué)習(xí)計算機(jī)系統(tǒng)的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環(huán)境下才能進(jìn)行。所謂"環(huán)境"就是所用的計算機(jī)系統(tǒng)硬件、軟件條件,只有學(xué)會使用這些環(huán)境,才能進(jìn)行程序開發(fā)工作。通過上機(jī)實驗,熟練地掌握c語言開發(fā)環(huán)境,為以后真正編寫計算機(jī)程序解決實際問題打下基礎(chǔ)。同時,在今后遇到其它開發(fā)環(huán)境時就會觸類旁通,很快掌握新系統(tǒng)的使用。
3、學(xué)習(xí)上機(jī)調(diào)試程序
完成程序的編寫,決不意味著萬事大吉。你認(rèn)為萬無一失的'程序,實際上機(jī)運行時可能不斷出現(xiàn)麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結(jié)果顯然是錯誤的。開發(fā)環(huán)境所提供的編譯系統(tǒng)無法發(fā)現(xiàn)這種程序邏輯錯誤,只能靠自己的上機(jī)經(jīng)驗分析判斷錯誤所在。程序的調(diào)試是一個技巧性很強(qiáng)的工作,對于初學(xué)者來說,盡快掌握程序調(diào)試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調(diào)試高手一眼就看出錯誤所在。
通過這次為數(shù)不多的幾天計算機(jī)實踐學(xué)習(xí),我們了解了一些關(guān)于c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難。
兩周的上機(jī)實習(xí)結(jié)束了,在這段時間內(nèi),我的C語言知識得到了溫習(xí),編程能力得到了很大的提高,我覺得這次實習(xí)很重要,而且是恰逢其時,當(dāng)然通過自己編程的過程,也有了一些心得:
編程要的是正確的結(jié)果,體會的是艱辛的過程,收獲的是好心情。
首先編程的時候你不能覺得這是一個繁瑣的過程,在遇到出錯的時候要有信心解決,不要害怕出錯,不能忽略細(xì)節(jié),尤其是對標(biāo)點以及輸入輸出函數(shù),要正確使用。其次,編程要有一個扎實的知識儲備,沒把課本看好,沒把例題看好,不會編出正確的程序,同時,如果不多看程序,不斷吸收別人的編程思想,就不會編出精彩的程序;當(dāng)然也不能忽略與別人討論與請教,在這過程中,我們可以相互交流編程想法,找到解決問題的最佳路徑,這種團(tuán)結(jié)協(xié)作的精神也是必須要有的。
兩周很短,編程的過程卻很漫長,思考,編程,改錯,運行,這就是編程的感覺。感謝幫助我,還有一起討論問題的同學(xué),感覺老師細(xì)心的指導(dǎo),在遇到小問題的時候,他也是很耐心的解答,感謝這次上機(jī)機(jī)會,讓我重新溫習(xí)了C語言,也讓我對明年的等級考試更有信心。在初學(xué)C語言的一個學(xué)期后,我們進(jìn)行了C語言實訓(xùn)階段,嘗試編寫一個比較復(fù)雜的程序系統(tǒng)。在這次實訓(xùn)中,我對對C語言有了一個更深的了解認(rèn)識,也對這個學(xué)期學(xué)的知識得到鞏固,還嘗試運行編程,每次運行程序成功,讓我對下面的項目就充滿信心。通過自己與同學(xué)合作編寫程序,最終把最初的理論知識轉(zhuǎn)化基本技能。這次的實訓(xùn),使我對C語言的學(xué)習(xí)產(chǎn)生濃厚的興趣。
通過這次實訓(xùn),也使我們發(fā)現(xiàn)了許多問題。
在實訓(xùn)中,我們認(rèn)識到自己還有很多的知識沒學(xué)好,基礎(chǔ)知識沒理清,而且許多東西還要去翻書,去上網(wǎng)搜索。而且遇到一些小錯誤運行不出來,就會煩躁不安,覺得有些自暴自棄或者抱怨項目的變態(tài),以后要克服,盡量保持一顆良好的心態(tài),學(xué)好C語言,也學(xué)好用C語言編寫一個按要求的系統(tǒng)。
一年來,我們已經(jīng)學(xué)習(xí)了VB語言和C語言,在應(yīng)用這些語言的過程中,我們的邏輯思維得到了加強(qiáng),更重要的是我們把在數(shù)學(xué)上學(xué)習(xí)到的算法應(yīng)用到計算機(jī)程序中,通過分析問題,調(diào)查研究,最終解決問題。盡管每次解決問題的過程不會都很順利,尤其是在出錯的時候總是很難解決那些很細(xì)微的錯誤,比如一個符號打錯,或者漏掉一個標(biāo)點,檢查起來都會很麻煩,但是,每次成功的運行,得到的不僅僅是一個正確的結(jié)果,更多的是體會到了過程,有了一種成就感,特別是C語言,最能給我這種感覺。
還有就是對于未來,近程就是下學(xué)期,我覺得我還有許多方面需要提高。
首先我要繼續(xù)學(xué)習(xí)好C語言的基礎(chǔ)知識,然后能在電腦上熟練的運用。然后每天都能寫一些程序,上網(wǎng)時候多看一些優(yōu)秀的教程和優(yōu)秀的代碼。遇到問題時多和同學(xué)討論,并且多弄出幾套方案,多鍛煉自己結(jié)局問題的能力和與同學(xué)合作的能力。
總之,這一切都成為我記憶里面的一個篇章,更是在C語言編程上的一個里程碑。
在初學(xué)C語言的一個學(xué)期后,我們進(jìn)行了C語言實訓(xùn)階段,嘗試自己編寫一個比較復(fù)雜的程序系統(tǒng)。在為期兩周的時間中,我們同組的同學(xué)共同的感受是:C語言實訓(xùn)和平時上課所接觸的程序是有很大不同的,所經(jīng)受的考驗和克服的困難是平時所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實訓(xùn)的復(fù)雜程序。在這里,我作為其中的參與者,自然感觸良多。
剛開始接觸到C的時候,我已經(jīng)學(xué)過一些有關(guān)VB的內(nèi)容,這個在算法和思維上稍微有點幫助?;叵氡緦W(xué)期的學(xué)習(xí),首先,最基本的,是C的數(shù)據(jù)格式,讓我們知道整數(shù),浮點數(shù)以及字符常量在C中的運用。然后,在學(xué)會了數(shù)據(jù)轉(zhuǎn)化,以及熟練的可以對各種數(shù)據(jù)處理之后,我開始進(jìn)行有關(guān)數(shù)據(jù)結(jié)構(gòu),像數(shù)組,結(jié)構(gòu)體等的學(xué)習(xí),因為有的東西從現(xiàn)有的知識來看都是非常簡單的,還沒有聯(lián)系到指針等等一些復(fù)雜的概念??墒牵瑑H僅學(xué)會這些是遠(yuǎn)遠(yuǎn)不夠的,C語言中,還有很多更加經(jīng)典、重要、實用的知識。
說說函數(shù)。雖說很多程序語言都有函數(shù)這一內(nèi)容,但我覺得C語言的函數(shù)是最有魅力的了。學(xué)習(xí)函數(shù)的方法是比較簡單的,只有兩個字“牢記”,即:牢記函數(shù)的功能,牢記函數(shù)的用途以及如何輸入輸出。函數(shù)從本質(zhì)上講是一段通用程序,用它可以幫助我們節(jié)約很多編程的時間,學(xué)習(xí)C語言的“高人”都說,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數(shù)來代替的。比如,大家可以作一個比較字符串的實驗,用C語言中的strcmp()函數(shù)只要一句話,而自己編寫的話,30句都很難實現(xiàn),可想而知函數(shù)的實用和快捷。在我們C語言實訓(xùn)的代碼中,函數(shù)更是得到了充分的應(yīng)用,可以說,實訓(xùn)題目的復(fù)雜代碼,就是用無數(shù)個函數(shù)的調(diào)用和嵌套積累出來的。
要注意的是,有的同學(xué)剛剛開始的時候,都是被一些大的程序激勵的,所以當(dāng)開始的時候看到繁瑣的數(shù)據(jù)轉(zhuǎn)化和簡單的算法,都覺得很無聊,都想自己做幾個自己滿意的程序來看看,雖然這種想法很好,但是,我們說,沒有基礎(chǔ),純粹是搬照一些現(xiàn)成設(shè)計方法,是不足取的。要知道,程序設(shè)計講究的是個人的思維的,假如剛開始就被一些現(xiàn)成的思想束縛住,以后就會覺得很無趣。
我們知道,指針其實是C語言的靈魂,許多的數(shù)據(jù)結(jié)構(gòu)在我們學(xué)到這里之前都可以說是精通了。所以我們的任務(wù)就是,讓數(shù)據(jù)結(jié)構(gòu)在指針中運行。當(dāng)然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及多維數(shù)組在結(jié)構(gòu)體中的運用,都一點一點的加了進(jìn)來,同時豐滿了我們對原來C的數(shù)據(jù)機(jī)構(gòu),數(shù)據(jù)表示的理解。當(dāng)我們完成了這三步的學(xué)習(xí),我們已經(jīng)可以自豪的說,我們的基礎(chǔ)都扎實了,可以進(jìn)一步的學(xué)習(xí)有關(guān)算法,設(shè)計概念等等深層次的東西了。
但是,指針,結(jié)構(gòu)體,這些太抽象的東西,在學(xué)習(xí)C語言的時候我們就有點“似懂非懂”,可是在眼下的C語言實訓(xùn)中,像這么重要的C語言知識,一定要達(dá)到能熟練掌握,實際運用的程度。在實訓(xùn)的大程序中,結(jié)構(gòu)體在指針中的表現(xiàn)方法,數(shù)組及在結(jié)構(gòu)體中的運用等具體的技術(shù)環(huán)節(jié),都得到了體現(xiàn),不會指針,我們的工作是沒法展開的。所以,在實訓(xùn)期間,大家在鞏固基本知識的基礎(chǔ)上,逐塊攻克實訓(xùn)課題,克服了困難,自信心得到了提高。
最后,談?wù)勎覀兘M的程序軟件。商店商品管理系統(tǒng),是一個比較利于應(yīng)用,解決實際問題,方便實際管理的程序。設(shè)計代碼比較復(fù)雜,結(jié)構(gòu)比較嚴(yán)謹(jǐn)。在程序編寫的1周左右的時間里,組員們遇到了上述的困難,包括程序設(shè)計構(gòu)思,甚至是指針等某些知識點的欠缺,導(dǎo)致的工作中出現(xiàn)的困難。但是,當(dāng)大家一起團(tuán)結(jié)協(xié)作,解決了這些困難之后,發(fā)現(xiàn)自己也可以編寫復(fù)雜的、應(yīng)用性的程序了,更發(fā)現(xiàn)自己對C語言這門學(xué)科的興趣也提高了。
當(dāng)然,我們編寫的商店商品管理系統(tǒng),還存在很多疏漏和不合理之處。比如,程序復(fù)雜冗長,如果時間充裕,我們將在不改變程序運行結(jié)果的基礎(chǔ)上,簡化程序,使每一句更加精辟,總體上更加簡化。另外,在程序的外觀上,我們由于時間問題,沒有做更多的修飾,運行起來顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會更加完美。