白駒過隙,悄然已乎。從寒假就開始的面對對象程序設計,在最后的考試周落下了序幕。在期待中開始,在遺憾中結束,感慨如下,不給贅言。
本學期通過博客作業學習所得
1、從面對過程的C++編程逐漸有了基於對象編程的影子,再到最后能理解好一些面對對象的編程知識。(尚無自信敢言打出了面對對象的程序)
2、命令行的學習。算是彌補了之前知識的一個遺憾(在命令行學習的博客中有提及)
3、計算機的終身學習是真的,為了不被時代淘汰,要保持着不斷學習的知識。因為博客作業布置的很多方面,之前都沒有想過會去接觸,涉及到了一些不怎么關注的方面,所以很多都是從零開始。
電梯、團隊作業遇到的最大問題
電梯作業:
1、工程代碼與算法代碼的區別。工程代碼的無AC性,需要根據需求不斷地改進,經常改得十分急躁。電梯來來回回寫了近千行的代碼,仍無法到達理想構想時的疲憊和絕望,真的很折磨人。
2、理想架構和現實實現的差異。說簡單點,就是眼高手低,想得美滋滋,碼得慘兮兮。清晨、下午、傍晚、夜晚的努力,還是沒有得到自己理想的電梯,即便是網上所提供的一些方法,個人也不是很感冒,覺得可能對於電梯的理解不太同。對於電梯理解,個人比較重視輕重緩急,在理想中希望能夠使得電梯更加智能。
(1)依據當前時間判斷哪些樓層的價值較高。
(2)根據各樓層的需求人數判斷較高價值樓層。
(3)如何運行使得更加節能。
當然,以上的想法,我一個都沒有能夠實現,曾經想過實現過第一,但是覺得在作業中比較並沒有什么意義(因為題目也沒有給參數),當然在實際生活中意義非凡,至少我是這么覺得的(上下班高峰期,對於上班族所在樓層價值加高,這顯然還需要收集一定的數據)。當然,也想過第二,在網上也找到了相關的代碼(悔不當初沒有收藏,忘了搜的什么關鍵字,至今沒有找到,但是清楚地記得是寫模擬寫帝國大廈的電梯運行),也只是關注了一下代碼,因為之前的編碼說明不知所雲。
團隊作業:
1、如何編寫游戲客戶端。被分配到寫客戶端非常激動,因為是main函數,也就是說整個游戲怎么動都在我的掌控之中,運籌帷幄的感覺,很好。但是接踵而至的是,對於這塊知識的完全空白,不管是概念還是代碼,盡管看了很多博客學習,但是個人感覺這些博客對於初學者並不友好,講得大多是可以出版的游戲的客戶端的編寫的概念。我真的去學習了,我也真的沒學到什么(太過專業,不適合新手入坑,如果概念算的話,還是有一些的)。我記得我之前的客戶端學習博客說學習到了不少,為何在這篇博客又說沒學習到什么?會在下面的第三部分說到。
2、各隊友的協作和各部分代碼整合。設想得太過美好,每個人把自己負責的類寫好,最后和我探討一下參數問題,以及一些小小的改動,王者光耀就橫空出世了。結果,發現我們的協調和代碼整合並不如意,我覺得很大一部分原因是因為大家都是第一次接觸這種形式的編程,不是很懂,也不是很規范,光靠網上的資料自學摸索,企圖采分頭編寫,最后統一整合的模式不現實,應該同時進行,不斷討論修正。
3、客戶端到底應該怎么寫。從開始寫客戶端,到最后什么都沒有寫出來。我還是不知道客戶端到底要寫什么,我知道寫的是游戲過程,我也知道游戲的規則,但是我到底要寫什么,一堆的if?那客戶端也太刻板了,完全沒有美感可言,桎梏已陷,大廈崩塌。所以說網上的博客只介紹概念對於新手完全不夠友好,說實話應該舉一些簡單的例子(非工程事例),看完之后信心滿滿,我一定可以寫出一個絢爛美麗的客戶端,到最后,我到底要寫什么?所以上篇博客的評論,我都不知道怎么回復,因為真的不懂,不知道如何回復。(回復的每個詞我都懂,但是這直擊內心的拷問,我真的不知道怎么編寫)
電梯、團隊作業的改進或完善:
電梯:滿滿實現上述描述中的一些方面(當然最好全部實現,當然以我現在的水平也是知道不可能的,但是還是希望有機會,至少能看到能夠實現上述功能的電梯的代碼,學習一下到底差在哪些方面,也知道不可能只是編碼方面)
團隊:把我負責的客戶端真的寫出來,去了這個莫大的遺憾,看看我們隊伍的光耀做出來是個什么樣子。
重構:
電梯:其實,每次電梯我幾乎都是重新編碼的,現在想想很是后悔,電梯的編碼讓我很是頭大,因為眼高手低,想得很高,完全做不到的失落太傷人。如果能夠重構,肯定還是會去,但是還是力不從心,因為寒假的重構已經把我打倒了,雖然不服,但是真的被打倒了,想得太高了。所以寫的都是降了好多檔次的版本,雖說經歷了這門課的磨練,但是感覺要實現上述功能,現階段還是不現實,但是有自信極大地簡化之前的編碼行數。
團隊:都沒實現出來,沒有什么重構可言。
體會:
C++這個C的超類,確實很厲害,很多便利的功能,很多強大的功能,受益匪淺,不管是慕課還是上課,不管是博客作業還是PTA。說實話,我個人自己先前對於工程的興趣並沒有多濃厚,因為感覺工程代碼的編寫會很無聊。接觸完這門課之后才發現,其實並沒有想象得這么無聊。因為當自己寫出的代碼,變成了實際的產品,活了起來的成就感,真的讓人容易滿足。
對於課程實踐作業形式的看法、建議:
1、寒假作業:形式好,但是建議選擇的題目應該簡單一些。(之前據說是計算器,到了我們變成了怎么都寫不好的電梯),我沒有貶低計算器的意思,但是個人覺得編寫計算器和編寫的電梯,真的不是同一個檔次的東西。
2、需要學習和開通的東西真不少,有些很好,比如 github 和博客園,PTA也是不錯的。但是PTA里面的題目,希望篩選一下,有些完全一樣僅僅題目,然后從函數題變成編程題,或者從第一題變成第三題之類的就不要出了;還有就是一些實現功能大同小異,而且沒有坑的同類題目也不用一次作業出到三四次之多。
3、博客作業:很喜歡,能夠培養自主學習的能力,個人覺得對於今后步入業內很有幫助,如果硬說建議,就提高一下在期末成績的折算比重吧,因為花費的時間也不在少。
4、團隊作業:能夠實現協作的模式,相信之后的工作肯定是團隊的形式,肯定需要協作和交流,培養一下這種做出產品的感覺很是不錯。
小結:C++來得太晚,又走得太快,挺有意思的一門課,相信如果是對工程感興趣的同學會比我覺得更有意思。雖然C++的課程結束了,但是對於C++的學習並沒有停止,至少我STL的源碼還沒看完和理解(自我感覺需要看的一點部分,只是STL的冰山一角),希望下次再寫關於C++的博客自己能夠更上一層樓,至少要看完自己想看的STL源碼和寫出所希望的面對對象的程序。
回首凝視,不負韶華;憑欄遠眺,不改初心。前路漫漫,求索不斷;朝花夕拾,夜飲佳釀,醒復醉。
