自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

10年后編程還有意義嗎?

開發(fā) 后端 前端
現(xiàn)在AI這么厲害,連李世石都擊敗了,將來它會(huì)不會(huì)自己學(xué)會(huì)編程,取代程序員的位置呢?

這個(gè)是 Quora 上提出的一個(gè)問題。隨著 AI 在近年來成為熱門話題,并且在 AlphaGo 自學(xué)圍棋擊敗了人類近 10 年最好的圍棋選手之后,有人開始提出這個(gè)問題。具體來說這個(gè)問題有三層意思:

  1. 到 2025 年程序員還有沒有用,到那個(gè)時(shí)候所謂的 “程序員” 是指什么?

  2. 代碼本身還有沒有用,到那時(shí)候代碼會(huì)變成什么樣子?

  3. 機(jī)器智能會(huì)不會(huì)取代(目前意義的)代碼或程序員兩者的其中一個(gè)或者全部?

大家基本上傾向于認(rèn)為,到 2025 年時(shí)編程仍然有意義,但有人說 2025 年以后情況可能就不是這樣了。 

 

而那些認(rèn)為編碼將死、程序員將失業(yè)的人的理由是機(jī)器智能會(huì)像今天的程序員一樣具備自學(xué)編程的能力。比如說 AlphaGo 擊敗李世石就是一個(gè)機(jī)器學(xué)習(xí)能力的證據(jù)。

我們摘編了一些人的回答,也希望聽聽你們的看法。

Code.org CEO Hadi Partovi:

絕對(duì)的。編程不僅在 10 年內(nèi)還有意義,而且還會(huì)比今天更重要。不過編程語言的語法會(huì)變得越來越簡(jiǎn)單。剛開始的時(shí)候,編程是在紙板上面打孔(可編程打孔機(jī))。然后形式變成了這個(gè)樣 子:00101010101。而現(xiàn)在看起來更像英語。隨著編程語言變得越來越像英語,這種東西學(xué)習(xí)起來會(huì)越來越容易,越來越不神秘,所以也會(huì)越來越流行。 同時(shí),隨著計(jì)算機(jī)滲透到我們的日常生活里面,告訴這些設(shè)備我們想做什么,發(fā)明新的用例也會(huì)變得越來越流行。

但是在可以用自然語言跟機(jī)器進(jìn)行對(duì)話并且讓它們完美理解并執(zhí)行從未訓(xùn)練過的復(fù)雜任務(wù)這些事情上我們還有很長(zhǎng)的路要走(好幾十年)。當(dāng)然,一些簡(jiǎn)單的、預(yù)編程好的任務(wù)是沒問題的,比如 “告訴我去加油站最近的方向。”

但是要想教計(jì)算機(jī)做從來沒做過的事情,還是需要對(duì)如何跟這種特殊的計(jì)算機(jī)程序員進(jìn)行溝通有特殊的理解,以及要有描述算法的計(jì)算思維。如何設(shè)計(jì)循環(huán)或條件供計(jì)算機(jī)執(zhí)行任務(wù)或進(jìn)行決策的語法也許會(huì)變,但底層的基礎(chǔ)概念估計(jì)很久都不會(huì)消失。

自 1999 年開始就一直開發(fā) web 門戶的 Christoph Richter:

Fred Brooks 1975 年的一篇文章說軟件開發(fā)永遠(yuǎn)都是復(fù)雜的。雖然有一些東西可能會(huì)變?nèi)菀?,但核心的東西永遠(yuǎn)都不會(huì)容易?!度嗽律裨挕愤@本書說的就是軟件工程這項(xiàng)核心挑戰(zhàn)一直都難以克服—沒有銀彈,40 年過去了,至今情況依然如此。

Fred Brooks 1975 年的一篇文章說軟件開發(fā)永遠(yuǎn)都是復(fù)雜的。雖然有一些東西可能會(huì)變?nèi)菀祝诵牡臇|西永遠(yuǎn)都是很難的?!度嗽律裨挕愤@本書被譽(yù)為 “軟件工程的圣經(jīng)”,40 年過去了,那部書里面的觀點(diǎn)仍然經(jīng)得起考驗(yàn)。

