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