我希望我從未學過編程

我是一名程序員。你可能會覺得我是專業的軟件工程師,但實際上,軟件工程不只是一個專業,還是一種生活方式。連帽衫、乒乓球、喫不完的零食和蘇打水……都是這種生活的一部分。但雖然這個職業可以給人帶來那麼多回報,我還是要坦白一件事:

有時我希望自己從來沒有學過編程。

怪癖

自從我開始學習編程以來,就再也不能像以前那樣輕鬆地瀏覽網頁了。我無法再平靜地接受在各種網站上遇到的各種 bug。每當有奇怪的事情發生時,我的好奇心就上了頭,然後就會打開瀏覽器開發工具開始調試網頁。

嘗試提交表單時出現加密錯誤消息?看到這樣的錯誤,我會深入 JavaScript 控制檯,查找錯誤消息,深入研究源代碼,並仔細觀察進進出出的網絡請求。頁面 UI 看起來有些過時,或者頁面佈局很漂亮?不管怎樣,我都會調整瀏覽器窗口大小,檢查頁面響應屏幕尺寸的能力。什麼?你竟然選擇了 Comic Sans 字體?我可能永遠不會再使用你或你們公司的產品了。

請不要使用 ComicSans

職業生涯

覺得我的這些瀏覽習慣很怪異嗎?這還不算啥,我和其他軟件工程師的對話會讓你印象更深刻的。總體而言,工程師往往固執己見。我們的血液中流淌着迂腐的基因。你喜歡使用空格還是 tabs 縮進代碼?你更喜歡 Vim 還是 Emacs?Chrome 還是 Firefox?

聰明點的人會問到,這些對話“真的重要嗎?”。Bikeshedding(在瑣碎細節上浪費時間)是確實存在的現象,大家都需要經常反省。

xkcd——真正的程序員

隨着越來越多的公司採用敏捷方法,我們還得時常考慮在 Waterfall、Scrum 或 Kanban 開發生命週期之間權衡取捨。我們所有人都喜歡鄙視 Waterfall,畢竟這是老式的低效率公司所使用的遺留品。但是 Scrum 與看板之戰還在繼續。

你竟然是 Scrum 的信徒?我敢打賭,你爲了滿足那些 time box 會倉促提交混亂的代碼,才能在衝刺結束之前趕上假想的時限。

說到敏捷,故事的重點在哪裏?時間尺度?努力?複雜性?風險?這些都有?你我可能會花費幾小時時間來爭論每個定義的優缺點,最後還是無法達成共識。

在某些時候,這種爭論可能會演變爲更多的 bikeshedding,但能夠相互理解和有效溝通是至關重要的,其中就包括了對我們日常使用的術語達成共識。

前端開發帶來的爭論又是數不清的,其中最典型的是:“我們要到什麼時候纔會放棄對 Internet Explorer 的支持?”我必須在“討厭 Internet Explorer,想要放棄它”和了解還在用它的客戶需求之間找到完美的平衡點。

持續學習

持續學習是每一位開發者必備的能力,因爲技術形勢日新月異。每月都有成百上千的新庫和框架發佈。JavaScript 倦怠不是什麼幻覺,“學不動了”也不僅僅是調侃。

我得花一天的時間配置 Webpack、Rollup 和 Babel 以使用最新的 ES6+ 語法,而旁人聽我這麼說就像在聽天書。Angular 和 AngularJS 截然不同?LitElement、Svelte 和 Stencil 似乎是很有前途的 Web 組件解決方案?Deno 可能是下一個 Node?聽着都像是謎語。

當有人問我做什麼工作時,我總會蹦出來一堆術語:“我通常使用前端技術,例如 HTML、CSS 和 JS。有時我必須使用 PHP 或 SQL,但我更多是 MEAN/MERN 棧開發人員。有時我使用 Heroku 之類的 PaaS 技術,還有時我會使用 AWS 或 GCP 之類的 IaaS 提供商。”

個人生活

在業餘時間裏,我讀的書乾貨十足,例如《乾淨代碼》《重構》和《領域驅動設計》。我不是在看教科書,就是在閱讀裏面寫着可疑建議的文章,或觀看一些編程教程。關於編程的播客更能吸引人,這樣我就能在路上聽某人談論寫代碼的方法,然後我又可以花一天時間談相關話題了。

除了在線獲取內容外,軟件工程師還會花費大量個人時間來在網上創建內容。我個人的興趣是構建簡單的應用和遊戲,其實沒人看得到。這是浪費時間嗎?也許是吧,但的確挺有意思的。

企業 BS 生成器應用

事實是……

可事實是,編程給了我創造和創新的機會。它幫助我將創意變爲現實,讓我幾乎從零開始構築了很多東西。軟件工程使我能夠解決有趣而艱鉅的挑戰,理想情況下還能讓人們的生活更輕鬆一些。編程使我的思維更具邏輯性。編程讓我有機會不斷學習,我還能以編程爲職業獲取薪水!

事實是,我喜歡編程。

原文鏈接

https://hackernoon.com/i-wish-i-never-learned-to-code-7a1m3wwx

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