最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

知乎 | 明明可以調(diào)庫,為什么還要學(xué)算法呢?

2021-06-02 10:16 作者:愛數(shù)據(jù)分析社區(qū)  | 我要投稿

算法是一個(gè)后期技能,前期看起來廢柴不代表不重要,它越到后期威力越大。最后放上這篇回答下的高票回答做個(gè)結(jié)尾罷。

?

最近在知乎里看到了一個(gè)很有意思的問題,很有感觸,就和大家簡(jiǎn)單聊聊。

其實(shí)不只是在知乎,平時(shí)也有很多同學(xué)問過我這個(gè)問題,尤其是在他們刷LeetCode刷得頭疼,不知道這些題目刷了有什么用的時(shí)候,估計(jì)這種心理最是明顯。

在我看來,這個(gè)問題之所以會(huì)產(chǎn)生,只有一個(gè)原因就是搞錯(cuò)了學(xué)算法的目的。因?yàn)槲覀儚男〉酱蠼邮艿慕逃际菍W(xué)以致用,學(xué)了就是要拿來用的。反之一個(gè)東西如果沒有用,那么我們自然也沒有必要學(xué),因此還產(chǎn)生了屠龍術(shù)這么一個(gè)專有詞語,描繪那些高大上但是卻毫無卵用的技能。


而算法呢就是這樣一個(gè)學(xué)來乍一看和仔細(xì)一看都沒什么用的技能,很多人不敢承認(rèn)這一點(diǎn),可能是擔(dān)心真相打擊大家的積極性,也可能是深受學(xué)以致用這一傳統(tǒng)觀點(diǎn)的束縛。所以有很多大V強(qiáng)行列舉出許多算法的用處來證明學(xué)算法是有用的,你看某某場(chǎng)景某某場(chǎng)景就用到了某某算法,你不學(xué)能行么?

但實(shí)際上這些用到高端算法的場(chǎng)景鳳毛麟角,我就不談acm-icpc競(jìng)賽當(dāng)中用到的一些高級(jí)算法和數(shù)據(jù)結(jié)構(gòu)了,很多我高中競(jìng)賽時(shí)候?qū)W的算法至今也沒有在工作當(dāng)中用過,哪怕一次。即使是機(jī)器學(xué)習(xí)、人工智能這些新興算法也是一樣,在日常工作當(dāng)中在有現(xiàn)成的庫或者是其他人已經(jīng)開發(fā)好了的模型的時(shí)候,我們也是不會(huì)自己從頭到尾復(fù)現(xiàn)論文或者是自己做一個(gè)模型的。原因也很簡(jiǎn)單,因?yàn)槌杀?。有現(xiàn)成的用當(dāng)然要比自己重新寫一個(gè)更快。


當(dāng)然這只是我的個(gè)例,但也看得出來算法的實(shí)用性真的不強(qiáng)的。所以相比于強(qiáng)行給自己或者是初學(xué)者找學(xué)算法的借口,倒不如大大方方地承認(rèn),算法這個(gè)東西它本身就不是一個(gè)實(shí)用性非常強(qiáng)的領(lǐng)域。所以問題來了,既然不是為了實(shí)用,那么我們?yōu)槭裁从忠獙W(xué)習(xí)它呢?

這個(gè)問題的答案和我們?yōu)槭裁匆獙W(xué)數(shù)學(xué)是一樣的,反智主義者們經(jīng)常掛在嘴邊的一句話就是買菜只要十以內(nèi)的加減法,高數(shù)這種東西學(xué)來干嘛。


碰到這樣的問題去糾結(jié)是不是真的用不到?jīng)]有意義就走偏了,很多看起來用不到的東西可能只是時(shí)候未到。這個(gè)和玩游戲有點(diǎn)像,有些英雄是前期英雄有些是后期英雄,有些技能前期的時(shí)候簡(jiǎn)直是bug,到了后期廢柴的不行。同樣自然也會(huì)有一些技能前期的時(shí)候看起來平淡無奇,但是到了后期至關(guān)重要。游戲還有可能前期結(jié)束戰(zhàn)斗,但人生總是要拼后期的。等到了后期階段的時(shí)候再點(diǎn)后期的技能往往就晚了,技能點(diǎn)不夠用了,需要我們前期的時(shí)候提前布局。


比如高數(shù)就是一個(gè)非常經(jīng)典的例子,幾乎所有理工類的專業(yè)深入研究之后都需要用到高數(shù),微積分可以算電流、電容、能量,還能算宇宙的各種粒子的運(yùn)動(dòng)情況,還能算化學(xué)反應(yīng)的進(jìn)行程度,也可以推導(dǎo)神經(jīng)網(wǎng)絡(luò)的梯度公式……這么多領(lǐng)域當(dāng)中只要涉及一個(gè),就必須要用到高數(shù),這個(gè)時(shí)候你還能說高數(shù)沒有用嗎?


