【筆者感悟】筆者的學習心得【二】

2023-06-28 06:00:24

個人經歷

首先講一些個人經歷,筆者在學校裡學習Spring專案的時候,基本上都是老師照著書念PPT,然後演示一些有限的課堂案例,筆者印象很深刻,學校裡整個Spring專案也就做了6個課堂練習,而且難度基本上屬於連線上資料庫就算成功,現在看來很簡單的事情,不知道當初為啥搞得這麼辛苦

不怕大家笑話,雖然筆者在學校裡的成績尚可,但是筆者直到拿到學位證書的時候,還說不清楚maven依賴是什麼,在工作的時候才逐漸瞭解很多內容,後來必須反覆思考到底出了啥問題

後來筆者在工作的時候筆者接了一個從頭開發的Vue專案,由於公司急著要,沒有時間慢慢像在學校裡學了,只能邊學邊做

筆者接專案的時候Vue零基礎,前端基礎也是除了div幾個標籤和一些常用的style就啥也不會了,以前前端基本都是靠複製貼上的,也不怕大家笑話我,筆者到工作才知道前端的三駕馬車這種說法【Html+Css+JavaScript】

經過三個多月的硬啃,說實話我自己都不知道自己咋過來的,最難熬的時候心態都崩了,直接向公司請了三天假休息

筆者現在對Vue已經有了一個初步的入門,也能和公司的幹了幾年的前端進行一些基礎的交流,但是有趣的是筆者從頭到尾沒有看過一本書,上過一節課

分析解讀

結合個人經歷,筆者在學校裡的時候大部分時間都是對著書本在啃,讀著老師的PPT,談到實踐除了課後作業和課設其實對實戰做的就很有限了

其實筆者後來發現,最好的學習技術的方案是什麼,就是不停地敲,敲著敲著很多事情自然也就記住了

但是做專案我們終究是在面向CSDN程式設計,學到的知識終究都是碎片化的,既然是知識,我們是不可能繞開知識體系。

但是如果要注重體系的那一定不是做專案,而是讀書或者上課,但是筆者自問上課的時候也是專心聽講的學生,而且筆者大學經歷比較豐富,無論是培訓班,還是學校上課都是參加過的,也很難簡單地對比出應該選擇誰,但是上課的效果並不是很好,那麼筆者自然不可能把責任都推給老師無能,有時候筆者也問自己難道我不適合上課嗎,那麼既然要追求知識體系,筆者就去翻閱了不少書籍

後來發現好多書學習起來也非常痛苦,知識點整合不起來,筆者在看書的時候發現,書上的內容往往像一堆零件,要合體成為一個完整的專案對筆者來說實在是很痛苦,基本上第一章都是扯一大堆某某技術的發展歷程,但對於需要做專案瞭解這些意義真不大,但是對搞心態來說作用確實是挺大的

而且從做專案的角度來說如果企圖靠讀書的方法真的是一件很痛苦的事情,筆者更喜歡直接的乾貨,相信很多同學也和筆者一樣,即我問一個問題,直接告訴我答案,而不是我問一個問題給我一大堆書,說答案就在裡面,你找吧,往往你學了幾十頁,專案裡某個需求也就用到幾頁甚至幾行而已,你可能不知不覺中用上了都不知道這是哪個知識點

最讓筆者頭痛的就是,一個專案,即便是最基礎的也要用到好幾種技術組合起來,就拿最簡單的圖書管理系統來說,Spring+SpringMVC+MyBatis+Mysql+HTML+CSS+JavaScript,就這一個涉及到的學科就要六七個

所以對筆者來說,即便做一個最簡單的圖書管理系統,要讀的書就要好幾本,讀完了也做不出專案來,而且有些技術學科分類並不是很清楚,筆者曾經嘗試過把所有的技術都分開,後來發現在同一類專案中,技術結合的緊密程度是不一樣的,像Spring和MyBatis結合比較緊密【翻譯過來就是非常常見】,雖然理論上行得通,但是筆者很少見到只用MyBatis不用Spring,因此MyBatis這種一般不會單獨寫一本書介紹,其實像Hibernate,Mybatis他們的分類名叫關係對映框架,但是筆者個人確實沒見過基本單獨講關係對映框架的,即便有也一定是和WEB應用框架【Spring】一起講,但是像Spring和Mysql的結合就比較鬆散,因為對於Spring來說換資料庫可以用oracle,db2,能連上就行了,因此單純地把所有的學科分開其實沒啥意義

得出結論

