屬于編程的黃金時代結束了嗎?
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
如今,很多人只關注了Twitter或觀看一場TEDx演講,就能聲稱自己為未來主義者。不過,傳奇的科技學習公司O’Reilly Media的創始人TimO’Reilly并不是這種所謂的專家,他對計算趨勢的深刻洞察以及對開源的擁護使他擁有良好的信譽。
因此,Tim O’Reilly最近就軟件行業未來發表的這番評論足以引起開發人員們的強烈反響。他是這樣說的:“在過去幾十年里,成為程序員就可以找到一份工作。我認為這種黃金時代已經過去了,編程現在更像是一種讀寫能力,你不得不學會運用它。”
這聽起來很合邏輯。實際上,類似這樣的說法已經很常見了,例如“今天的精英編碼技能是明天的基本能力”等等。但這真的反映了軟件行業的未來嗎?
作為文化素養的編碼
我們很難去定論編碼掃盲的目標。即使不打算編寫自己的軟件,了解代碼的工作原理也是有實際價值的。即使是非程序員也可以使用構建網站所需的基本技能,從大量數據中得出結論,或自動化簡單任務。
誰不是整天沉浸在谷歌、Facebook或YouTube算法的溫暖懷抱中呢?無論是不是程序員,當周圍的機器在塑造我們的生活時,了解它們是如何工作的,的確是一個有價值的思考方法。
圖源:unsplash
編碼是這種新型文化素養的一部分,這種素養最終將從一種近乎神奇的力量轉變為人類的日常實踐。這種想法并不是什么新鮮事,但有理由被質疑。畢竟,僅僅在十年前,我們還在尋找科學素養,目標是能讓普通公民獲得他們做出決策所需的知識,并能選擇出在快速發展的世界中制定出合理路線的領導者。但是科學素養的承諾并沒有真正實現。
今天,普通人嚴重依賴他們不理解或不相信的現代科學,從計算機(量子力學)到疫苗(遺傳學),再到全球定位系統(廣義相對論)。如果科學素養是一個從未實現過的目標,那么我們真的可以期待編碼素養發展得更好嗎?
編碼掃盲運動的支持者指出,最初閱讀和寫作是一種專門的技能,歷經數年時間才從學者間傳播到普通民眾間。如果你早在1620年就預測過:在幾百年后,即使是最沒有進取心的人也能在Facebook上寫一篇語法連貫的帖子,你也會變成一個瘋狂的夢想家。
但就像學習寫作和成為作家之間是有差距的,學習科學和成為科學家之間有差距,理解代碼的基本輪廓和學習自己構建復雜系統之間也存在差距。
圖源:Young Coder
我們為提高編碼素養所做的努力對培養未來的程序員的作用微乎其微。實際上,我們經常引導新手遠離編程藝術,而進入狹小的、限制性沙箱。過去,這些沙箱是Excel宏,如果追求更高還可以使用Visual Basic和Access,現在是Power Apps。變化萬千,但不離其宗。
如果你想成為一名專業的程序員,依然需要偏離標準的教育模式。現代教育降低了代碼讀寫能力的門檻,但這并不沒有改變職業程序員的定義。
編碼員的價值?
圖源:unsplash
Tim O’Reilly評論的另一部分則較為微妙:如果人們的編碼素養提高了,這是否會威脅到程序員的工作優勢地位?
二十多年來,人們一直宣稱正在將編碼商品化。程序員一直被告知應該學習一些更持久的東西,例如數學,因為編碼技能的差距即將縮小。
但這件事有其不利的一面——沒有時間線的預測算不上任何預測。如今,我們擁有比以往更多的程序員,并且有大量的海外員工渴望滿足我們的IT需求。程序員并不短缺,但是技能熟練的程序員很短缺。
事實證明,這種短缺的狀況持續了很久,令人驚訝。即使我們擴大了傳統教育(進一步在課程中推廣STEM學科)和非傳統教育(基于項目的編碼訓練營爆炸增長),熟練開發人員的短缺仍然沒有得到改善。根據目前的估測,編程人才的短缺只會在未來幾年內加劇。
可以很容易地發現,普通程序員和熟練程序員差距反映了對新興技術(例如機器學習和大數據分析)專業知識的缺乏。雖然這些領域對開發人員的需求量確實很大,但這并不是短缺的根源。其真正的根源是缺少熟練的中級開發人員,這些人不僅掌握了編碼基礎知識,還了解有效的團隊合作、協作和其他軟技能。
熟練的中級開發人員可以將編程技能與其他難以量化的技能相結合,例如分析大型系統、調試實際問題、管理項目以及與利益相關者交談的能力。
將來,新上任的編碼人員可能會由于他們的本地就業市場和作品資歷而很難找到工作。但是,經驗豐富的開發人員在數十年內仍然是寶貴的資源。即使是由AI驅動的代碼生成工具,也不會取代可以在芯片世界與現實世界中皆如魚得水的專家。
圖源:CommitStrip
編程技巧是否有一天會變得非常普遍,以至于程序員失去定價能力?或許吧,但是目前沒有跡象表明這種情況會發生。相較之下更為明顯的問題是,任何尋求輕松賺錢而從事編程工作的人,都可能在獲得成功所需的經驗之前就精疲力盡。
新黃金時代的到來
Tim O’Reilly的話語暗示了未來的編程技能將不再是尋找舒適職業的捷徑。但是,如果計算的黃金時代本來就與輕松賺錢和職業安全無關呢?如果我們失去的東西實際上不如我們在半個世紀的軟件開發中所獲得的東西重要呢?
近年來,編碼的復雜性急劇上升。但與此同時,我們擁有著豐富的資源——可以發現錯誤的IDE、可以在幾秒鐘內完成編譯的計算硬件、可以自動完成諸如驗證輸入和排序列表之類的常見任務的框架等。我仍然記得那些日子——程序員不得不尋找信息,而關于Windows API之類的可靠書籍在辦公室里傳閱,直到書的封面都被翻爛了。
如今,有了免費教程、YouTube課程、Twitch coding streamers和StackOverflow這樣的網站,入門的障礙已蕩然無存。現在,我們擁有一個小白友好型的專家社區,并積極分享開源項目,不再讓堆積如山的知識讓初學者望而卻步了。如果我們通過衡量阻礙我們想法的阻力來選擇黃金時代,那這就是黃金時代。
圖源:unsplash
歷史上從沒有哪個時期,比此刻更容易將創意轉變為軟件項目,并輕松與全世界共享。編程的黃金時代何時結束?我不知道,但至少現在這片領地的大門仍然敞開著。