軟件工程(C編碼實(shí)踐篇)學(xué)習(xí)總結(jié)

蔡永強(qiáng)+原創(chuàng)作品轉(zhuǎn)載請(qǐng)注明出處+《軟件工程(C編碼實(shí)踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006

一、學(xué)習(xí)心得

? ? ? ? 為期10周的軟件工程課程落下了帷幕,回顧這段時(shí)間的學(xué)習(xí)經(jīng)歷,感慨頗多,奈何礙于工科生的表達(dá)能力限制,實(shí)不足以將所有感受全部轉(zhuǎn)為文字,因此有不足之處還請(qǐng)諸位看官多多擔(dān)待。

? ? ? ? 我是一個(gè)跨專業(yè)的學(xué)生,因此對(duì)于軟件工程本身是陌生的,對(duì)它的認(rèn)知還停留在單純寫代碼的階段。但是經(jīng)過孟老師這種線上線下結(jié)合的教學(xué)之后,我對(duì)于軟件工程的認(rèn)知提高了一個(gè)層次(至少我自己是這么認(rèn)為的)。

? ? ? ? 軟件工程是什么?但凡所以以工程命名的課程,最后的目的都是回歸工程本身。當(dāng)我們編寫一個(gè)軟件時(shí),它不同于以往我們編寫一個(gè)c程序,可能代碼就寥寥數(shù)百行,大多數(shù)軟件的代碼量都在數(shù)萬、十萬甚至百萬以上。這樣的代碼量顯然不是一個(gè)人能完成的,因此,需要一種工程化的思想來指導(dǎo)人們編寫軟件,指導(dǎo)各部分以及各成員之間相互的合作。軟件工程就是這樣一門研究用工程化方法構(gòu)建和維護(hù)有效的、實(shí)用的和高質(zhì)量的軟件的學(xué)科。

? ? ? ? 回歸到課程上來,線上主要是從基礎(chǔ)的代碼和概念寫起,層層推進(jìn),最后完成了一個(gè)稍顯稚嫩但卻運(yùn)用到了很多軟件工程思想的menu小程序。線下主要是講解軟件工程的核心思想和框架,并結(jié)合線下的實(shí)驗(yàn)來理解并運(yùn)用這種思想。好的軟件講究代碼的規(guī)范、設(shè)計(jì)的規(guī)范、模塊化的思想以及線程之間的安全和子系統(tǒng)接口的重用性等多個(gè)方面的內(nèi)容。這絕不是一朝一夕就能吃透這些思想并運(yùn)用到工作中去的,需要我們不斷的積累,當(dāng)代碼量達(dá)到一定層次時(shí),再回過頭來看我們學(xué)過的這些內(nèi)容,收獲一定會(huì)更多。因此我覺得這門課是一個(gè)很好的引導(dǎo)課程,引導(dǎo)我們打開軟件工程的大門,用工程化的思想去編寫軟件,當(dāng)我們工作時(shí)也能更好的上手公司的項(xiàng)目。

二、實(shí)驗(yàn)報(bào)告匯總

? ? ? ? 第六周的課為在線測(cè)試,因此沒有實(shí)驗(yàn)報(bào)告。

????????實(shí)驗(yàn)一:寫一個(gè)hello world小程序

????????https://www.shiyanlou.com/courses/reports/1290169

????????實(shí)驗(yàn)二:實(shí)驗(yàn)二:命令行菜單小程序V1.0

????????https://www.shiyanlou.com/courses/reports/1291465

????????實(shí)驗(yàn)三:內(nèi)部模塊化的命令行菜單小程序V2.0

????????https://www.shiyanlou.com/courses/reports/1293565

????????實(shí)驗(yàn)四:用可重用的鏈表模塊來實(shí)現(xiàn)命令行菜單小程序V2.5

????????https://www.shiyanlou.com/courses/reports/1296166

????????實(shí)驗(yàn)五:用callback增強(qiáng)鏈表模塊來實(shí)現(xiàn)命令行菜單小程序V2.8

????????https://www.shiyanlou.com/courses/reports/1298949

????????實(shí)驗(yàn)七:將menu設(shè)計(jì)為可重用的子系統(tǒng)

????????https://www.shiyanlou.com/courses/reports/1304260

三、總結(jié)

????????自打這門課開始的兩個(gè)月以來,由于自身代碼基礎(chǔ)薄弱,所以幾乎是在磕磕絆絆中學(xué)習(xí),編程能力的提高和預(yù)期存在落差,不過仔細(xì)一想也是,軟件工程是工程化的學(xué)科,所以動(dòng)手能力永遠(yuǎn)是擺在第一位的,我不可能僅僅依靠?jī)蓚€(gè)月的學(xué)習(xí)去抹平和別人四年的差距。抹平差距的唯一辦法就是不斷的自我學(xué)習(xí)進(jìn)步去縮小它,現(xiàn)在網(wǎng)絡(luò)資源這么豐富,因此我有很多的機(jī)會(huì)去提升自己,對(duì)于自我學(xué)習(xí)能力的培養(yǎng)我想也是孟老師著重想向我們傳達(dá)的吧。

????????總的來說,《軟件工程(C編碼實(shí)踐篇)》這門課主要闡述的是代碼設(shè)計(jì)規(guī)范和模塊化。規(guī)范設(shè)計(jì)包括:1)KISS原則,一個(gè)方法或者函數(shù)只做一件事情;2)遵循“不和陌生人說話”的原則;3)學(xué)會(huì)用數(shù)據(jù)結(jié)構(gòu)、控制結(jié)構(gòu)來簡(jiǎn)化代碼;4)要有錯(cuò)誤處理機(jī)制。模塊化則講究的是寫代碼要遵循高內(nèi)聚低耦合的原則。

????????很高興能有機(jī)會(huì)學(xué)習(xí)這門課程,也感謝孟老師和線下的兩位助教老師的辛勤付出,是你們的指導(dǎo),才讓我們有這么良好的學(xué)習(xí)機(jī)會(huì)和氛圍。最后套用一句屈原的話,“路漫漫其修遠(yuǎn)兮,吾將上下而求索”,愿你我共勉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容