軟件工程(C編碼實(shí)踐篇)學(xué)習(xí)小結(jié)
馮磊+ 《軟件工程(C編碼實(shí)踐篇)》MOOC課程http://mooc.study.163.com/course/USTC-1000002006
(SA16225056--嵌入式馮磊)
學(xué)習(xí)心得:
歷時(shí)11個(gè)星期的軟件工程學(xué)習(xí)畫(huà)上了句號(hào),經(jīng)過(guò)這整個(gè)學(xué)習(xí)過(guò)程,還是感觸良多雷袋。
可以說(shuō)级零,這門(mén)課讓我接觸到了一種新的教學(xué)理念役纹。不同于傳統(tǒng)的授課模式焰望,高級(jí)軟件工程采用了線(xiàn)上和線(xiàn)下結(jié)合的方式進(jìn)行教學(xué)稽鞭。線(xiàn)下講解軟工的思想和框架避除,線(xiàn)上從基礎(chǔ)的代碼和概念開(kāi)始層層遞進(jìn)齐苛。
課程中翘盖,涉及到的知識(shí)很廣泛,給學(xué)生的自由度也相當(dāng)高凹蜂,提供了很多鍛煉的機(jī)會(huì)和搜集知識(shí)的渠道馍驯。并且,每周一次的任務(wù)提交和作業(yè)檢查也能給我們一些提醒和約束玛痊。
作為一個(gè)本科非軟件專(zhuān)業(yè)的學(xué)生汰瘫,要在短時(shí)間達(dá)到這門(mén)課的任務(wù)要求還是有些吃力的。其間卿啡,不論完成作業(yè)還是接受檢查吟吝,都出現(xiàn)了不少的問(wèn)題,一度有點(diǎn)跟不上進(jìn)度颈娜。好在通過(guò)查閱資料和同學(xué)的幫助剑逃,還是完成了課程任務(wù)。
希望在接下來(lái)的時(shí)間里官辽,自己能調(diào)整好生活和學(xué)習(xí)的節(jié)奏蛹磺,保持一個(gè)相對(duì)沉穩(wěn)的心態(tài)面對(duì)問(wèn)題,在學(xué)知識(shí)的同時(shí)同仆,要讓自己的心智得到成長(zhǎng)萤捆。
實(shí)驗(yàn)報(bào)告:
實(shí)驗(yàn)一:寫(xiě)一個(gè)hello world小程序
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1244067
內(nèi)容簡(jiǎn)介:
首次實(shí)驗(yàn)要求相對(duì)簡(jiǎn)單,主要在于熟悉實(shí)驗(yàn)樓的實(shí)驗(yàn)環(huán)境俗批,了解linux和VIM的基礎(chǔ)指令俗或。
實(shí)驗(yàn)二:命令行菜單小程序V1.0
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1245047
內(nèi)容簡(jiǎn)介:
本次實(shí)驗(yàn)要求編碼實(shí)驗(yàn)一個(gè)小的命令菜單,仍屬于基礎(chǔ)的程序編寫(xiě)岁忘,并不復(fù)雜辛慰。
但作為代碼開(kāi)發(fā)人員,尤其是像我一樣非科班出身的學(xué)生干像,學(xué)習(xí)掌握規(guī)范的編碼方式并形成自己的代碼風(fēng)格就相當(dāng)重要了帅腌。
這不但提高了程序的可讀性,而且對(duì)于一個(gè)基礎(chǔ)薄弱的初學(xué)者麻汰,非常利于我提高學(xué)習(xí)效率速客,養(yǎng)成較好的習(xí)慣,為之后打下較好的基礎(chǔ)五鲫。
實(shí)驗(yàn)三:內(nèi)部模塊化的命令行菜單小程序V2.0
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1245609
內(nèi)容簡(jiǎn)介:
本次實(shí)驗(yàn)在代碼規(guī)范化的基礎(chǔ)上溺职,開(kāi)始介紹模塊化的方法,設(shè)置接口,是程序更加清晰辅愿,增強(qiáng)可讀性智亮。
并且突出了鏈表的重要性。
實(shí)驗(yàn)四:用可重用的鏈表模塊來(lái)實(shí)現(xiàn)命令行菜單小程序V2.5
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1246196
實(shí)驗(yàn)內(nèi)容:
對(duì)前一次的模塊化代碼進(jìn)行進(jìn)一步完善点待,使功能更加完成,并且可重用弃舒。
本次實(shí)驗(yàn)中癞埠,接口的設(shè)置和linktable.c的寫(xiě)法上都出現(xiàn)了一些問(wèn)題,實(shí)現(xiàn)的功能相對(duì)簡(jiǎn)單聋呢。
實(shí)驗(yàn)五:用callback增強(qiáng)鏈表模塊來(lái)實(shí)現(xiàn)命令行菜單小程序V2.8
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1246960
內(nèi)容簡(jiǎn)介:
本次實(shí)驗(yàn)沿用了之前的模塊化思想和基本的代碼內(nèi)容苗踪,并且新增了一些腳本指令。通過(guò)這次學(xué)習(xí)削锰,加深了對(duì)鏈表的認(rèn)識(shí)通铲,也更熟悉了開(kāi)發(fā)環(huán)境的代碼操作。并實(shí)現(xiàn)CALLback增強(qiáng)鏈表模塊器贩。
實(shí)驗(yàn)六:測(cè)試颅夺。
實(shí)驗(yàn)七:將menu設(shè)計(jì)為可重用的子系統(tǒng)
報(bào)告鏈接:https://www.shiyanlou.com/courses/reports/1248189
內(nèi)容簡(jiǎn)介:
本次實(shí)驗(yàn),為menu子系統(tǒng)設(shè)計(jì)了接口蛹稍,用戶(hù)范例代碼實(shí)現(xiàn)原來(lái)的功能吧黄;使用 make和make clean編譯程序和清理自動(dòng)生成的文件。使menu子系統(tǒng)支持帶參數(shù)的 命令唆姐,最后使用getopt函數(shù)獲取命令行參數(shù)拗慨。
通過(guò)這次實(shí)驗(yàn),首先學(xué)到了使用make clean 進(jìn)行清除奉芦。并學(xué)習(xí)了支持帶參數(shù)的 復(fù)雜命令的方法赵抢。首次使用了fgets、getops等函數(shù)声功。
整個(gè)過(guò)程對(duì)基礎(chǔ)欠佳的我來(lái)說(shuō)挺棘手的烦却,也是得在這種學(xué)習(xí)方式下,盡快適應(yīng)减噪,不斷調(diào)整短绸。
很尷尬的是,這次實(shí)驗(yàn)提交實(shí)驗(yàn)報(bào)告后忘記貼鏈接筹裕,沒(méi)分了醋闭,遺憾遺憾。
總結(jié):
收獲:
1.對(duì)軟件工程這門(mén)課朝卒,和這個(gè)領(lǐng)域的相關(guān)工具证逻,有了一個(gè)基礎(chǔ)的認(rèn)識(shí)。開(kāi)始建立起自己的概念和思維框架抗斤。
2.了解到代碼規(guī)范化的重要性囚企。同時(shí)丈咐,除了增強(qiáng)可讀性、減少出錯(cuò)率龙宏,形成良好的風(fēng)格棵逊、編寫(xiě)出美觀大方的程序,對(duì)自己也是一種鼓勵(lì)银酗。
3.這門(mén)課對(duì)自主學(xué)習(xí)的意識(shí)還是要求挺高的辆影,在這方面我還有很多需要去改進(jìn),等到自己能將閱讀專(zhuān)業(yè)書(shū)籍和不斷改進(jìn)編碼能力融入生活黍特,我大概就算真的入行了蛙讥。
4.老師有時(shí)會(huì)在課程末尾節(jié)選一些經(jīng)典著作。作為一個(gè)文學(xué)愛(ài)好者灭衷,會(huì)感到這門(mén)課更可愛(ài)了一些次慢,同時(shí),其中一些句子翔曲,也有對(duì)自己的提醒和警示迫像。我覺(jué)得它可以說(shuō)是這門(mén)課的彩蛋。
遺憾:
1.非科班出身部默,基礎(chǔ)薄弱侵蒙,只能在磕磕絆絆的過(guò)程中跟上老師的進(jìn)度,并沒(méi)有利用好學(xué)習(xí)資源傅蹂,編程的能力的進(jìn)步和預(yù)期有許多差距纷闺。
2.本來(lái),這門(mén)課的課程設(shè)置周期性很強(qiáng)份蝴,可以依靠這個(gè)過(guò)程調(diào)整自己的學(xué)習(xí)節(jié)奏犁功,幫助自己快速適應(yīng)新的學(xué)習(xí)環(huán)境和生活方式。但效果并不如人意婚夫。
3.既尷尬又搞笑的一個(gè)小事浸卦,實(shí)驗(yàn)七忘記貼報(bào)告鏈接,希望不會(huì)有太大影響案糙。
最后限嫌,祝即將進(jìn)入24歲的自己,好好成長(zhǎng)时捌,變得完整怒医,變得自由;能收獲自信奢讨,也能感受快樂(lè)稚叹。