有 30 年技術(shù)從業(yè)經(jīng)驗(yàn),曾當(dāng)過工程師、產(chǎn)品主管、CTO、CEO 的 Greg Kostello 認(rèn)為:

10 年內(nèi)編程還是有意義的,但是 20 年內(nèi)還有可能性,但 30 年內(nèi)可能性也許沒有了。

在機(jī)器學(xué)習(xí)的推動(dòng)下我們現(xiàn)在進(jìn)入了軟件開發(fā)的新時(shí)代。IBM 的 Watson 和 Google 的 AlphaGo 已經(jīng)證明數(shù)據(jù)>算法?;蛘吒_地說,數(shù)據(jù)就是算法。但是現(xiàn)在你需要非常特殊的技能才能開發(fā)出機(jī)器學(xué)習(xí)解決方案。工程師和數(shù)據(jù)科學(xué)家仍然需要對(duì)機(jī)器 學(xué)習(xí)算法進(jìn)行編程,但最終同樣的系統(tǒng)會(huì)教它們學(xué)會(huì)如何通過分析自己的代碼來改進(jìn)自己。

未來 10 年對(duì)軟件工程師的需求還會(huì)更強(qiáng)勁,因?yàn)槌鮿?chuàng)企業(yè)和大公司都把精力聚焦在把算法驅(qū)動(dòng)應(yīng)用轉(zhuǎn)為數(shù)據(jù)驅(qū)動(dòng)應(yīng)用上。通過固定算法來處理信息安全已經(jīng)太復(fù)雜了,需要 機(jī)器學(xué)習(xí)即時(shí)學(xué)習(xí)并挫敗新的攻擊。當(dāng)然,像無人車這樣的計(jì)劃已經(jīng)在嘗試這方面的努力。Google 無人車到處轉(zhuǎn)悠是因?yàn)樗鼈冃枰占瘮?shù)據(jù)來幫助系統(tǒng)學(xué)習(xí)。但這需要軟件工程師和數(shù)據(jù)科學(xué)家一起協(xié)作來設(shè)計(jì)收集數(shù)據(jù)的系統(tǒng)。他們是這種新辦法的先驅(qū)。

所以在近期對(duì)懂機(jī)器學(xué)習(xí)、知道利用大數(shù)據(jù)、傳感器數(shù)據(jù)以及視覺和語音的軟件工程師的需求會(huì)非常旺盛。如果你能夠及時(shí)調(diào)整自己的技能的話,你的職業(yè)生涯并無近憂。

中期的情況略為模糊一點(diǎn)。從匯編語言、編譯語言到腳本語言,軟件每階段的重新調(diào)整都會(huì)導(dǎo)致對(duì)程序員需求的增加。有點(diǎn)腦子懂基本編程技能的人都能找到 工作。但新的工作需要不同的技能集。如果你在設(shè)計(jì) AI 系統(tǒng),高等數(shù)學(xué)是必要條件之一。如果你用 AI 系統(tǒng),理解如何有效利用數(shù)據(jù)就很重要。像 IBM、微軟和 Google 這樣的公司都在設(shè)法讓這些系統(tǒng)對(duì)并不掌握那些技能的程序員來說更容易使用,這就導(dǎo)致了近期內(nèi)變成工作崗位的爆發(fā)。而且由于現(xiàn)在產(chǎn)品設(shè)計(jì)師可以從更高的層次 解決問題,制定智能解決方案,可以完成的事情的范圍將會(huì)擴(kuò)大。但是,那些技能不是入門級(jí)的。如果你對(duì)抽象思維和跟數(shù)據(jù)打交道不熟,那你的工作就跟無人車變 得無所不在之后的 Uber 司機(jī)崗位一樣岌岌可危。

從長(zhǎng)期來看,應(yīng)用會(huì)自己寫自己。問題是,應(yīng)用設(shè)計(jì)是由可最大發(fā)揮 AI 系統(tǒng)效能(因?yàn)槔斫鈫栴}解決機(jī)制)的程序員來做還是由不編程但擅長(zhǎng)描述待解決問題的產(chǎn)品設(shè)計(jì)師來做,還是會(huì)涉及到其他技能?這個(gè)我還看不清楚。

