奧推網

選單
科技

程式設計師幹得越久,程式碼寫得越少?Meta 高階工程師現身說法

【CSDN 編者按】身為程式設計師,一天中你有多少的時間是花在寫程式碼上?根據 CSDN 釋出的《2022 中國開發者調查報告》顯示,只有不到 10% 的開發者會每天花費 70% 以上的時間寫程式碼,並且大多開發者平均每天只寫 200 行程式碼左右。在本篇文章中,作者以自身經歷,分析了為什麼程式設計師寫程式碼時間短的背後原因。

原文連結:https://medium。com/codex/todays-software-developers-will-stop-coding-soon-712e7661bbef

宣告:本文為 CSDN 翻譯,未經允許,禁止轉載。

作者 | Kairsten Fay譯者 | 彎月 責編 | 屠敏

出品 | CSDN(ID:CSDNnews)初級開發人員的發展歷程

我是一名初級開發人員,職業發展的道路才剛剛起步。每天,我都會坐在辦公桌前編寫程式碼,每個月我都會編寫數千行程式碼。

我可以出色地完成自己的工作,並與隊友之間建立了信任。隨著時間的推移,我開始收到邀請,參加各種專案會議。此外,經理要求我承擔起更廣泛的職責,處理更模糊的問題。

我的工作內容逐漸發生了轉變。分配給我的任務沒有明確的定義,也沒有嚴格的範圍,而且我還需要編寫概述問題領域以及備選解決方案的設計文件。漸漸地,我花在編寫程式碼上的時間從 90% 減少到 80%,再到 70%。我的工作不再僅限於純程式設計。

與此同時,我的專業知識不斷增長,需要同時兼顧多個專案,並更多地參與專案的設計。雖然個人能力在不斷提升,但手頭積壓的工作越來越多。經理見狀,指派了另一位隊友來幫忙,但我需要提前完成所有的設計和計劃。於是,我日趕夜趕,為隊友編寫了一大堆需要完成的任務。

程式設計的工作怎麼辦?

雖然我仍然喜歡寫程式碼,但我發現自己開啟 VSCode 的時間越來越少,而投入到文件中的時間越來越多了。姑且不論好壞,相信許多像我這樣的程式設計師都會經歷類似的發展。我的個人績效不再以程式碼行數來衡量,而是更多地取決於管理大型專案、對團隊技術方向的影響以及指導他人的能力。

即使我繼續堅守在開發人員的崗位上,並避免接觸管理的工作,也不太可能將 90% 的時間用於編寫程式碼。隨著肩上的責任越來越重,我需要與團隊成員、利益相關者以及跨職能合作伙伴打交道,並促進我們之間的協作。畢竟沒有人能夠獨自完成整個軟體開發週期內的所有工作。

我該怎麼辦?

隨著在工作中承擔的責任越來越大,我有兩個選擇:順時應勢,平步青雲;或回到舒適的辦公桌繼續敲程式碼。這兩種選擇並沒有對錯之分,在我看來,當你準備好時,就會知道哪種選擇最適合自己。在過去的一年裡,我一直在努力在二者之間抉擇。

個人的發展經歷

2022 年的第一個工作日,我加入了 Meta 的一個新團隊。我向經理說明我的目標是發展專業領域(使用者體驗)之外的技能。我想更深入地研究後端,讓自己成為一名T型人才。不可否認,我也想努力提高自己的技術水平,讓自己更加自信。

加入新團隊六個月後,經理分配給我一個非常關鍵的後端專案,而且必須在年底之前交付。然而,一個關鍵的模擬出了問題,接著混亂接踵而至,我的團隊在接下來的兩個月裡一直在除錯端到端的依賴關係。我花了一整天時間學習 C++,只是為了在另一個團隊的程式碼庫中提交拉取請求。

然後,在除錯專案的時候,合作伙伴團隊提交了一個優先順序非常高的任務票,針對的就是我們的 UI。我維護的一個功能因記憶體不足的錯誤而崩潰。隨著這兩個專案都止步不前,我陷入了極大的困境。

為了解決他們提交的任務票,我向技術主管和經理解釋說,過去幾周我一直在慢慢最佳化 UI 查詢。雖然我很清楚需要完成的工作,但奈何我根本沒有時間。

