技術變化那麼快,程序員如何做到不被淘汰?

11 月 24 日,TGO TALKS 的舞臺迎來了 6 位經歷過嚴格培訓的 CEO、CTO、Team Leader 進行演講。TGO TALKS 由 TGO 鯤鵬會組織,職業中、英文演講培訓師親臨現場,與參與者一起學習演講的關鍵技巧,配合充分的練習和反饋,使大家在短時間內迅速提升了演講功力,最後更有精彩的 TGO TALKS SHOW 。每位分享者按照演講思維方法論,精心準備了 18 分鐘的主題演講,將從技術人的個人成長以及在時代變革中的定位、團隊建設管理方法、創業技巧等方面,講述當代技術人的知與識。

本文根據洛凱科技 Aladdin 項目負責人 & TGO 鯤鵬會北京分會會員王泰在 TGO TALKS 上帶來的《未來的程序員 = 人工智能 + 軟件工程》的演講整理。王泰針對軟件開發中 70% 的時間是在 debug 的問題,提出了通過人工智能和產品化方式解決問題的方法。以下爲王泰現場分享內容,Enjoy:

大家好,我是王泰,來自於洛凱科技,目前是洛凱北京辦公室的一名技術管理者,也是我司 Aladdin 項目的項目負責人。

今天,我的演講會分成三個部分:

在開始之前,我們先來思考三個問題:

  • 今天的軟件工程,大家滿意嗎?
  • 我們能不能用人工智能的手段解決現在軟件工程的問題,並且這樣做會對我們自己的生活、工作產生多少影響?
  • 這也是我的一些個人的觀點:面對未來不斷變化的挑戰,我們應該如何做出選擇?

當前,軟件已經深入到我們的工作和生活當中,大多數人都已經無法離開軟件,可見當今軟件普及程度有多高。那麼請大家想想,我們的軟件工程足夠成熟了嗎?

我相信,當我用反問的形式向大家提問時,大家的心中肯定有些許不安,開始思考當下軟件工程是不是還沒有那麼成熟。可見大部分人的心中都沒有明確的答案,都明白我們的軟件工程還有許多可以改進的地方。

那請大家再設想一下,一份代碼,從我們開發到交付需要經過 Coding、Testing、Debugging 的過程。我們每個寫過代碼的人都知道,一般來說,Testing 加 Debugging 的時間遠遠大於我們 Coding 的時間。

可是你們知道它們的時間分配比例是什麼樣的嗎?

在《單元測試的藝術(第二版)》中,作者統計分析了 200 個研發 Case,得到如下結論:

總體來看,我們 Testing 和 Debugging 的時間,是 Coding 時間的 3 倍,甚至更多。

當你們看到這份數據時,是不是也回憶起自己坐在電腦前,痛苦 debug 的經歷了呢?

就像上圖這幅漫畫展示一樣,我們程序員的生活就是在不斷地寫 Bug 與修 Bug 中度過。

因爲即使是優秀的工程師,他們也會面臨着同樣的問題——Testing 和 Debugging 的時間太長。而 Testing 和 Debugging 往往是最無聊、最令人討厭的事情。

因爲在做 Debugging 的大部分時間中,我們只是反覆地點擊鼠標、跟蹤斷點、定位問題。這些工作日復一日的折磨工程師,一點點扼殺工程師們的創造力。

可是工程師應該是當今最富創造力的一羣人,怎麼能把時間耗費在重複性如此之高的工作中呢?

在場的大部分人都做過工程師,而且你們一定都是非常優秀的工程師,所以我猜測你們都嘗試過解決這個問題。也許通過“過程控制”,也許通過“軟件架構”。這些做法都沒有問題,方法的確可以保障“過程”和“結果”更加可控。

但是我們花費在 Debug 的時間,似乎並沒有明顯的減少。

現在,我再問一下,我們現在的軟件工程足夠成熟了嗎?

顯然沒有。

我們需要更多更有效的手段來減少 Debug 的時間,減少代碼缺陷,提高我們的工作效率,以及拯救程序員們日漸稀少的頭髮。

如果我們用人工智能,那麼 Debugging 能更加智能嗎?能讓 Debugging 更自動化嗎?能讓我們寫出效率更高、缺陷更少的代碼嗎?

我們可以先將 Debug 的過程分成兩部分:

  • 第一部分是錯誤定位;
  • 第二部分是錯誤修復。

首先,我們主要聊聊錯誤定位的問題。

實際上,在很早之前就有人開始研究自動化錯誤定位。在沒有使用人工智能之前,自動化錯誤定位的手段包括基於頻譜的錯誤定位方式——SBFL、基於變異的錯誤定方式——MBFL 等等。

這些方法都是基於統計概率獲得的結果,它們的效果和原理各不相同,有些方法原理簡單執行速度快,但效果有限;有些方法相對準確率更高,可定位時間太長。

而且使用他們還需要一個前提——必須依賴單元測試的執行結果,因此這些方法還沒有廣泛應用。

當前,我們 Aladdin 項目團隊希望能讓所有的程序員都能體驗上自動化錯誤定位的好處,使用上高效的錯誤定位手段,爲此我們嘗試去利用人工智能的方式改進錯誤定位的過程。

目前,我們結合了 Android 工程師工作的流程,在工程師調試時,實時給出代碼的修改建議。

我們用人工智能的方法不僅縮短的錯誤定位的時間,而且也將準確率提高到 80%。同時,我們還正在嘗試,讓程序員們可以不寫單元測試,就可以做錯誤定位。