算法也是一樣的,殊途同歸。算法培養(yǎng)的是我們的思維,既給我們提供了種種可以參考的模板、腳手架,也提升了我們思維的能力。舉個(gè)簡(jiǎn)單的例子,當(dāng)你理解了各種復(fù)雜的樹結(jié)構(gòu),理解了平衡樹各種旋轉(zhuǎn)操作,再去學(xué)決策樹、隨機(jī)森林的時(shí)候,你會(huì)自然而然融會(huì)貫通,原理一看瞬間理解。因?yàn)槟愕哪X子里有了參考,可以瞬間建立聯(lián)系,自然學(xué)東西更快,理解得更深刻。


在當(dāng)今時(shí)代,大數(shù)據(jù)、大流量是主流,幾乎無論什么崗位到了后來都離不開系統(tǒng)設(shè)計(jì)。而系統(tǒng)設(shè)計(jì)不是說閉門造車,隨便設(shè)計(jì)一下可以用就行。不但要包含業(yè)務(wù)發(fā)展需要的所有功能,還需要為將來的拓展做好預(yù)留和準(zhǔn)備,并且還要注意一些技術(shù)痛點(diǎn)。到了這個(gè)時(shí)候,你就會(huì)發(fā)現(xiàn)對(duì)高并發(fā)的各種中間件、框架、系統(tǒng)設(shè)計(jì)沒有深入的思考和理解是玩不轉(zhuǎn)的。強(qiáng)行設(shè)計(jì)只會(huì)紙上談兵。


因?yàn)樵O(shè)計(jì)出來的系統(tǒng)運(yùn)行的環(huán)境絕不是理想環(huán)境,一定會(huì)有各種意想不到的情況發(fā)生。像是什么內(nèi)存爆了,系統(tǒng)扛不住了,延遲太大了下游抱怨了等等等等。相比于設(shè)計(jì)系統(tǒng),解決這些意想不到的問題才是真正的考驗(yàn)。因?yàn)槲覀兛吹降默F(xiàn)狀都是表象,真正引發(fā)問題的核心本質(zhì)是需要自己通過理解去捕捉的。內(nèi)存不夠就加內(nèi)存,并發(fā)扛不住就加機(jī)器只會(huì)欠下越來越多的技術(shù)債,直到崩盤的那天。


我們拿后端舉個(gè)例子,對(duì)于后端工程師來說,前期的時(shí)候幾乎和算法沒什么關(guān)系,無非是做做增刪改查,寫寫業(yè)務(wù)邏輯。

但是真到了需要系統(tǒng)設(shè)計(jì)的時(shí)候,你會(huì)發(fā)現(xiàn)分布式和并發(fā)是一個(gè)繞不開的問題。而并發(fā)和分布式天生又會(huì)產(chǎn)生許多問題,比如著名的一致性問題。舉一些現(xiàn)實(shí)一點(diǎn)例子,比如當(dāng)用戶多次提交或者是網(wǎng)絡(luò)延遲導(dǎo)致數(shù)據(jù)重復(fù)發(fā)送的時(shí)候,怎么保證邏輯上最終只會(huì)執(zhí)行一次?對(duì)于一個(gè)分布式系統(tǒng)來說怎么加鎖?怎么保證多臺(tái)機(jī)器之間的數(shù)據(jù)、狀態(tài)共享?

而分布式的一系列問題、中間件、工具以及理論,本質(zhì)上就是一系列算法、數(shù)據(jù)結(jié)構(gòu)和軟件工程的結(jié)合體。像是SkipList、B+樹、LSMT、布隆過濾器等等數(shù)據(jù)結(jié)構(gòu)都是在分布式場(chǎng)景當(dāng)中有實(shí)際作用的,顯然這些內(nèi)容沒有一定的算法和數(shù)據(jù)結(jié)構(gòu)功底,幾乎不可能吃透。


這就是為什么大家叫得出名的外企那么看重候選人的算法能力,甚至很少考察其他方面。而且有些企業(yè)的崗位分配也不是固定的,我就聽說過有后端出身的被分配去了前端組,我也曾替他擔(dān)心過,但很快就聽說他做得有模有樣照樣風(fēng)生水起。其實(shí)想想也不意外,能硬著頭皮把這么晦澀算法啃下來的人,去理解業(yè)務(wù)邏輯、一些框架和工具的使用,顯然毫無壓力。

說了這么多,其實(shí)都是在說一點(diǎn),算法是一個(gè)后期技能,前期看起來廢柴不代表不重要,它越到后期威力越大。最后放上這篇回答下的高票回答做個(gè)結(jié)尾罷。


關(guān)注我即刻了解更多數(shù)據(jù)分析知識(shí)

掃描碼即可加入數(shù)據(jù)分析社群


知乎 | 明明可以調(diào)庫,為什么還要學(xué)算法呢?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
洪雅县| 个旧市| 琼结县| 兴城市| 伊川县| 施甸县| 武邑县| 赤壁市| 财经| 万源市| 乾安县| 江孜县| 乃东县| 长春市| 防城港市| 东兰县| 开化县| 伊宁县| 广灵县| 进贤县| 镇赉县| 万载县| 吉隆县| 荥阳市| 奈曼旗| 将乐县| 南和县| 沙河市| 北流市| 彭阳县| 淮滨县| 莱州市| 温泉县| 平武县| 饶平县| 孟州市| 平邑县| 沙河市| 呼玛县| 涡阳县| 合水县|