国产精品无码一区二区三区太,亚洲一线产区二线产区区别,欧美A区,人妻jealousvue人妻

×

Hacker News熱議:封裝包那么多,程序員還用學(xué)習(xí)算法嗎?

分類:互聯(lián)網(wǎng)熱點(diǎn) 編輯:it知事 瀏覽量:1
2020-07-13 16:55:23

在各種各樣的算法實(shí)現(xiàn)、軟件包開(kāi)源可用的當(dāng)下,算法對(duì)于程序員而言還重要嗎?

如果你是幾十年前的程序員,那你一定精通于算法,并經(jīng)常需要自己編寫(xiě)算法。但在今天,算法已經(jīng)變成了一種「商品」,從業(yè)者都在使用現(xiàn)成的軟件包和購(gòu)買的算法。甚至有人提出這種觀點(diǎn):「機(jī)器學(xué)習(xí)不需要數(shù)學(xué),很多算法封裝好了,調(diào)個(gè)包就行」。

時(shí)代真的變了嗎?近日,一篇相關(guān)主題的文章在 Hacker News 網(wǎng)站引發(fā)討論。

以下是文章的主要內(nèi)容:

我剛開(kāi)始做軟件開(kāi)發(fā)時(shí),開(kāi)發(fā)者必須自己實(shí)現(xiàn)大部分用到的算法。硬件供應(yīng)商會(huì)提供一些庫(kù),但是當(dāng)時(shí)整體的開(kāi)發(fā)氛圍就是自己編寫(xiě)算法(除了技術(shù)性較強(qiáng)且復(fù)雜的數(shù)學(xué)函數(shù))。

開(kāi)發(fā)者大多都會(huì)閱讀高德納(Donald Knuth)的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》,對(duì)于一步一步實(shí)現(xiàn)算法,這本書(shū)是很可靠的閱讀資源。我還記得看到過(guò)一個(gè)庫(kù)的副本,是用很小的字母手寫(xiě)了算法的更新,并將其粘貼到頁(yè)面的上一頁(yè)文本上。

那個(gè)時(shí)候,算法非常重要,因?yàn)橛?jì)算機(jī)的計(jì)算速度不夠快,無(wú)法以可接受的速率解決常見(jiàn)問(wèn)題。普通指令的執(zhí)行時(shí)間和指令時(shí)間,以及給定 CPU 上可用的寄存器數(shù)量,是開(kāi)發(fā)者經(jīng)常討論的話題。內(nèi)存容量通常是以千字節(jié)為單位的,每個(gè)字節(jié)都算在內(nèi)。

那是算法的時(shí)代。

隨著內(nèi)存容量從以兆字節(jié)為單位變成了以千兆字節(jié)為單位,開(kāi)源商業(yè)化算法和計(jì)算機(jī)的存儲(chǔ)速度提高了非常多。

在算法的實(shí)現(xiàn)方面,現(xiàn)在的開(kāi)發(fā)者擁有大量選擇。有那么多其他問(wèn)題需要解決,為什么要浪費(fèi)時(shí)間來(lái)實(shí)現(xiàn)算法呢?

現(xiàn)在,算法就像一座橋上的螺栓,非常重要但無(wú)人問(wèn)津。今天的開(kāi)發(fā)者更愿意討論故事點(diǎn)、功能、商業(yè)邏輯等等。給出一個(gè)定義明確的問(wèn)題,許多開(kāi)發(fā)者現(xiàn)在更傾向于查找已有的包,而不是從頭開(kāi)始編寫(xiě)代碼。

仍然會(huì)有新的算法被開(kāi)發(fā)出來(lái),研究人員持續(xù)對(duì)現(xiàn)有算法進(jìn)行改進(jìn)。但這是相對(duì)小眾的。

有些公司的算法不是商品。例如谷歌,以谷歌的規(guī)模,即使看似非常小的改進(jìn),也可以為公司節(jié)省數(shù)百萬(wàn)美元(這純粹是因?yàn)榫揞~數(shù)字的一小部分也是很多的)。而對(duì)于有些公司,算法開(kāi)發(fā)可能是其核心競(jìng)爭(zhēng)力的一部分,算法的非商品性讓這樣的公司在競(jìng)爭(zhēng)中占據(jù)優(yōu)勢(shì),而在非核心競(jìng)爭(zhēng)力中算法被看作商品。

高德納的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》在使算法變得普遍可用方面發(fā)揮了重要作用。盡管這本書(shū)經(jīng)常被引用,但是我猜想現(xiàn)在很少有人會(huì)讀它了。

幾年前,我突然發(fā)現(xiàn)自己正在看的軟件工程書(shū)籍竟然沒(méi)有專門的算法章節(jié)。