實際上,人工智能在提高工程研發效率上能做的事情遠不止這些。也許你們已經聽說過人工智能現在正在學習如何改 Bug,甚至學習如何寫代碼。

上圖是一段爐石傳說的 Python 代碼,這是北京大學軟件工程實驗室使用 CNN 的方式自動生成的代碼。他們把卡牌上的描述文字輸入到他們寫好的程序中,接下來程序就可以自動分析卡牌描述被髮動時的規則,並生成相應的 Python 代碼。

雖然這段代碼看上去像一個剛學編程的初學者寫的,也不能全部正確運行,但是這已經離我們曾經設想過能自動寫代碼的程序非常接近了。

以上都是一些實際的落地場景,如果未來能有更多瞭解人工智能和軟件工程的工程師一起加入進來,那麼我們就可以推進更多的場景實現。

但是,我們的工程師現在還是每天陷入在寫不完的 Bug 和 Debug 的困境中,並以爲這些都是理所當然的工作。

科技的進步不會停止,我相信遲早有一天能自動寫代碼的程序時代會真正來臨。那麼,到時候我們會面臨哪些挑戰呢?我們又該如何解決挑戰呢?

我想我們可以做 2 點:

  1. 擁抱變化;
  2. 終身學習。

過去,我們是傳統行業的挑戰者,經歷過互聯網對傳統行業的衝擊;我們曾經也是互聯網紅利的受益者,做過風口上的那隻豬。然而,眼下我們面臨的挑戰似乎是來自於行業內部程序員之間的競爭。

實際上,未來整個工程行業都將面臨來自於外部的挑戰,而這個挑戰這就是人工智能技術。當面對人工智能時,我們要轉換自己的思維,我們應該主動學習人工智能,至少要了解人工智能會對我們的行業產生什麼影響。

當前,雖然程序員之間的競爭也很明顯,但是隻要市場足夠大,那麼工作需求還是有很多的,這也是讓很多人現在不願意面對轉型的原因。

我們身邊有不少這樣的程序員——他們每天都在做重複的工作,安於現狀,沒有學習的激情。同時,隨着年齡的增長,他們開始產生焦慮,因爲他們的能力和體力已經比不上新人,所以如果他們不能順利轉型管理,那麼就會擔心公司裁員。

最近,我有個朋友在向我抱怨,他開始擔心自己未來缺少競爭力,不能負擔起北京的生活成本。他已經開始考慮,是否要在近兩年內換一個其他城市裏壓力小一點的工作。

當然,這只是個案。

可是,當人工智能真的可以寫代碼的那一天,那就是我們整個行業都要面臨的挑戰。

這就像是,互聯網改變了通信行業;QRCode 改變了金融行業;而現在人工智能不僅會改變行業,更會改變程序員的工作方式。

過去,變化只是生活的一部分;現在,變化已經成爲了生活的全部。

實際上,我的工作也一直在發生變化。最早,我是一名校內網的後端工程師,我在校內網寫了 4 年半的主站後端代碼。2012 年,我開始創業,被迫走向了管理崗位;後來,我接觸到了 TGO鯤鵬會這是我第一次關鍵變化

這次的變化讓我感受到“做好寫代碼之外的工作”和“寫一段優美的代碼”同樣重要。

2015 年,因爲企業的發展需求,我希望可以用機器學習給公司產品賦能。於是,我很快搭建起公司的推薦系統隊伍,同時我也開始重新學習數學、算法。雖然我們的產品由於市場需求轉型沒有成功,但是那段時間我們團隊積累了不少的技術方案,幫助公司在後續併購的過程中提高了估值。此時,是我第二次的關鍵變化。

在這次變化之後,我現在的工作已經離不開機器學習和人工智能。

今天,我想讓自己開始第三次的關鍵變化。過去,我在自己的舒適區裏做技術和科技管理者,不願走到臺前。因爲我是一個非常容易緊張的人,每次走到臺前都需要做巨大的心理建設。但是,現在的工作已經不太允許我一直躲在後面,所以我選擇讓變化驅動自己成長。

我想,我們每個人都應該擁抱變化,因爲變化會影響到我們工作和生活的點點滴滴。

我們可以暢想一下未來程序員的工作——未來可能會有兩種程序員,一種是寫一份讓機器讀懂產品文檔的程序員;另一種是開發和維護人工智能的程序員,他們既能懂得人工智能,又能懂得軟件工程。

或許現在的程序員有部分會被人工智能取代,但是我相信,只要我們擁抱變化,不斷地提高自己,那麼這種變化一定可以驅使你不斷進步!

現場精彩花絮

更多精彩照片請點擊詳情

加油吧,程序員們!

教練:我覺得你很棒!

TGO鯤鵬會,是極客邦科技旗下高端技術人聚集和交流的組織,旨在組建全球最具影響力的科技領導者社交網絡,線上線下相結合,爲會員提供專享服務。目前,TGO鯤鵬會已在北京、上海、杭州、廣州、深圳、成都、硅谷、臺灣、南京、廈門、武漢、蘇州十二個城市設立分會。現在全球擁有在冊會員 800+ 名,60% 爲 CTO、技術 VP、技術合夥人。

會員覆蓋了 BATJ 等互聯網巨頭公司技術領導者,同時,阿里巴巴王堅博士、同程藝龍技術委員會主任張海龍、蘇寧易購 IT 總部執行副總裁喬新亮已經受邀,成爲 TGO 鯤鵬會榮譽導師。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章