John Brothers,有 20 年以上經(jīng)驗(yàn)的軟件開發(fā)者和架構(gòu)師:

到 2025 年我們不僅還需要軟件開發(fā)者,而且我覺得到時(shí)候軟件開發(fā)可能還會(huì)成為地球上面最后一項(xiàng) “有用” 的工作。當(dāng)然,“開發(fā)驅(qū)動(dòng)機(jī)器人的軟件” 是未來這種工作的一部分。

隨著時(shí)間的推移,我們發(fā)現(xiàn)可以有越來越多的方式來用軟件替代過去的腦力勞動(dòng)。認(rèn)為這種現(xiàn)象未來會(huì)停止出現(xiàn)是沒有理由的。

反對(duì)者可能會(huì)說:“你怎么能設(shè)計(jì)一個(gè)程序來替代腦外科醫(yī)生呢?” 我的回答是:“不知道。但你知道什么事情比腦外科手術(shù)更難嗎?創(chuàng)建一套可捕捉腦科手術(shù)涉及的所有關(guān)鍵決策、啟發(fā)試探法以及算法的邏輯模型。” 換句話說,很多任務(wù) double 很難,但是在軟件中捕捉那些任務(wù)更難。只要想想你就會(huì)發(fā)現(xiàn)只要有難度的任務(wù)要進(jìn)行自動(dòng)化,就會(huì)有軟件開發(fā)者去進(jìn)行嘗試。比方說,地球上最后一項(xiàng)工作的自動(dòng) 化(注:這可真是程序員的自殺式工作?。?。

有人可能會(huì)說:“未來只要有合適的工具,編程應(yīng)該是很容易的事情。” 知道我怎么想嗎?我想為你祈禱。

以為編程可以做得很簡(jiǎn)單的看法實(shí)際上非常目光短淺。他們的依據(jù)大概是這樣的:“X 類問題很容易建模。因?yàn)?,任何人只要有合適的指導(dǎo),都能利用軟件對(duì)該問題建模。”

對(duì)于特定類型的問題來說也許是可以的。但是軟件開發(fā)有趣的地方在于我們?cè)诓粩嘀圃煨碌膯栴}類型,我們制造問題的速度跟找到老問題的自動(dòng)化解決方案的速度一樣快(如果說不是更快的話)。

深度學(xué)習(xí)和量子計(jì)算機(jī)都是我們推進(jìn)軟件潛力的例子,這些東西在 20 年前我們還只能想象。而那只是其中兩個(gè)而已—我們今天教計(jì)算機(jī)做的各種事情在過去都只能靠想象。沒有理由認(rèn)為這種情況會(huì)很快停止出現(xiàn)。我們?cè)跀U(kuò)大用軟件可 以做的事情的領(lǐng)域,這種擴(kuò)張的速度要比我們自動(dòng)化現(xiàn)有流程的速度要快。這種情況還將持續(xù)幾十年。

自 1978 年就開始編程的 Steve Traugott:

2025 年編程當(dāng)然還有用,而且作用可能還更大。

我的觀點(diǎn)可能會(huì)孤立無援,這里我補(bǔ)充一些事情希望能有助于說明觀點(diǎn)。至少有一門語言到 2025 年會(huì)發(fā)揮更大作用,到了 2050 年這門語言可能還會(huì)被重度使用,甚至到 2100 年還會(huì)存在。鑒于其部署方式,Javascript 本身幾乎已經(jīng)成為了互聯(lián)網(wǎng)協(xié)議,web 瀏覽器對(duì)它的支持不但是必須而且看起來是沒有限期的。只要它還有瀏覽器支持,web 網(wǎng)站就會(huì)繼續(xù)使用它,導(dǎo)致了對(duì)兼容性期望無休止的循環(huán)。唯一有可能打破這一循環(huán)的是 web 不用了。這樣的事情是不大可能會(huì)發(fā)生的。

不管你喜不喜歡,事實(shí)上 Javascript 已經(jīng)成為了 web 的匯編語言。

剩下的唯一問題是開發(fā)者什么時(shí)候從編寫原生 Javascript 轉(zhuǎn)到寫其他可編譯為 javascript 的語言?怎么轉(zhuǎn)?(類似于過去幾十年從機(jī)器語言轉(zhuǎn)為匯編語言最后再轉(zhuǎn)為 C 的趨勢(shì))

