想成為軟體工程師?Leit Code 的迷思
想成為軟體工程師嗎?第一步就是在四位工程師默默審視你的存在時,在白板上於 30 秒內反轉二元樹。歡迎來到 Leit Code,一個心理健身房,你應該在這裡努力訓練以獲得六位數的工作。
Leit Code 的初衷與變質
Leit Code 的初衷是幫助你進行演算法思考,公平地說,它確實做到了。但不知從何時開始,它不再是一個學習工具,而變成了一種宗教。現在,它正在吸走開發人員的創造力,因為我們不再問:「我可以建立什麼?」,而是問:「我如何在計時器歸零之前以 Olog N 解決這個旋轉陣列問題?」
訓練成為解題機器
我們不是在編碼,而是在為某個反烏托邦遊戲節目進行訓練。我們將軟體開發變成了一場選擇題考試。你不會探索,你不會發明。你只是用蠻力通過一個題庫,祈禱它符合公司的樹狀結構遍歷風格。
時間與精力的錯置
你本可以建立一些很酷的東西,但你卻花了一整個週末做 Tusome 問題的各種變體,好像這將是你最終找到工作的原因。
業界的推波助瀾
業界並不關心你是否能建立一個真正的產品。他們關心你是否能在壓力鍋般的面試中緊急編碼解決終局皇后問題。這不再是關於成為一個好的開發人員,而是關於成為一個好的表演者,一個可以根據命令處理邊緣情況並微笑以對的人。
現實與理想的差距
而猜猜你得到工作後會發生什麼?沒有人,真的沒有人會再要求你反轉二元樹。你會花時間除錯奇怪的遺留程式碼、爭論 API 設計,並與 Jenkins 奮戰,因為現在是下午 3 點,而且當然,管線再次失敗了。
不合理的評價標準
同時,一些建立了三個令人驚嘆的全端專案的可憐初級開發人員被淘汰了,因為他們沒有 Leit Code 做得夠好。我們建立了一個解決玩具問題比建立真實事物更有價值的系統。
實際工作所需技能的忽略
具有諷刺意味的是,你在工作中實際使用的大部分技能,例如溝通、架構、閱讀文件、協作,Leit Code 都沒有教你。
Leit Code 的定位
我並不是說 Leit Code 毫無用處。如果你想在 Google 工作,那就去努力訓練吧。這是遊戲的一部分。但不要將解決難題與成為更好的開發人員混淆。
重視實作與創造力
編寫 500 個沒有用戶要求的問題的解決方案,並不能教會你如何交付、協作或像工程師一樣思考。創造力不是記住 14 種反轉字串的方法,而是將一個混亂的想法變成真實的東西,即使它一開始很粗糙。這是解決你關心的問題,而不是 Leit Code 精選的難度列表。
解決真正的問題,成為一個建造者
所以,如果你感到倦怠並想知道為什麼你覺得自己沒有變得更好,也許是因為你正在解決錯誤的問題。建立一些東西,打破它,修復它。你將從一個失敗的副專案中學到的東西比 100 個已解決的問題還要多。是的,當然,偶爾反轉一個鏈結串列來保持演算法肌肉的活力,但不要讓 Leit Code 讓你相信你作為開發人員的價值是由你的問題數量來定義的。你不是解決方案機器,你是一個建造者。