重慶java技術學習誤區
發布時間:2023-03-01 16:33:55 已幫助:人
一.學過就忘
1.在某一節課堂上,老師剛說完Spring的各種使用方法,但學完之后完全不記得怎么用了。相信這也是新手程序員的通病,前面學后面忘,原因是什么呢?
這是沒有很好的把知識變為能力的方式,知識只是知識,理論知識往往是很枯燥的,我們的大腦不太愿意去記憶一些枯燥無味的東西,時間把知識記進去了,后面沒有去運用,大腦就會認為這是無效的信息,就會慢慢把它給遺忘掉,那如何才能記憶更深刻,答案就是把知識變成能力。
2.假如學習一個技術,比如說Mybatis,老師講Mybatis能干嘛,帶來什么好處,它是怎么用的,等等等等。
老師講十遍不如自己做一遍,自己做一遍,不如自己做十遍,并且做的時候,要為這門技術設計好一個偏實際的應用場景,比如我今天想做一個學生管理系統,然后Mybatis能給我解決了什么問題,我要怎么使用它,使用它的過程中遇到了什么問題,如何解決,多做幾遍你對這門技術方能印象深刻,并且在用的過程中,你就把MyBatis這個知識,變成了在項目中應用Mybatis能力。
二.開發經驗不足
開發經驗不足會直接導致出現以下兩個問題。
1.簡單的錯誤浪費了大量的時間:
一個簡單的錯誤,如沒有用包裝類、或者字段名與屬性名不一致、沒有指定泛型;問題是很簡單,但是因為經驗不足,就是找不到原因,往往浪費了大量的時間去排錯,到最后才恍然大悟,原來是這樣啊,但是時間浪費了就是浪費了,補不回來了,這個問題怎么解決呢?
如果這個問題半個小時內解決不了,那就去問別人。在這半個小時內,先Debug再用百度、CSDN、全部的搜索渠道,全都去搜索一遍,能找到的解決方案全都嘗試一遍,如果實在解決不了,就帶著問題和嘗試過的解決方案,去請教別人。
誰都不是天生的大神,沒有一生下來就會的,所以學習的時候,經驗不夠,沒有辦法解決問題不丟人,大膽的去問,但是一定要注意,不是誰都有義務回答你的問題,所以態度很重要,如果語氣很沖的去問問題,反而會讓對方反感,所以一定要注意。
2.注重功能的實現而忽略了健壯性和可拓展性:
假如今天接到一個任務,讓你添加一個用戶,你寫了添加一個用戶的功能,寫完了,需求變了,要一個添加多個用戶的功能,好,再寫添加多個用戶的功能,等你叭叭叭寫完了,又跟你說,能不能一個接口實現我傳幾個用戶,你就給我添加幾個。
其實功能實現起來不難,但是只會用代碼實現功能的話,那真的是碼農了。
寫代碼也要有思想,要優化,要考慮程序的健壯性和可拓展性,對新手程序員的話,經驗不是很足的情況下,往往忽略掉了這一點,這個問題只能通過不斷的項目積累,先把功能完成這是位的,功能完成之后,多想想還有沒有可以優化的地方,隨著經驗的積累,總結,代碼的健壯性和拓展性才會變得更好。
三.過于刨根問底,往底層去挖
今天學了Spring,知道了Spring的核心容器是IOC,但是IOC如何實現組件的生命周期管理呢?為什么通過一個注解就可以把我需要的組件給我注入進來呢?今天學了SpringMVC,一個請求過來MVC是怎么處理這個請求的呀?去看看底層源碼,一看,深不見底,越看越蒙。最后浪費了大量的時間不說,發現自己還是啥也沒搞懂。
底層源碼有必要看嗎?當然有必要看,但是也分情況,如果你是一個老手程序員,框架已經用的非常熟練了,這時候去看看底層的源碼有助于提升對框架的理解,也會提升自己的代碼水平。但是新手程序員的話,其實不必要太去深究源碼層面的東西,因為大概率是看不太懂的,對于一個框架,我個人理解是有三個層次:
一、了解邏輯,一個框架的產生是用來解決那種現有技術可以實現,但是比較麻煩,不高效的事情的,比如目前使用最廣泛的持久層框架MyBatis,如果沒有它的話我用JDBC是不是也能實現持久層的功能?當然可以,但是太麻煩了,于是就有了MyBatis這個優秀的持久層框架,學習MyBatis先熟悉如何使用JDBC與數據庫交互,然后理解MyBatis幫我們做了什么,想通了這一點,學起來也會更快。
二、使用,先通過一個小的Demo上手最基礎的功能,然后逐步深入了解這個框架的強大功能,然后練習使用,使用這個框架去實際的業務問題,比如說設計一個練手的小項目,然后使用這個框架去解決一些實際問題。到最后能夠熟練使用這個框架,遇到一些常見的問題會解決,就已經很厲害了。
三、框架的思想了解了,框架也用熟練了,這個時候你想要知道框架為什么這么厲害,框架都幫你做了哪些事情,這個時候就可以去翻翻源碼了,一個框架能被那么多人認可使用,說明一定是非常優秀的,它的設計思想和代碼肯定有很多是值得我們學習的地方。邏輯清楚了,又會用,這時候再去看源碼就會比較輕松,不會那么痛苦,并且帶來的收益也是非常高的。
綜上:源碼是有必要看,但是在新手階段,不會用也不了解框架邏輯的情況下,看源碼是痛苦且收益比較低的一件事,不要太深入的了解。
以上就是新手程序員在學習過程中可能會遇到的一些問題,以及解決這些問題的辦法。