韓順平老師13個(gè)編程誤區(qū)提醒的總結(jié)
1.?? 不注重基礎(chǔ),什么火就學(xué)什么
初學(xué)編程,一定要扎實(shí)基礎(chǔ)
自己的總結(jié):
萬丈高樓地基起,學(xué)好基礎(chǔ),為以后的學(xué)習(xí)做充分的準(zhǔn)備,這一點(diǎn)非常重要,不能一味的追求新技術(shù),新技術(shù)大部分是對(duì)基礎(chǔ)的總結(jié)和封裝,比如框架,新的框架會(huì)屏蔽很多的細(xì)節(jié),雖然從應(yīng)用的角度來說,確實(shí)方便,如果僅僅是為了完成任務(wù),那么學(xué)習(xí)應(yīng)用的方法,不去深究底層細(xì)節(jié),無可厚非,但是如果要理解底層原理,一定要把基礎(chǔ)學(xué)好
?
2.?? 不要糾結(jié)編程語言
編程語言從邏輯和語法上來講都是大同小異,在學(xué)精通1門編程語言后,再去學(xué)習(xí)別的編程語言可以觸類旁通,在沒有目標(biāo)的情況下可以先學(xué)習(xí)Java語言
自己的總結(jié):
編程重要的是思想,是擁有實(shí)現(xiàn)需求的思路,而且每個(gè)編程語言對(duì)應(yīng)擅長(zhǎng)的領(lǐng)域不同,需要明確自己的方向后,根據(jù)自己的實(shí)際情況制定目標(biāo),再去學(xué)習(xí)
?
3.?? 喜歡看,不喜歡動(dòng)手
親手寫代碼非常重要,剛開始的時(shí)候,不知道寫什么,就把學(xué)習(xí)案例寫一遍,后面自己想辦法拓展,自己想添加什么功能,嘗試去做
編程是一門做中學(xué)的學(xué)科,是在做的過程中學(xué)會(huì)的,而不是說,先理解了,知道了再去做,如果在做的過程中不理解,就多做幾遍,如果寫代碼過程中出現(xiàn)錯(cuò)誤,會(huì)報(bào)錯(cuò),這是提升的好機(jī)會(huì)
自己的總結(jié):
學(xué)習(xí)本質(zhì)是模仿,只有在大量的練習(xí)和模仿,并且理解了核心思想后,自己獨(dú)立創(chuàng)造才能順利,否則連別人做過的東西都做不出來,還談什么自己創(chuàng)新開發(fā)呢,舉一個(gè)拍短視頻的例子,短視頻可能只有幾秒,然后爆火,那是視頻要素齊全,符合爆火的條件,如果符合爆火的條件,還不火,那就多做幾條視頻,總有一條會(huì)火的,同樣的道理,多動(dòng)手,可能效果不理想,但是努力絕不會(huì)白費(fèi),總有一天會(huì)出現(xiàn)量變產(chǎn)生質(zhì)變的效果
?
4.?? 沒有認(rèn)識(shí)到聽懂和會(huì)用是兩回事
如果出現(xiàn)了,聽懂老師的說法,但是不會(huì)做項(xiàng)目,說明缺少大量的練習(xí)
紙上得來終覺淺,絕知此事要躬行
要通過做題,做項(xiàng)目,并且深度思考
什么叫深度思考:做對(duì)了,要知道為什么做對(duì)了,做錯(cuò)了,要知道為什么做錯(cuò)了,并且下次不要再犯
自己的總結(jié):
正常情況下,能聽懂了老師的內(nèi)容,說明老師把這個(gè)知識(shí)點(diǎn)說明白了,剩下的就是要通過大量的練習(xí),將這個(gè)知識(shí)點(diǎn)原理深刻的印在腦子里,注意這里說的是知識(shí)點(diǎn)原理,而不是應(yīng)用層面的api,就是說,知道自己要干什么,而不是去記憶api,api不要背,常用的api自然而然會(huì)記住,不熟悉的api,要知道去哪里找,主要是理解如何運(yùn)用
?
5.?? 很少做筆記,沒有畫思維導(dǎo)圖,沒有將學(xué)習(xí)的知識(shí)轉(zhuǎn)化為自己的知識(shí)
在學(xué)習(xí)過程中,要明白,學(xué)習(xí)的知識(shí)是老師的,不是自己的,要想辦法把知識(shí)轉(zhuǎn)化為自己的知識(shí),最好是用自己的語言把知識(shí)總結(jié)下來
自己的總結(jié):
就像我現(xiàn)在按照每條誤區(qū)的順序,逐個(gè)寫自己的總結(jié)一樣,一定要按照自己的理解,將老師傳授的知識(shí)點(diǎn)轉(zhuǎn)化為自己的知識(shí)點(diǎn),不然的話就只是聽過去了,然后假如別人再來問我,我知道個(gè)錘子,我只知道自己學(xué)過這個(gè)知識(shí),那這個(gè)知識(shí)具體是啥內(nèi)容???不知道,這不是浪費(fèi)時(shí)間嗎,既然學(xué)過了,也許會(huì)忘記,但是起碼,這個(gè)東西是干什么的要能說出來,腦子里要有映像,可以像現(xiàn)在一樣,對(duì)學(xué)習(xí)的內(nèi)容進(jìn)行總結(jié)
我個(gè)人推薦費(fèi)曼學(xué)習(xí)法,什么是費(fèi)曼學(xué)習(xí)法?簡(jiǎn)單說就是自己學(xué)習(xí)過后,進(jìn)行總結(jié),用最簡(jiǎn)單的話把事情說明白,最好是一個(gè)沒有接觸過的人也能聽懂的程度
我是怎么做的呢?
可以自己心里想象一個(gè)人,他現(xiàn)在啥也不懂,純純萌新,我要把他教會(huì),我只能用不出現(xiàn)任何專業(yè)名詞的說法去教學(xué)
那我是如何知道我心中的那個(gè)人有沒有聽懂呢?
這取決于我是否能順利的講出來,如果能順利的講出來,并且我自己能清晰明白的知道整件事情的流程,那么我就認(rèn)為我心中的那個(gè)人聽懂了,如果有機(jī)會(huì)的話可以邀請(qǐng)一位朋友,看看能不能讓那位朋友聽懂,請(qǐng)朋友的方法比較直觀,容易得到反饋
6.?? 喜歡死記硬背,不理解原理
基本的語法結(jié)構(gòu),需要死記硬背,但是涉及到功能的實(shí)現(xiàn),算法設(shè)計(jì)模式,底層機(jī)制,優(yōu)化效率等一定要理解,不能死記硬背,如果有一些知識(shí)無法理解,就先通過大量的練習(xí),把知識(shí)點(diǎn)背下來,在實(shí)踐中加深認(rèn)知
自己的總結(jié):
這一點(diǎn)我是真的有深刻的理解,我之所以會(huì)做這樣的一篇總結(jié),也是因?yàn)槲曳噶诉@個(gè)錯(cuò)誤,我在學(xué)完Java基礎(chǔ)課程后,趁熱打鐵,學(xué)習(xí)了數(shù)據(jù)結(jié)構(gòu)和算法,當(dāng)時(shí)還正兒八經(jīng)了像做筆記一樣把老師的總結(jié)抄下來,看起來像是自己的總結(jié),其實(shí)屁用沒有,過一段時(shí)間回看還是啥也看不懂,加上我記性很差,甚至都不愿意死記硬背,也不理解原理,這個(gè)現(xiàn)象其實(shí)上面第5點(diǎn)也是說的很明白了,但是真正讓我理解這個(gè)坑是一件真實(shí)的事件
事件:
公司里面有2份文檔,他們本應(yīng)該是一模一樣的,但是其中一個(gè)比另一個(gè)多了一頁,我們檢查了2份文檔,第一頁和最后一頁的內(nèi)容又是一樣的,那么一定是中間的某頁出現(xiàn)的偏差,導(dǎo)致這個(gè)原因的可能是我用的word,同事用的wps
怎樣分析并解決這個(gè)問題?
如果您能看到這篇文章,并且了解數(shù)據(jù)結(jié)構(gòu)和算法,我希望您能夠暫停一下,先思考一下用哪個(gè)算法的思想就能解決這個(gè)問題,這非常簡(jiǎn)單,我當(dāng)時(shí)發(fā)現(xiàn)這個(gè)問題后,僅用不到1分鐘就確定了思路,并且開始了排查,2分鐘之內(nèi)找到了出錯(cuò)的那一頁
簡(jiǎn)單說一下我是如何思考并解決的:
關(guān)鍵1:2份文檔都是300多頁,相差1頁,比如一個(gè)是310頁,一個(gè)是311頁,他們下面都有頁碼,那么自然就能想到連續(xù)的數(shù)組
關(guān)鍵2:2份文檔的頭尾內(nèi)容相同,我們可以理解為,2個(gè)數(shù)組,他們的長(zhǎng)度差值為1,第0個(gè)元素和第.length-1個(gè)元素對(duì)應(yīng)相同,也就是說 arr1.length-arr2.length取絕對(duì)值,結(jié)果為1, arr1[0] == arr2[0] 并且 arr1[arr1.length-1] == arr[arr2.length-1]
所以我們只要找到那個(gè)第一個(gè)出現(xiàn)錯(cuò)位的下標(biāo)就可以了
為了方便理解,我畫一個(gè)圖

