編者按:在過去的十年時間裡,軟體開發行業已經發生了非常大的變化。過去,程式員需要在大學或工作中花費好幾年時間才能學習掌握一些程式設計知識,熟悉了解一些昂貴的伺服器性能,而現在,隻需幾周時間就能搞定一項網頁開發程式設計語言了。基于人工智能生成的代碼,為整個行業帶來了颠覆創新,也讓我們處在了下一代範式快速轉型中,身處在這個拐點上,我們不得不說,未來網頁開發很可能會不複存在,以後甚至都不需要任何程式設計勞動力了。
“計算機想要在圍棋上擊敗人類,可能還要等100年!”——《紐約時報》,1997年
“圍棋大師被谷歌計算機程式擊敗!”——《紐約時報》,2016年
下面,就讓我們來看看當機器人取代程式員寫代碼,會帶來哪些範式轉型吧。
轉型一:wordpress
wordpress是在 2003 年 5 月 27 日釋出的,在它豐富的插件和網站主題内容支援下,很多沒有技術背景的創業者無需編寫代碼,就能推出自己的網站,wordpress 平台也是以很快便在全世界風靡起來。雖然這個平台存在一定的局限性,但是它依然占據了全部網際網路網頁開發 26.5% 的市場佔有率,那麼剩下的 73.5% 的市場佔有率會是什麼樣呢?讓我們再進入轉型二來做進一步了解。
轉型二:開源代碼、node 和架構
node 一開始曾被廣泛認為是一種玩具程式設計語言,但是它已經快速接管了網頁開發,并且培育出了一個異常龐大的開源社群。對于那些還不太熟悉node 的人,先簡單介紹一下:node.js是一個基于 chrome javascript 運作時建立的平台, 用于友善地搭建響應速度快、易于擴充的網絡應用。node.js 使用事件驅動, 非阻塞i/o 模型而得以輕量和高效,非常适合在分布式裝置上運作資料密集型的實時應用。node 最厲害的地方,就是讓那些隻開發用戶端代碼(前端網頁開發)的程式員,可以無需切換程式設計語言就能編寫後端代碼。
不僅如此,node 已經建構了一個令人難以置信的龐大社群,很多人都在為開源做貢獻。現在,node 基礎設施和開源軟體包都已經非常強大了,允許開發人員不僅僅去解決他們自己的問題,而且能夠建構出一套為整個社群解決問題的方法。如今,使用 node 開發軟體産品就像是拼樂高積木,你隻需花些時間把每塊“積木”連接配接起來就可以了。
轉型三:隻需要一個應用程式接口,就能搞定 saas、baas、以及其他架構
你新開發的照片 app 需要面部識别功能嗎?如果你想要解讀人們在照片中的表情,又該怎麼辦?所有這些問題都可以靠一個應用程式接口搞定,事實上,如今你能想到的一切東西,都有一個應用程式接口(出于所有集中性非技術目的,應用程式接口就像是另一種樂高積木)。
那麼,這具體意味着什麼呢?現在,任何一款軟體都能夠通過開源工具、或是帶有某些特定應用功能的應用程式接口開發出來。如果你給某位網頁開發人員兩周時間,告訴他們克隆市場上某款主流的消費者産品,他們至少可以使用相關工具,快速制作出一款基本版出來。
當然啦,開發一款應用程式和創立一家公司是兩回事兒,但有一件事不可否認的是,現在獨立程式員的生産力已經變得十分驚人了!當然,我們并不是說過去的程式員不行,畢竟現在的程式員也是站在巨人的肩膀上,才能做出一些成績。
我們現在處在哪個階段?
你需要一個網站?根本無需編寫代碼;你又需要一款高度定制的網頁應用,來為使用者提供一些專屬功能或服務?node 程式包提供的“玩具程式設計語言”就能輕松搞定。你還需要一款移動 app?寫一個 javascript,然後就能從代碼庫裡獲得一款安卓和 ios 原生移動應用。需要在你的應用裡加入先進的機器學習技術?有應用程式接口來幫你搞定。你的公司找不到程式員?給 bootcamp 打個電話,他們有足夠的程式設計達人。這一切是不是聽上去都很不錯?但實際上,我們能做的也隻有這些了。如今程式員所接受的教育訓練内容,其實都是最終能被機器人所取代的,一些強大的自動化工具完全可以智能生成代碼。
未來,利用開源軟體包、強大的開發工具和混合架構,企業隻需招聘一些畢業生,短短 4個月時間就能學會如何程式設計,這在今天是難以想象的,隻要有了商業想法,任何人都能輕松打造出一款高性能、可擴充且可維護的應用程式。
目前,已經有公司(比如 codefree.co)開始提供相關服務,允許沒有程式設計背景的人無需寫任何代碼就能開發出一款個性化的網頁應用;還有公司利用機器學習技術幫助企業開發、設計東西。盡管現階段依然存在一些定制化問題,但相信随着時間的推移,各種問題都會逐漸解決。
我們要到什麼時候,才能看到人人都會開發程式?
顯然,我們并不是說要讓每個人都能輕松開發程式,如果說有 1000 個程式員使用開源程式包(樂高子產品),總是要有一個人去開發源程式。我們需要教授人們如何建構樂高子產品,需要更多工程師,而不是那些“打更新檔”的人。是以從這個角度來看,如果你隻想招聘一些畢業生,花 4 個月時間是根本無法做到的,别說 4 個月,可能 4 年時間都難以實作。
是以,我們需要鼓勵更多程式員提升自己的技能水準,深入學習人工智能、虛拟現實、增強現實、計算機視覺、以及機器學習等技術。這些都是未來程式員所必備的技能,但是今天已經起步了,凡是不關注這些技術的人或企業,幾年後可能會就要花更多成本去學習。
網頁飽和了,移動也飽和了,你能想到的商業想法,市場上早就已經有三、四款同類産品了。是以,現在擺在我們面前的,是要去嘗試解決更難的問題,掌握更強大的技能。
現在我們該怎麼做?
教育是唯一的“出路”,相對于快速的市場發展速度,傳統教育機構其實已經非常滞後了。如果你是一個企業老闆,可能現在得想想如何去教育訓練你手下的技術人員,在這方面,谷歌已經開始這麼做了。假設你是一個網頁開發人員,如果還是把重心放在 javascript、ruby on rails、或是 php 這些程式設計語言上,可能現在需要做些調整了。嘗試學習機器學習或計算機視覺技術,雖然可能目前不會立即給你帶來豐厚的收益,但至少能確定未來你不會被淘汰。