今天,我們處在軟件開(kāi)發(fā)生態(tài)系統(tǒng)的時(shí)代。

算法還沒(méi)有完全走向默默無(wú)聞,它必須等到人們只需將需求告訴計(jì)算機(jī),而不需要關(guān)心實(shí)現(xiàn)細(xì)節(jié)時(shí)(或遺傳算法編程發(fā)展得更好時(shí)),才能真正退出歷史舞臺(tái)。

開(kāi)發(fā)者們?cè)趺纯矗?

「算法還重要嗎?」這個(gè)問(wèn)題由來(lái)已久,早已成為開(kāi)發(fā)者討論的焦點(diǎn),大家對(duì)此的態(tài)度也各不相同。

即使有一天,計(jì)算機(jī)能夠通過(guò)語(yǔ)音轉(zhuǎn)代碼的形式來(lái)編譯算法,那時(shí)程序員的工作可能就是為計(jì)算機(jī)朗讀待實(shí)現(xiàn)的算法。

如今與 80 年代相比,在絕對(duì)數(shù)量上,有更多的開(kāi)發(fā)人員在從事算法編寫(xiě)工作,雖然,更高比例的開(kāi)發(fā)人員從不編寫(xiě)任何算法。但如果有「算法時(shí)代」,我認(rèn)為就是現(xiàn)在。今天我們所擁有的算法比以往任何時(shí)候都要多。

有人將算法與攝影類比,解釋了算法行業(yè)正在經(jīng)歷的變革:

現(xiàn)在這個(gè)時(shí)代,我們可以在幾分鐘內(nèi)找到任何符合自己想象的圖片。所以從商業(yè)的視角來(lái)看,攝影作為一門純藝術(shù),其價(jià)值已經(jīng)被消解了。但為什么還有人聘請(qǐng)攝影師呢?

攝影師收取的報(bào)酬不在于「交付最好的圖像」,而在于為客戶定制想要的照片主題及效果。我認(rèn)為這也是軟件行業(yè)的現(xiàn)狀,我們不是在算法的「藝術(shù)水平」上登峰造極,而是要針對(duì)特定業(yè)務(wù)和需求給出定制解決方案。這不是宏觀層面的創(chuàng)新,而是微觀層面的創(chuàng)新。

時(shí)代變了,也意味著程序員必須要調(diào)整自己的目標(biāo)所在?!笇?duì)于許多人來(lái)說(shuō),編寫(xiě)純粹、通用、美妙的東西會(huì)更有吸引力。遺憾的是,我們可能沒(méi)有機(jī)會(huì)寫(xiě)出像谷歌開(kāi)源的軟件包那么好的東西了?!?

有人表示,要不要自己編寫(xiě)最合適的算法是自己的選擇,但如果不影響最后的實(shí)現(xiàn)結(jié)果,為什么還要浪費(fèi)時(shí)間去做這樣簡(jiǎn)單低級(jí)的工作呢?

也有人認(rèn)為:封裝包的確讓他們不需要再做一些低級(jí)繁瑣的工作,但是實(shí)際工作中仍然需要編寫(xiě)一些算法,因?yàn)榭傆幸恍](méi)有封裝好的算法需要開(kāi)發(fā)者自己實(shí)現(xiàn)。

算法技能永遠(yuǎn)不會(huì)過(guò)時(shí)。的確,目前一些高質(zhì)量的算法實(shí)現(xiàn)具有廣泛可用性,可能不再需要手工實(shí)現(xiàn)此類算法。但是開(kāi)發(fā)人員不僅需要了解數(shù)據(jù)結(jié)構(gòu)支持的操作,還必須要了解其復(fù)雜性。只有這樣,才能夠滿足應(yīng)用程序自身的復(fù)雜性需求。

「知其然,知其所以然」在當(dāng)下還是金玉良言嗎?便捷可用的封裝包是否會(huì)使算法衰落?這值得我們思考。

【編輯推薦】

<div> 一個(gè)程序員老兵的思考國(guó)外程序員的吶喊:遠(yuǎn)程可以,降薪不行,國(guó)內(nèi)網(wǎng)友:遠(yuǎn)程 007 不是鬧著玩的寫(xiě)給年輕程序員:37歲的我,正在找工作!程序員喜大普奔 Linux基金會(huì)確認(rèn)開(kāi)源技術(shù)不受美國(guó)出口管制如何看待程序員年齡越大越貶值的問(wèn)題


聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)

送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)

需注明出處:新網(wǎng)idc知識(shí)百科

免費(fèi)咨詢獲取折扣

Loading