相信有朋友看到這個(gè)圖之后一下子就能看出來,可以使用二分查找的思想解決
那我具體是怎么做的呢?
1.???? 同時(shí)打開2個(gè)文檔,都翻到最中間一頁,看下面的頁碼是否相同
2.???? 如果相同,說明錯(cuò)誤出現(xiàn)在文檔的后半部分,繼續(xù)向后取一半,比如文檔一共100頁,我看2份文檔的50頁,內(nèi)容一樣,那就看2份文檔的第75頁內(nèi)容是否相同,后面以此類推
3.???? 假如看到75頁內(nèi)容不一樣,但是下面頁碼一樣了,說明錯(cuò)誤出現(xiàn)在了50-75這25頁之間,那我就找50-75這25頁的一半,50+12.5=62.5頁,當(dāng)然.5是不可能的,所以看62頁
4.???? 如果2分文檔的第62頁相同,那么問題就出在63-75之間,如果不同,說明問題出在51-61頁之間,以此類推,即可找出錯(cuò)誤的那一頁
這就是一個(gè)簡(jiǎn)單的算法的實(shí)際應(yīng)用
7.?? 程序出錯(cuò)后,不是積極調(diào)錯(cuò),而是逃避
出現(xiàn)錯(cuò)誤不可怕,可怕的是沒有積極面對(duì)錯(cuò)誤,解決錯(cuò)誤的心態(tài)和意識(shí),遇到錯(cuò)誤后積極的調(diào)試,找到錯(cuò)誤,解決錯(cuò)誤,是提升的好機(jī)會(huì)
自己的總結(jié):
這一點(diǎn)倒是還行吧,我每次出問題,首先看錯(cuò)誤提示信息,如果沒有,就認(rèn)真核對(duì)自己的代碼和老師寫的哪里不一樣,實(shí)在找不到,打開彈幕,看看有沒有朋友遇到和我一樣的問題,或者是先把老師講的內(nèi)容看完,看看這里是不是老師留下的一個(gè)坑,用故意展示錯(cuò)誤的教學(xué)方式來進(jìn)行教學(xué),這里提示幾個(gè)常見的錯(cuò)誤:
1.from不要寫成form
2.工程路徑名盡量復(fù)制,不要自己寫
3.方法名要見名知義
?
8.?? 孤軍奮戰(zhàn),閉門造車不愿意也不敢分享
在學(xué)習(xí)的過程中,肯定會(huì)遇到問題,不能讓問題越積累越多,需要自己營(yíng)造學(xué)習(xí)氛圍,如果問題越來越多,但是不去解決,就會(huì)產(chǎn)生慢慢放棄的想法
初學(xué)編程,要敢于分享,敢于總結(jié)
自己的總結(jié):
這也是我寫這篇文檔的理由之一,敢于分享,接受別人的指正
?
9.?? 學(xué)習(xí)沒有重點(diǎn)和目標(biāo)
學(xué)習(xí)編程,應(yīng)該有一個(gè)明確的學(xué)習(xí)目標(biāo),一旦明白了自己需要什么,就知道了自己要學(xué)什么,要學(xué)習(xí)到什么程度,然后根據(jù)目標(biāo)和方向指定一個(gè)明確的學(xué)習(xí)計(jì)劃
自己的總結(jié):
從自己的興趣入手,只有知道自己想干什么,才能知道自己要做什么?。?!這一點(diǎn)非常重要,我學(xué)習(xí)這么長(zhǎng)時(shí)間,終于是明白了這一點(diǎn)
一開始沒有目標(biāo),沒想好自己到底想干什么,只是想進(jìn)入it行業(yè),混口飯吃,老板安排我做什么,就做什么,導(dǎo)致我啥都要學(xué),卻啥也學(xué)不好,于是我問自己,你有目標(biāo)嗎?你想干什么?
我的第一反應(yīng)是:我想啥也不干,天天歇著,看看視頻,打打游戲,一天就過去了
但是后來一想,就我這個(gè)水平,每次打游戲都打不過別人,與其在游戲里被折磨,為什么不去做游戲,去折磨別人呢?(開個(gè)玩笑)
?
10.?? 收藏夾塞滿了,但是從來沒有看過
學(xué)習(xí)資源在精,不在多,學(xué)習(xí)資源簡(jiǎn)化一下反而更有利自己的學(xué)習(xí)
自己的總結(jié):
找到適合自己的學(xué)習(xí)方式和自己容易接受的老師,以這個(gè)老師為主,其他老師為輔,進(jìn)行學(xué)習(xí)
?
11.?? 學(xué)習(xí)編程和性別無關(guān)
職場(chǎng)中,女性會(huì)有劣勢(shì),需要長(zhǎng)遠(yuǎn)的職業(yè)規(guī)劃
自己的總結(jié):
知道自己想干啥之后學(xué)就完事了!加油!奧里給!
?
12.?? 專業(yè)不對(duì)口,不適合學(xué)編程
編程本質(zhì)也是一門技術(shù),和其他專業(yè)么有太大的差別,只要邏輯思維正常,就可以學(xué)編程,轉(zhuǎn)行做it,后來成功的人很多
13.?? 數(shù)學(xué)不好,不適合編程
在實(shí)際開發(fā)中,確實(shí)會(huì)遇到一些數(shù)學(xué)相關(guān)的內(nèi)容,但是對(duì)于大部分程序員而言,是使用一個(gè)別人已經(jīng)寫好的模塊,去應(yīng)用,而不是創(chuàng)造
自己的總結(jié):
我學(xué)了這么長(zhǎng)時(shí)間,沒遇到數(shù)學(xué)需求較高的業(yè)務(wù)場(chǎng)景(我太菜了)
?
?
14.?? 小結(jié)
學(xué)習(xí)編程是一個(gè)過程,要有好的學(xué)習(xí)方法,而且要堅(jiān)持,明確學(xué)習(xí)目標(biāo)和方向,制定明確的學(xué)習(xí)計(jì)劃,每天進(jìn)步一點(diǎn)點(diǎn)
都會(huì)學(xué)好,都會(huì)學(xué)會(huì),只要有一顆堅(jiān)持的心
?
14.? ?后記
我第一次接觸韓老師是在21年3月份左右,映像當(dāng)中那個(gè)時(shí)候韓老師個(gè)人b站賬號(hào)的零基礎(chǔ)學(xué)Java課程只有四十幾萬的播放量,現(xiàn)在20220514已經(jīng)有了478萬播放量了,那個(gè)時(shí)候我也看過了13個(gè)坑這個(gè)視頻,但是當(dāng)時(shí)聽了,卻沒有謹(jǐn)遵教誨,也沒有做關(guān)于這非常重要的一期的思路整理和筆記,或者說沒有堅(jiān)持照做,因?yàn)槲艺翼n老師拿到了筆記之后,自己就不做了,現(xiàn)在想想挺后悔的,現(xiàn)在回頭再整理這一份遲到了1年的筆記,百感交集,不禁感嘆溫故真的能知新