那麼從上面的情況來看,既然不是老師的問題,那更不可能是書本的問題,畢竟大部分能夠寫書的都是大牛,那一定是筆者學習的方法有問題,但是筆者在個人經歷中有一點是比較明確的,理論和實踐必須要相結合

後來經過筆者的對自身經歷的和各種想法的總結,想出了一個理論結合實際的看起來有點蠢的辦法,那就是一葉知秋的方法,那就是筆者在做一個完整的專案時,一定會先知道某個單元中的某個知識點,例如在學習vue的時候一定會接觸到v-bind指令,然後通過這一個點,輻射到一塊知識點,例如vue中的常見指令還有v-model,v-bind,v-if / v-else,v-show,v-for,v-on,v-text,v-html,v-pre,v-cloak,v-once

那就是筆者同樣會在該系列做一個專案,隨著系列往後,內容也會逐漸完整,我們伴隨著專案完整性的升高逐漸輻射所有的知識點,在做專案的時候給和大家討論技術的完整性,當然有些技術可能不太可能或者不太適合在同一個專案中同時出現,例如不可能又使用Hibernate,又使用Mybatis,這方面沒有關係,我們配合版本管理神器【Git】,程式碼可以多版本,也可以回退

部落格改進

因此,筆者也決定對部落格進行改進,以後的部落格都會串聯到某個專案中,因此會有三部分組成

需求描述:即要實現什麼需求

需求實現:這裡不會有任何知識點講解,只是單純地介紹,怎麼實現這個需求

學習要點:接下來會針對在需求實現中用到的首次出現的技術進行輻射,就好比上面提到的用一個v-bind輻射到v-model,v-bind,v-if / v-else,v-show,v-for,v-on,v-text,v-html,v-pre,v-cloak,v-once

問題解答

Q1:你的方法是碎片化還是系統化

很多同學看到這裡還是會發現筆者在碎片化學習,甚至很多同學會質疑這樣學習知識點是亂序的,順序邏輯啥的和書上的不一樣,是的確實不一樣,但是學習程式設計在筆者眼裡看來一大忌諱就是當書呆子,只要會就行,沒必要死板的非和書上的知識點一模一樣,而且,你不可能學完所有的知識點,光一個Java語言就夠你學一輩子了,難道一輩子就不學資料庫了嗎

而且請問同學們,我們何時學過一門學科的所有知識點,就拿數學來說,乘法小九九是大家小學就學的,早的同學可能一年級甚至幼兒園還沒識幾個字就學了,那麼請問乘法小九九在數學這門學科的第幾章有誰能回答我嘛?肯定沒有

在筆者眼裡看來,這是積木化思維,借用《小學問》上的一段話,很多同學現在的理念拼圖化思維,拼圖大家一定都玩過,只要少一塊,大家就會很焦慮,所以大家要轉換一下思維

那麼積木化是什麼,大家玩積木有沒有苛求過所有的積木都要用上,是的你從來沒有,有的時候光兩塊積木就能拼出一堆花樣來,就像筆者上面提到的乘法小九九,難道離開了其他知識點它就沒用了嗎,那怎麼可能,平時它的作用大了去了

記住所有的知識點一個U盤就夠了,那麼人腦用來幹啥,相信大家是不是有點感覺過來了

Q2:那麼在這種情況下體系是否就不重要了

不,非常重要,體系不是讓你照搬書上的抄,而是隨著你學得越來越多以後,自己根據自己的理解,總結出一套自己的體系,很多同學佩服寫書的人,但是你按照筆者這種做法,是不是你學到一定地步,總結一下體系,你某種程度上也有資格寫書了

Q3:之前的部落格會做修改嗎

是的,一定會修改,正如博主一直在摘要中反覆強調的,部落格推行版本更新,成果積累制度,已經寫過的部落格還會再次更新,不斷地琢磨,高質量高數量都是要追求的,工匠精神是學習必不可少的精神,在筆者眼裡看來,如果說學習計算機第二大忌諱是當書呆子,那麼第一大忌諱就是墨守成規,學習技術一定要求變

Q4:有些像計算機網路一樣沒有專案的怎麼辦

這點大家不用擔心,筆者也是有強迫症的人,不可能讓任何一篇部落格沒有合集,只是在筆者這種設計下,有些部落格就會有兩個合集,有些只有一個合集,但是理論上即便是計算機網路也會有在專案中實現,但是這個對於筆者來說還停留在空想階段,筆者終究只是個計算機的小學生,需要不斷地探索和完善,這也給大家提個醒,不要把筆者的話當萬能鑰匙,可能筆者很多話在大牛眼裡都是很幼稚的發言,因此大家要敢於質疑,歡迎我們一起討論