經理鼓勵我帶頭努力解決一些比較容易解決的 UI 效能問題。但是,我拒絕了。我想集中精力做好後端專案。儘管這個後端專案在時間上還有一些餘量,但我擔心,多擔負一份責任,風險也會多一分。我害怕一旦失敗,大家就會認為我“只是”一個使用者體驗開發人員。

經理要求我重新考慮主導新的 UI 工作時,我又一次拒絕了。我已經非常瞭解UI了,我想提升自己的技術水平。這意味著,他們會選擇一個新員工來完成這項既有機會表現自己又能輕鬆獲勝的工作。

那天,我選擇回到辦公桌前繼續寫程式碼。我有理由拒絕揹負更多責任,一部分是出於恐懼,還有一部分是不瞭解經理對我的期望。

換句話說,我可以用通俗易懂的語言描述大多數 UI 效能的問題、根本原因和解決方案。我已經向他們展示了一種模式。所以,我想讓其他隊友來完成這項工作。

幾個月後,我意識到經理只是希望我證明自己的專業領域,並不是讓我動手修復問題。我本可以寫一些任務,分給其他人,並在內部發布有關 UI 工作進展的資訊。

經理知道我的職業發展目標是拓寬技術廣度。他希望我能撰寫一份文件,詳細描述 UI 的效能問題。雖然我的時間本來就不夠用,而且主導 UI 效能的修復工作會佔據幾周的時間,但這些工作興許能給已陷入困境的後端專案帶來積極的影響。

如今回想起來,我終於明白了一切。如果重來一次,我一定會抓住這次晉升的機會,承擔起修復 UI 效能的工作。但在當時,我確實覺得忙不過來。我承認,學會在正確的時間說“不”是一項需要練習的重要技能。

在我做出有些令人失望的決定幾個月後,一名新畢業的大學生加入了我的團隊。經理要求我幫助她儘快熟悉環境開始工作,這樣我就可以將部分工作分配給她,同時讓自己得到喘息的機會。因此,我對後端專案更有信心了。出於自我反省和成長的心態,我接受了新的挑戰,並開始給新員工分配任務,而且我還設計了一個遷移資產的專案讓她完成。

後來,後端專案按時交付,2023 年我將主導一個更大的後端專案,對此我充滿了期待。這一次,有兩個下屬在我的指導下工作。我將再一次跳出舒適圈,接受挑戰。但是,我已學會接受挑戰是職業發展不可避免的一部分。

軟體開發人員不需要編寫程式碼的原因

軟體開發人員的工作不僅限於編寫程式碼。即使是初級開發人員也需要參加會議,並承擔程式設計之外的工作。隨著級別升高,程式設計之外的工作將不斷增加。除了參加會議之外,下列工作也是職責的一部分。

編寫或更新文件

這些工作隨時隨地可能發生,而且永無止境。新員工入職期間需要閱讀這些文件,以迅速補充基礎知識,並熟悉當前的工作環境。

編寫設計文件

隨著工作範圍的擴大、複雜性增加、需要處理的問題更加模糊,你需要編寫設計方案。你需要收集需求,進行一些分析或研究,並與利益相關者和同事分享你的發現。

初級開發人員:不要省略這一步驟。雖然我們都迫不及待想要深入鑽研程式碼,但有時我們需要放慢腳步。換句話說,“多做幾周的程式設計可以節省你做計劃的時間。”

承擔多種職責

軟體工程團隊經常缺少一些跨職能支援,例如專案經理、產品設計師等。因此,你需要承擔起相鄰角色的職責,例如專案管理,設定截止日期並履行與監督相關的其他職責。

例如,Meta 擁有“自下而上”的工程文化,這意味著開發人員必須自行決定完成哪些實際工作。換言之,我們就是自己的專案經理。因此,我將工作筆記、之前的探索性工作和目標整合到 2023 年即將開展的新專案計劃中。

指導團隊中的其他開發人員

隨著經驗的增加,你需要承擔起指導新員工或初級開發人員的工作。擔任導師可以提高個人的溝通技巧,也為今後的晉升鋪平道路。

