自學(xué)編程的朋友,我想給你們這5個(gè)建議
很多人都想轉(zhuǎn)行互聯(lián)網(wǎng),不管是出于興趣、行業(yè)前景還是薪資的考慮,想要轉(zhuǎn)行互聯(lián)網(wǎng)的人們必須要面對(duì)一個(gè)問(wèn)題,那就是如何自學(xué)編程,更確切的說(shuō),是如何0基礎(chǔ)學(xué)編程。
其實(shí)我基本上也是0基礎(chǔ)自學(xué)編程的,大學(xué)的時(shí)候?qū)W的電信專業(yè),對(duì)于編程語(yǔ)言只懂得一點(diǎn)皮毛,那些內(nèi)容,相信大部分人看一些網(wǎng)上的教程也可以掌握了。
作為過(guò)來(lái)人,想給大家一些建議,不管你是學(xué)生想要自學(xué),還是跨界轉(zhuǎn)行,亦或是純粹當(dāng)做興趣愛(ài)好,都可以把我的建議作為參考,不會(huì)有壞處。
興趣是很好的老師
這句話大家都聽(tīng)過(guò),但我覺(jué)得,不管是你想從事哪個(gè)行業(yè),想要做的比較好,去比較好的公司,至少要有興趣,其他的能力、專業(yè)水平暫且不談,如果連興趣都沒(méi)有,那么為什么要從0開(kāi)始去做這個(gè)行業(yè),去學(xué)這樣技術(shù),顯然是非常不理智的行為。
有興趣,才有動(dòng)力去學(xué)習(xí)每一樣?xùn)|西,不管是計(jì)算機(jī)基礎(chǔ)、編程語(yǔ)言、算法等等,興趣是原動(dòng)力,沒(méi)有了它,你一定堅(jiān)持不了多久。
可能很多人覺(jué)得興趣不一定最重要,可以靠努力、靠堅(jiān)持、靠意志力去學(xué)習(xí),但是,那樣又有什么意義呢,你愿意這么不快樂(lè)地去學(xué)習(xí)么,你的堅(jiān)持又能持續(xù)多久呢。
時(shí)間是最好的朋友
學(xué)習(xí)編程這件事,需要從長(zhǎng)計(jì)議,怎么說(shuō)呢,就是需要花很長(zhǎng)時(shí)間,絕對(duì)不是一蹴而就的,你可以說(shuō)你花3個(gè)月培訓(xùn)學(xué)會(huì)了一門語(yǔ)言,以及相關(guān)的項(xiàng)目實(shí)戰(zhàn)技能。
但是在我看來(lái),這也只是掌握了一項(xiàng)技能而已,學(xué)習(xí)編程的路還有很長(zhǎng),不管是你自己做項(xiàng)目,還是參加工作,學(xué)習(xí)編程都是一件需要持續(xù)做的事情。
曾經(jīng)有人提出10000小時(shí)理論,就是你在一個(gè)領(lǐng)域投入至少1w個(gè)小時(shí),就可以成為該領(lǐng)域的專家,學(xué)習(xí)編程也不例外。
先易后難,不要想一步登天
很多新手都是初生牛犢不怕虎,因?yàn)閷?duì)編程領(lǐng)域不了解,便不假思索地定了一些很高的目標(biāo),比如想進(jìn)大廠,想做有復(fù)雜度的項(xiàng)目,想短時(shí)間學(xué)習(xí)一門語(yǔ)言并找到工作。
理想很豐滿,現(xiàn)實(shí)很骨感,你可能低估了入行的難度,并不是只要有心,就可以很快地完成學(xué)習(xí)過(guò)程的。
一定要先易后難,一步一來(lái),比如先搞懂語(yǔ)法,嘗試寫(xiě)一寫(xiě)demo,接著了解高級(jí)特效,實(shí)現(xiàn)高級(jí)特性,然后自己脫離教程寫(xiě)一些代碼,最后做項(xiàng)目,大概是這樣的一個(gè)邏輯。
別看我說(shuō)的簡(jiǎn)單,其實(shí)對(duì)于新人來(lái)說(shuō),要完成這幾道工序并不容易,別看學(xué)點(diǎn)基礎(chǔ)語(yǔ)法沒(méi)什么難度,但是真的要上手實(shí)踐,可能會(huì)遇到很多問(wèn)題,比如環(huán)境配置,IDE安裝和使用,這些搞定之后,代碼語(yǔ)法錯(cuò)誤、編譯錯(cuò)誤、執(zhí)行錯(cuò)誤,對(duì)于新手來(lái)說(shuō)都是很難解決的,如果不借助外力,基本上是無(wú)從下手的。
所以,學(xué)習(xí)編程,沒(méi)有你想象的那么簡(jiǎn)單。
遇到問(wèn)題,不要畏難
就像我剛才所說(shuō),如果在學(xué)習(xí)過(guò)程中遇到困難,可能真的很難獨(dú)立解決,這種時(shí)候應(yīng)該怎么辦呢,如果沒(méi)有人指導(dǎo)你,那么就只能夠硬著頭皮自己解決了,解決的方法無(wú)非就是百度、谷歌,到網(wǎng)上看看有沒(méi)有人遇到和你一樣的問(wèn)題。
如果你覺(jué)得這樣子效率很低,那也可以找一些基礎(chǔ)方面的書(shū)籍先看看,了解基本的編程知識(shí),或者看一些網(wǎng)課,加深對(duì)知識(shí)的理解,然后再去嘗試各種代碼實(shí)踐,可能會(huì)讓你更加順利一些。
重視基礎(chǔ),才能走的更遠(yuǎn)
很多人覺(jué)得學(xué)習(xí)編程只需要?jiǎng)偛盼艺f(shuō)的那幾步,學(xué)習(xí)語(yǔ)法、寫(xiě)簡(jiǎn)單demo,然后學(xué)習(xí)高級(jí)特性,最后著手做項(xiàng)目就可以了。但是這只是最初級(jí)的程序員,離開(kāi)這門語(yǔ)言,他們可能就什么都不剩下了。
沒(méi)有計(jì)算機(jī)基礎(chǔ)的支撐,他們不明白計(jì)算機(jī)網(wǎng)絡(luò)的原理,不知道為什么要考慮網(wǎng)絡(luò)編程,不明白為什么要考慮DNS、負(fù)載均衡,不知道操作系統(tǒng)的原理,就不能夠理解服務(wù)器出問(wèn)題時(shí)的根本原因,無(wú)法排查,不懂得數(shù)據(jù)結(jié)構(gòu)和算法,就不明白為什么有的程序是這么寫(xiě)的,有的集合類是這么設(shè)計(jì)的。
重視基礎(chǔ),是每一個(gè)程序員都要做到的一點(diǎn),離開(kāi)基礎(chǔ),其他的東西都是空中樓閣,基礎(chǔ)不扎實(shí),你連談?wù)摷夹g(shù)時(shí)也不會(huì)有底氣,更別說(shuō)談架構(gòu)、談業(yè)務(wù)場(chǎng)景了。