在過(guò)去的十年時(shí)間里,軟件開(kāi)發(fā)行業(yè)已經(jīng)發(fā)生了非常大的變化。過(guò)去,程序員需要在大學(xué)或工作中花費(fèi)好幾年時(shí)間才能學(xué)習(xí)掌握一些編程知識(shí),熟悉了解一些昂貴的服務(wù)器性能,而現(xiàn)在,只需幾周時(shí)間就能搞定一項(xiàng)網(wǎng)頁(yè)開(kāi)發(fā)編程語(yǔ)言了。基于人工智能生成的代碼,為整個(gè)行業(yè)帶來(lái)了顛覆創(chuàng)新,也讓我們處在了下一代范式快速轉(zhuǎn)型中,身處在這個(gè)拐點(diǎn)上,我們不得不說(shuō),未來(lái)網(wǎng)頁(yè)開(kāi)發(fā)很可能會(huì)不復(fù)存在,以后甚至都不需要任何編程勞動(dòng)力了。
“計(jì)算機(jī)想要在圍棋上擊敗人類,可能還要等 100 年!”——《紐約時(shí)報(bào)》,1997年
“圍棋大師被谷歌計(jì)算機(jī)程序擊??!”——《紐約時(shí)報(bào)》,2016年
下面,就讓我們來(lái)看看當(dāng)機(jī)器人取代程序員寫(xiě)代碼,會(huì)帶來(lái)哪些范式轉(zhuǎn)型吧。
轉(zhuǎn)型一:WordPress
WordPress 是在 2003 年 5 月 27
日發(fā)布的,在它豐富的插件和網(wǎng)站主題內(nèi)容支持下,很多沒(méi)有技術(shù)背景的創(chuàng)業(yè)者無(wú)需編寫(xiě)代碼,就能推出自己的網(wǎng)站,WordPress
平臺(tái)也因此很快便在全世界風(fēng)靡起來(lái)。雖然這個(gè)平臺(tái)存在一定的局限性,但是它依然占據(jù)了全部互聯(lián)網(wǎng)網(wǎng)頁(yè)開(kāi)發(fā) 26.5% 的市場(chǎng)份額,那么剩下的
73.5% 的市場(chǎng)份額會(huì)是什么樣呢?讓我們?cè)龠M(jìn)入轉(zhuǎn)型二來(lái)做進(jìn)一步了解。
轉(zhuǎn)型二:開(kāi)源代碼、Node 和框架
Node 一開(kāi)始曾被廣泛認(rèn)為是一種玩具編程語(yǔ)言,但是它已經(jīng)快速接管了網(wǎng)頁(yè)開(kāi)發(fā),并且培育出了一個(gè)異常龐大的開(kāi)源社區(qū)。對(duì)于那些還不太熟悉
Node 的人,先簡(jiǎn)單介紹一下:Node.js是一個(gè)基于 Chrome JavaScript 運(yùn)行時(shí)建立的平臺(tái),
用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng), 非阻塞I/O
模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。Node
最厲害的地方,就是讓那些只開(kāi)發(fā)客戶端代碼(前端網(wǎng)頁(yè)開(kāi)發(fā))的程序員,可以無(wú)需切換編程語(yǔ)言就能編寫(xiě)后端代碼。
不僅如此,Node 已經(jīng)構(gòu)建了一個(gè)令人難以置信的龐大社區(qū),很多人都在為開(kāi)源做貢獻(xiàn)。現(xiàn)在,Node
基礎(chǔ)設(shè)施和開(kāi)源軟件包都已經(jīng)非常強(qiáng)大了,允許開(kāi)發(fā)人員不僅僅去解決他們自己的問(wèn)題,而且能夠構(gòu)建出一套為整個(gè)社區(qū)解決問(wèn)題的方法。如今,使用
Node 開(kāi)發(fā)軟件產(chǎn)品就像是拼樂(lè)高積木,你只需花些時(shí)間把每塊“積木”連接起來(lái)就可以了。
轉(zhuǎn)型三:只需要一個(gè)應(yīng)用程序接口,就能搞定 SaaS、BaaS、以及其他框架
你新開(kāi)發(fā)的照片 App
需要面部識(shí)別功能嗎?如果你想要解讀人們?cè)谡掌械谋砬?,又該怎么辦?所有這些問(wèn)題都可以靠一個(gè)應(yīng)用程序接口搞定,事實(shí)上,如今你能想到的一切東西,都有一個(gè)應(yīng)用程序接口(出于所有集中性非技術(shù)目的,應(yīng)用程序接口就像是另一種樂(lè)高積木)。
那么,這具體意味著什么呢?現(xiàn)在,任何一款軟件都能夠通過(guò)開(kāi)源工具、或是帶有某些特定應(yīng)用功能的應(yīng)用程序接口開(kāi)發(fā)出來(lái)。如果你給某位網(wǎng)頁(yè)開(kāi)發(fā)人員兩周時(shí)間,告訴他們克隆市場(chǎng)上某款主流的消費(fèi)者產(chǎn)品,他們至少可以使用相關(guān)工具,快速制作出一款基本版出來(lái)。
當(dāng)然啦,開(kāi)發(fā)一款應(yīng)用程序和創(chuàng)立一家公司是兩回事兒,但有一件事不可否認(rèn)的是,現(xiàn)在獨(dú)立程序員的生產(chǎn)力已經(jīng)變得十分驚人了!當(dāng)然,我們并不是說(shuō)過(guò)去的程序員不行,畢竟現(xiàn)在的程序員也是站在巨人的肩膀上,才能做出一些成績(jī)。
我們現(xiàn)在處在哪個(gè)階段?
你需要一個(gè)網(wǎng)站?根本無(wú)需編寫(xiě)代碼;你又需要一款高度定制的網(wǎng)頁(yè)應(yīng)用,來(lái)為用戶提供一些專屬功能或服務(wù)?Node
程序包提供的“玩具編程語(yǔ)言”就能輕松搞定。你還需要一款移動(dòng) App?寫(xiě)一個(gè) JavaScript,然后就能從代碼庫(kù)里獲得一款安卓和 iOS
原生移動(dòng)應(yīng)用。需要在你的應(yīng)用里加入先進(jìn)的機(jī)器學(xué)習(xí)技術(shù)?有應(yīng)用程序接口來(lái)幫你搞定。你的公司找不到程序員?給 bootcamp
打個(gè)電話,他們有足夠的編程達(dá)人。這一切是不是聽(tīng)上去都很不錯(cuò)?但實(shí)際上,我們能做的也只有這些了。如今程序員所接受的培訓(xùn)內(nèi)容,其實(shí)都是最終能被機(jī)器人所取代的,一些強(qiáng)大的自動(dòng)化工具完全可以智能生成代碼。
未來(lái),利用開(kāi)源軟件包、強(qiáng)大的開(kāi)發(fā)工具和混合框架,企業(yè)只需招聘一些畢業(yè)生,短短
4個(gè)月時(shí)間就能學(xué)會(huì)如何編程,這在今天是難以想象的,只要有了商業(yè)想法,任何人都能輕松打造出一款高性能、可擴(kuò)展且可維護(hù)的應(yīng)用程序。
目前,已經(jīng)有公司(比如
codefree.co)開(kāi)始提供相關(guān)服務(wù),允許沒(méi)有編程背景的人無(wú)需寫(xiě)任何代碼就能開(kāi)發(fā)出一款個(gè)性化的網(wǎng)頁(yè)應(yīng)用;還有公司利用機(jī)器學(xué)習(xí)技術(shù)幫助企業(yè)開(kāi)發(fā)、設(shè)計(jì)東西。盡管現(xiàn)階段依然存在一些定制化問(wèn)題,但相信隨著時(shí)間的推移,各種問(wèn)題都會(huì)逐步解決。
我們要到什么時(shí)候,才能看到人人都會(huì)開(kāi)發(fā)程序?
顯然,我們并不是說(shuō)要讓每個(gè)人都能輕松開(kāi)發(fā)程序,如果說(shuō)有 1000
個(gè)程序員使用開(kāi)源程序包(樂(lè)高模塊),總是要有一個(gè)人去開(kāi)發(fā)源程序。我們需要教授人們?nèi)绾螛?gòu)建樂(lè)高模塊,需要更多工程師,而不是那些“打補(bǔ)丁”的人。所以從這個(gè)角度來(lái)看,如果你只想招聘一些畢業(yè)生,花
4 個(gè)月時(shí)間是根本無(wú)法做到的,別說(shuō) 4 個(gè)月,可能 4 年時(shí)間都難以實(shí)現(xiàn)。
因此,我們需要鼓勵(lì)更多程序員提升自己的技能水平,深入學(xué)習(xí)人工智能、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、計(jì)算機(jī)視覺(jué)、以及機(jī)器學(xué)習(xí)等技術(shù)。這些都是未來(lái)程序員所必備的技能,但是今天已經(jīng)起步了,凡是不關(guān)注這些技術(shù)的人或企業(yè),幾年后可能會(huì)就要花更多成本去學(xué)習(xí)。
網(wǎng)頁(yè)飽和了,移動(dòng)也飽和了,你能想到的商業(yè)想法,市場(chǎng)上早就已經(jīng)有三、四款同類產(chǎn)品了。所以,現(xiàn)在擺在我們面前的,是要去嘗試解決更難的問(wèn)題,掌握更強(qiáng)大的技能。
現(xiàn)在我們?cè)撛趺醋觯?/p>
教育是唯一的“出路”,相對(duì)于快速的市場(chǎng)發(fā)展速度,傳統(tǒng)教育機(jī)構(gòu)其實(shí)已經(jīng)非常滯后了。如果你是一個(gè)企業(yè)老板,可能現(xiàn)在得想想如何去培訓(xùn)你手下的技術(shù)人員,在這方面,谷歌已經(jīng)開(kāi)始這么做了。假設(shè)你是一個(gè)網(wǎng)頁(yè)開(kāi)發(fā)人員,如果還是把重心放在
JavaScript、Ruby on Rails、或是 PHP
這些編程語(yǔ)言上,可能現(xiàn)在需要做些調(diào)整了。嘗試學(xué)習(xí)機(jī)器學(xué)習(xí)或計(jì)算機(jī)視覺(jué)技術(shù),雖然可能目前不會(huì)立即給你帶來(lái)豐厚的收益,但至少能確保未來(lái)你不會(huì)被淘汰。