大數(shù)據(jù)開(kāi)發(fā)技術(shù)發(fā)展越來(lái)越成熟,學(xué)習(xí)大數(shù)據(jù)開(kāi)發(fā)的小伙伴也越來(lái)越多,同時(shí),在這些小伙伴中有大部分的人會(huì)選擇參加大數(shù)據(jù)培訓(xùn)的方式來(lái)學(xué)習(xí)因?yàn)榇髷?shù)據(jù)開(kāi)發(fā)技術(shù)所包含的編程技術(shù)知識(shí)比較復(fù)雜,只有選擇一個(gè)比較適合自己的學(xué)習(xí)方式,才能更快地的入門(mén)學(xué)習(xí),掌握大數(shù)據(jù)的開(kāi)發(fā)技術(shù)基礎(chǔ)知識(shí),然而,算法的學(xué)習(xí)是比較頭疼的一件事,那該怎樣去學(xué)習(xí)好算法呢?
小伙伴在學(xué)習(xí)算法之前是需要扎實(shí)的學(xué)習(xí)基礎(chǔ)知識(shí),在掌握了這些知識(shí)之后,小伙伴可以通過(guò)大數(shù)據(jù)培訓(xùn)機(jī)構(gòu)的一些相關(guān)的題目或自己在網(wǎng)上搜集各種各樣的題,同時(shí)與培訓(xùn)機(jī)構(gòu)老師或網(wǎng)友進(jìn)行各種各樣的討論,這樣才是比較高效的。小伙伴要知道把底子打好之后,對(duì)于專(zhuān)項(xiàng)算法的學(xué)習(xí)就得心應(yīng)手了,而且會(huì)學(xué)的很快。 對(duì)于很龐大的算法,找例子來(lái)引導(dǎo)自己的思路,一點(diǎn)一點(diǎn)的接近算法的核心,這種方式還是比較不錯(cuò)的。唯一需要注意的是,一定要寫(xiě)代碼,光看沒(méi)有用的。對(duì)于算法的學(xué)習(xí),大體上分為以下幾個(gè)階段:
1.對(duì)于某一個(gè)具體的算法,小伙伴首先要搞清楚這個(gè)算法在大數(shù)據(jù)培訓(xùn)學(xué)習(xí)過(guò)程中能夠解決什么問(wèn)題,可能是實(shí)現(xiàn)一個(gè)具體的功能,也可能是在某些方面,比如時(shí)間復(fù)雜度或者空間復(fù)雜度方面很卓越,總之搞清楚這個(gè)算法被研究出來(lái)的目的是什么。
2.要弄清楚這個(gè)算法的生存環(huán)境,也就是看看你在大數(shù)據(jù)培訓(xùn)機(jī)構(gòu)學(xué)習(xí)中,研究的東西是不是對(duì)別的知識(shí)有依賴,應(yīng)該先把底層依賴的知識(shí)理解并掌握。這些問(wèn)題都解決之后,就進(jìn)入到算法本身的學(xué)習(xí),理解一個(gè)算法是一件非常辛苦的事情,剛開(kāi)始看必然會(huì)產(chǎn)生很多的困惑,比如經(jīng)常會(huì)懷疑作者講述的內(nèi)容的重要性?這些內(nèi)容和這個(gè)算法有什么聯(lián)系呢?經(jīng)常會(huì)有這種摸不著頭腦的感覺(jué),其實(shí)在做這些鋪墊都是為了建立起描述算法主要內(nèi)容的基礎(chǔ),只有接受和理解這些基礎(chǔ),才能逐漸觸碰到算法的精髓,所以耐心是很重要的。
3.算法的主要過(guò)程看完之后,往往還是會(huì)感到困惑,主要是不知道這個(gè)過(guò)程好在哪,這就進(jìn)入了下一個(gè)階段,理解作者對(duì)這個(gè)過(guò)程在功能性或者效率卓越這件事上的解釋和證明。這才真正觸碰到算法精髓的部分,也就是深度的理解算法的主要過(guò)程所帶來(lái)的好處,這才是鍛煉人理解能力的地方。
4.上面幾點(diǎn)是算法學(xué)習(xí)階段的過(guò)程了,接下來(lái)就是研究算法的代碼實(shí)現(xiàn),自己設(shè)計(jì)測(cè)試用例親自跑一下代碼,以及從代碼運(yùn)行時(shí)間的角度分析這個(gè)算法的優(yōu)勢(shì),這也是加深對(duì)算法的理解的過(guò)程。還要配合相應(yīng)的題目練習(xí),讓自己通過(guò)題目練習(xí)的方式,會(huì)用、善用學(xué)習(xí)到的算法,并對(duì)這個(gè)算法產(chǎn)生一定的敏感程度,具體是指看到某些題目時(shí),能夠根據(jù)題目的特點(diǎn),產(chǎn)生與該算法的對(duì)應(yīng),也就是具備舉一反三的能力。
在以上幾個(gè)階段的學(xué)習(xí)過(guò)程中,小伙伴一定要根據(jù)相應(yīng)的實(shí)例來(lái)引導(dǎo)學(xué)習(xí),當(dāng)然也可以進(jìn)行模仿練習(xí),學(xué)習(xí)過(guò)程中尤為重要的是要有舉一反三的能力。