知之為知之症虑,不知為不知缩歪,是知也。
在近幾年的學(xué)習(xí)生活中谍憔,愈發(fā)感到同樣的學(xué)習(xí)課題匪蝙,不同人之間學(xué)習(xí)深度與理解水平的巨大差異,在技術(shù)領(lǐng)域习贫,或者說(shuō)在筆者相對(duì)比較熟悉的算法領(lǐng)域逛球,體現(xiàn)尤為明顯。不理解技術(shù)的本質(zhì)苫昌、不通曉其底層是不行的颤绕。徹底理解了底層,才算是掌握了核心科技蜡歹。
從是否足夠底層的視角屋厘,粗略來(lái)看,大致有四層學(xué)習(xí)境界月而。
包裝層:功能性胡扯汗洒。如今的大學(xué)畢業(yè)生,縱使頭頂著985211父款,雙一流或者海歸的頭銜溢谤,大部分也不過(guò)只能停留在包裝層的水平,只能談?wù)勀w淺的功能性的胡扯憨攒。譬如某某技術(shù)是用來(lái)做什么用的世杀,往往說(shuō)的天花亂墜,能夠達(dá)成何等何等的偉業(yè)肝集,渲染一波學(xué)術(shù)的氣息瞻坝,給不懂的外行人士裝一裝罷了。遇到同類杏瞻,一般大作相見恨晚之態(tài)所刀,開始心照不宣的商業(yè)互吹;遇到真正的專家捞挥、高手浮创,則狀若過(guò)街老鼠,避之不及砌函,唯恐被揭穿斩披,也有少許尚有廉恥心者溜族,禁聲默然;最無(wú)可奈何是一小撮最無(wú)恥者垦沉,對(duì)高人開始不忍直視的跪舔煌抒。
概念層:了解技術(shù)的優(yōu)缺點(diǎn),性能的主要影響因素乡话,會(huì)定性分析摧玫。到這個(gè)階段,也許就可以去參加產(chǎn)品發(fā)布會(huì)了绑青,應(yīng)對(duì)各界人士的問(wèn)題至少可以做到有來(lái)有回诬像,不算是個(gè)門外漢了。但是在具體的深入的技術(shù)層面闸婴,這個(gè)水平還僅僅是個(gè)大概了解罷了坏挠。
原理層:能畫出流程圖,通曉所有的理論過(guò)程邪乍,努力一下降狠,還可以給出偽代碼。到這個(gè)階段庇楞,才算是真正沾了底層的邊了榜配。如果某門專業(yè)課程的學(xué)生在結(jié)課時(shí)都能達(dá)到這層境界,那主講老師真的是一等一的教學(xué)高手了吕晌〉叭欤可惜,如今的學(xué)生經(jīng)常是做到這一層的都是少部分睛驳。
數(shù)理層/代碼層:掌握了算法的數(shù)學(xué)本質(zhì)烙心,能夠獨(dú)立進(jìn)行各種定量分析,同時(shí)有能力執(zhí)行代碼重現(xiàn)乏沸,如此便是觸及了真正的底層境界淫茵。數(shù)理與代碼并不是上下級(jí)的理解層級(jí)而應(yīng)是水乳交融不可分割的。而有一類常見的現(xiàn)象卻是蹬跃,明白數(shù)學(xué)推導(dǎo)的人匙瘪,卻怎樣也憋不出代碼,而完全看不懂?dāng)?shù)學(xué)推導(dǎo)的程序員蝶缀,卻完美復(fù)現(xiàn)了繁復(fù)的算法原理辆苔。這種錯(cuò)位實(shí)際上源自不同算法對(duì)數(shù)理和代碼的水平要求不盡相同。對(duì)于前者扼劈,這就屬于編程水平的限制,并非理解問(wèn)題菲驴,譬如Kmeans聚類算法荐吵,就屬于數(shù)理易于理解而在代碼實(shí)現(xiàn)上細(xì)節(jié)繁雜。對(duì)于后者,完全屬于代碼易于實(shí)現(xiàn)而造成的表面現(xiàn)象先煎,只要具有一定代碼水平贼涩,并不需要透析數(shù)學(xué)本質(zhì)即可將算法照貓畫虎,甚至還虎虎生風(fēng)薯蝎,比如某些圖像處理算法遥倦。
學(xué)無(wú)止境,在這之后占锯,應(yīng)該還有更加深入的境界袒哥,隨心所欲的可視化,甚至對(duì)算法的可拓展性實(shí)用性進(jìn)行評(píng)估消略,才是更為“大成”的境界堡称。
吾生也有涯,而知也無(wú)涯艺演。底層之路却紧,君問(wèn)歸期未有期。