從 JavaScript 轉(zhuǎn)到其他編譯語言的運(yùn)動(dòng)實(shí)際上已經(jīng)在進(jìn)行當(dāng)中,但是更高級(jí)的代碼還是要靠手工編寫(注:所謂由 AI 編寫代碼所以不需要人寫其實(shí)是個(gè)偽命題,其實(shí)人向 AI 引擎描述問題還是通過編碼來完成的,比方說類似 prolog、lisp 或別的特定領(lǐng)域語言),仍然需要編譯為 JavaScript 才能在瀏覽器執(zhí)行。同時(shí)鑒于 JavaScript 引擎還需要保留,所以我認(rèn)為在幾十年內(nèi)我們還會(huì)看到可怕的、嵌套的、手工編碼的匿名 JavaScript 函數(shù)一直存在。JavaScript 已經(jīng)變成了另一個(gè) COBOL,只是可讀性更差但部署范圍更廣。

我們可以拿 B-52 轟炸機(jī)來對(duì)比一下。這款 90 年前設(shè)計(jì)的轟炸機(jī)預(yù)計(jì)還將服役到 2040 年。C 語言的歷史也有 45 年了。

絕對(duì)如此!我只能想象編程會(huì)變得越來越重要。關(guān)于編程的本質(zhì) Edsgar Dijkstra 有一條名言:

(軟件危機(jī)的)主要原因在于機(jī)器已經(jīng)強(qiáng)大了好幾個(gè)量級(jí)!坦率地說,只要沒有機(jī)器,編程根本不成問題;當(dāng)我們只有比較弱的計(jì)算機(jī)時(shí),編程的問題不大, 現(xiàn)在我們有了龐大的計(jì)算機(jī),編程的問題也變得一樣大了。從這個(gè)意義上來說電子業(yè)一個(gè)問題都沒有解決,反而是制造了如何使用其產(chǎn)品的問題。

對(duì)此我的思考是人類文明對(duì)代碼的依賴程度有多大。我們的世界已經(jīng)有那么多的東西是由編程驅(qū)動(dòng)的(軟件蠶食世界)。從這個(gè)意義上來說,我們已經(jīng)制造了 維護(hù)軟件的問題,這意味著我們永遠(yuǎn)都需要更多的程序員。但隨著計(jì)算變得越來越強(qiáng)大,我們寫的軟件也會(huì)變得越來越強(qiáng)大,從而形成一個(gè)需求的良性循環(huán)。只要我 們需要軟件,我們就會(huì)需要程序員。所以 2025 年是編碼不僅還有用,而且還會(huì)更加重要。我認(rèn)為所有對(duì)未來 10 年程序員的需求數(shù)量的估算都是小了。軟件蠶食世界,所有能生存的公司都將是技術(shù)公司。我們還看到程序員類型的多樣化,從數(shù)據(jù)科學(xué)到虛擬現(xiàn)實(shí),全新的編程領(lǐng) 域正在不斷涌現(xiàn),這種趨勢(shì)為什么會(huì)停止呢?

此外,我還認(rèn)為代碼是一種媒介而不僅僅是一項(xiàng)工作,它是人類這個(gè)物種的一種溝通的新方式。我們對(duì)這個(gè)世界的問題和現(xiàn)象用代碼來建模。從這個(gè)意義來 說,編碼跟表達(dá)關(guān)系更大。而我們永遠(yuǎn)都不會(huì)停止用這種方式表達(dá)自己。所以我認(rèn)為我們使用代碼的方式會(huì)越來越豐富—會(huì)超出軟件這個(gè)行當(dāng)進(jìn)入到學(xué)習(xí)的每一個(gè)領(lǐng) 域。我想在 25 年內(nèi)我們教數(shù)學(xué)、化學(xué)、生物、物理、幾何以及大部分的 STEM 課程都將通過代碼來完成。那時(shí)候我們學(xué)編程未必是為了寫應(yīng)用,而是為了在軟件領(lǐng)域以外表達(dá)想法。代碼是信息時(shí)代的通用語,我看這一點(diǎn)近期內(nèi)不會(huì)有任何改 變。

