經(jīng)常有自學(xué)編程的小伙伴提問(wèn):“我想快速學(xué)習(xí)編程,你有什么好的建議嗎?”
在自學(xué)編程的過(guò)程中確實(shí)會(huì)踩到不少坑,很多人在回憶自己的編程學(xué)習(xí)之路時(shí),都會(huì)意識(shí)到:我本來(lái)完全可以用更快的速度學(xué)會(huì)編程的。
因此,通過(guò)反思過(guò)去,我總結(jié)了一些可能幫助大家提升學(xué)習(xí)效率的策略,避免盲目苦學(xué),實(shí)現(xiàn)更有序、更高效的學(xué)習(xí)進(jìn)程。
1.快速
如果為了“快速”而囫圇吞棗地閱讀書籍或復(fù)制粘貼代碼,往往會(huì)導(dǎo)致對(duì)編程概念理解膚淺,甚至可能完全忽視了編程的核心原理。
長(zhǎng)此以往,不僅個(gè)人編程能力沒(méi)有實(shí)質(zhì)性的提升,而且隨著學(xué)習(xí)內(nèi)容的深入,難度的增加,最終可能連基本的代碼都難以理解,之前的努力似乎都白費(fèi)了。
所以,“快速學(xué)習(xí)編程”的本質(zhì)應(yīng)該是讓自己“慢下來(lái)”,深入細(xì)致地研究每一個(gè)概念,理解每一行代碼的作用。
在充分理解了代碼的邏輯之后,或者至少知道它的用途,再通過(guò)反復(fù)的練習(xí)來(lái)鞏固和深化理解。
持之以恒,你會(huì)發(fā)現(xiàn)自己的編程能力在不知不覺(jué)中得到了快速的提升。
2.讀代碼
有人說(shuō):“世界上80%的代碼既不特別難也不特別簡(jiǎn)單?!边@句話在一定程度上是有道理的。所謂的高深代碼,指的是那些超出了現(xiàn)有語(yǔ)言和算法能力范圍的代碼,需要?jiǎng)?chuàng)新和創(chuàng)造。而市面上大多數(shù)代碼,其實(shí)都可以通過(guò)模仿和學(xué)習(xí)來(lái)掌握。
許多人可能會(huì)因?yàn)椴焕斫舛x擇避開(kāi)閱讀代碼,但這種做法并不可取。讀代碼的過(guò)程,就是要讓自己感到一些不適,這是一個(gè)挑戰(zhàn)自我的過(guò)程。8/2原則里,我們應(yīng)該將大部分時(shí)間(80%)投入到那20%的關(guān)鍵知識(shí)上。我們需要習(xí)慣這種方式,并且找到克服困難的方法。
我自己也經(jīng)歷了這個(gè)痛苦但必要的過(guò)程。隨著時(shí)間的推移,你會(huì)發(fā)現(xiàn)這種堅(jiān)持和努力會(huì)帶來(lái)巨大的收獲。
3.不要鉆牛角尖
我自己在學(xué)習(xí)編程的過(guò)程中也犯過(guò)類似的錯(cuò)誤,特別是在遇到難題時(shí),我會(huì)花費(fèi)大量時(shí)間在一些看似愚蠢或難以理解的問(wèn)題上。而原本我可以用這些時(shí)間做更多的事情和學(xué)習(xí)更多的東西,如果我能找到更好的解決方法的話。
卡在一個(gè)東西上面超過(guò)一個(gè)小時(shí)基本上就是在浪費(fèi)時(shí)間了。為了避免在學(xué)習(xí)中陷入僵局,我有幾點(diǎn)建議:
1??不斷閱讀和學(xué)習(xí)有關(guān)你正在使用的技術(shù)的更多信息。
2??利用互聯(lián)網(wǎng)資源。
3??向你認(rèn)識(shí)的開(kāi)發(fā)者、同學(xué)或?qū)熐笾?br>
4.和其他程序員聊天
程序員之間的對(duì)話往往圍繞著技術(shù)展開(kāi),他們分享各自的項(xiàng)目經(jīng)驗(yàn),探討行業(yè)的最新動(dòng)態(tài)。這不僅是學(xué)習(xí)編程的有效途徑,也是了解他人編程視角的窗口。
你會(huì)發(fā)現(xiàn),一些你視為理所當(dāng)然或從未深思熟慮的問(wèn)題,在不同的人看來(lái)可能有著截然不同的看法。
與技術(shù)高手的交流,總能帶來(lái)豐富的收獲,讓你接觸到之前未曾聽(tīng)聞的新知識(shí)。不要擔(dān)心不懂,知識(shí)靜靜聆聽(tīng)也會(huì)有收獲。
這種交流不僅能夠拓寬你的視野,還能激發(fā)你的思考,促使你在編程的道路上不斷前行。
自學(xué)編程是一個(gè)充滿挑戰(zhàn)但也充滿樂(lè)趣的過(guò)程。希望以上這些經(jīng)驗(yàn)分享能夠幫助你在編程學(xué)習(xí)的道路上少走彎路,更高效地掌握編程技能。