為了成為一名有思想的軟體工程導師,在此我將分享以下幾點建議:

分享實現:讓新員工或初級開發人員有機會在你的指導下學習。剛開始的時候,建立定義清晰、範圍明確的任務,儘量減少歧義,隨著時間的推移逐步增加難度。

鼓勵:新員工或初級開發人員無法完全按照你的方式編寫程式碼。多包容,同時堅持遵守團隊風格指南和其他標準。在審查他們的程式碼時,提供積極和建設性的反饋。

定期會面:根據需要,每週或每兩週會面一次,進行15~30分鐘的交談。記下他們面臨的難題,並根據需要將其上報給經理或技術主管。

總結

最近,由於 ChatGPT 炒得火熱,不少人開始懷疑程式設計師是否以及何時會被 AI 取代。實際上,開發人員的職業發展本來就不僅限於寫程式碼,隨著升任新級別,我們離寫程式碼越來越遠,而離更多的會議室越來越近。

因此,如今的軟體開發人員真正寫程式碼的時間只有幾年。這種工作職責的轉變可能會讓一些人懷念舊時光,但這就是軟體開發職業生涯發展的自然規律,我們都要讓位於年輕一代的開發人員。

隨著在工作中承擔的責任越來越多,我不僅需要指導他人,而且還要自信而又清晰地描述實現的細節。我面臨著新的挑戰,而且應對方式也不同。

進步從來都不是線性的,但以成長的心態不斷努力,終有一天你將完成這種“高階轉變”。

寫在最後

對此,不少網友也表示認可:

這也不足為奇,軟體開發人員的職業發展本來就是兩條路:堅持寫程式碼或轉型管理。我選擇成為一名自由軟體開發人員已經 25 年多了,我見過很多開發人員都在這個問題上糾結,而我個人選擇自由職業就是為了堅持寫程式碼。所以,如果你對程式設計充滿熱情,我鼓勵你堅定地選擇這條路。

我認為,軟體開發人員的工作方式肯定會改變,而另一方面ChatGPT 是一種工具,只是簡單地從網上覆制貼上答案,可軟體開發不僅僅是寫程式碼,而且寫程式碼也不僅僅是輸入一組語法塊來構建程式。

對我來說,軟體開發週期包括從設計到實現,再到測試、交付以及維護等等,而將設計變成程式碼只是其中很小的一部分。根據我對人工智慧技術的瞭解,它可能永遠不會真正取代開發人員。雖然在普通人眼中 AI 似乎非常強大,但在開發人員看來,當前的 AI 只不過是非常複雜的統計模型,可以訪問龐大的資料基礎,實際上它們更像是非常複雜的搜尋引擎,可以在 80% 以上的時間內產生良好且相對準確的結果。

ChatGPT 並不是真正的技術革命,它只是過去 10 年(甚至更長時間)裡機器學習領域的技術集大成者。我認為 ChatGPT 取代程式設計師只不過是炒作的噱頭,騙騙外行罷了。

本人從事程式設計已經 45 年了,現任一家小型初創公司的 CTO。

一直以來,我非常重視設計,我會花很多時間在設計上,還有很多時間在程式設計以及設計以外的工作上。

但我仍然會花大量時間編寫程式碼。對我來說,親自動手編寫基本的 API 以及其他程式碼,比讓別人來做要快得多,而且最終呈現的結果也更好。

我永遠不會接受一份不讓我寫程式碼的工作,因看著一個很簡單的功能,別人需要花幾天的時間才能慢吞吞地寫出來,而我自己動手只需要幾個小時,這會很無聊,而且很折磨人。

我記得有一次,我和四位經理坐在一起開會,他們喋喋不休地討論如何提高團隊的產出,只有我一直在工作。最後,我說了一句:“公司裡多一個像我這樣的人,或者少一個像你們這樣的人,我們的問題就迎刃而解了。”所有人都笑了……

那麼,你現在每天花在寫程式碼上面的時間多嗎?歡迎留言分享你的現狀,亦或者參與《2023 中國開發者現狀有獎調查問卷》,告訴我們你真實的程式設計經歷,更有機會獲得 iPad 等精美禮品!