研發(fā)軟件工程師 Lakshmi Narasimhan Ramakrishnan:

簡(jiǎn)答:是的!但不是今天的樣子。

從機(jī)器語言、到面向?qū)ο笳Z言,編程的演進(jìn)歷史就是不斷地抽象。這一路上我們還在操作系統(tǒng)的作用下得以開發(fā)出更好的基礎(chǔ)設(shè)施。大家很快意識(shí)到自己可以在這些基礎(chǔ)設(shè)施之上編寫出更復(fù)雜的程序,然后繼續(xù)開發(fā)出更復(fù)雜的軟件架構(gòu)。

然后有了互聯(lián)網(wǎng)(也是基于軟件協(xié)議開發(fā)的),這個(gè)東西使得對(duì)地球另一端的計(jì)算機(jī)進(jìn)行編程 / 溝通成為了可能?;ヂ?lián)網(wǎng)起到了一個(gè)強(qiáng)大的基礎(chǔ)設(shè)施的作用,圍繞著它開發(fā)出了許多的軟件,在今天,我們把云視為一臺(tái)龐大的計(jì)算機(jī)(接入互聯(lián)網(wǎng)運(yùn)行分布式操作系統(tǒng)的計(jì)算機(jī)子集)。

過去幾年機(jī)器學(xué)習(xí)和人工智能成為了一個(gè)熱門話題。其中的出現(xiàn)的一個(gè)誤解是 AI 會(huì)發(fā)展到不需要人來編程的地步。這是不對(duì)的。我的觀點(diǎn)是 AI 能發(fā)展到做出比人更好的決策(尤其在問題搜索空間龐大的情況下)。比如 Google 的 AlphaGo 就是證據(jù)之一。我會(huì)吧 AI 看做建設(shè)更復(fù)雜基礎(chǔ)設(shè)施的工具。而這反過來又會(huì)幫助我們開發(fā)出更好的軟件。

我的意思是說,這是一個(gè)惡性循環(huán)。軟件演進(jìn)然偶幫助我們創(chuàng)建出更強(qiáng)大的基礎(chǔ)設(shè)施進(jìn)而引領(lǐng)我們走向更高層次的抽象,反過來又讓我們做出比今天更復(fù)雜的 軟件,如此周而復(fù)始。所以編程始終都是有重要意義的,但是抽象和你試圖用代碼解決的問題會(huì)不斷發(fā)生快速演變。(注:這個(gè)觀點(diǎn)跟英國(guó)量子物理學(xué)家戴維·多伊 奇的《無窮的開始:世界進(jìn)步的本源》有些類似,盡管現(xiàn)象亙古不變,但我們始終都在尋找好的解釋)

責(zé)任編輯:王雪燕 來源: 36kr
相關(guān)推薦

2023-01-30 07:55:44

代碼過度設(shè)計(jì)

2015-04-23 16:21:23

2019-01-24 10:23:58

Web前端密碼加密

2011-08-23 09:00:47

可用性五個(gè)九

2011-09-09 10:31:40

Xen虛擬化linux內(nèi)核

2022-02-28 22:52:56

混合云工具技術(shù)

2021-02-19 09:45:50

Python面向?qū)ο?/a>代碼

2021-03-04 13:25:22

Python面向?qū)ο?/a>代碼

2021-04-06 11:21:50

Python面向?qū)ο?/a>代碼

2014-05-04 10:06:56

數(shù)據(jù)收集

2024-04-19 11:34:10

數(shù)據(jù)中心

2016-02-17 10:01:36

編程代碼注釋

2013-05-20 10:09:19

過時(shí)應(yīng)用遷移云計(jì)算

2020-06-04 08:05:06

物聯(lián)網(wǎng)客戶見解IOT

2014-12-24 10:03:26

融合基礎(chǔ)設(shè)施

2016-02-17 09:06:42

代碼注釋代碼規(guī)范

2022-12-12 17:42:38

人工智能預(yù)測(cè)性維護(hù)智能建筑

2021-10-28 15:02:16

OpenHarmony微納衛(wèi)星

2018-09-26 17:28:15

KubernetesServerless云計(jì)算

2022-09-30 09:24:10

思維辦公IT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)