Categories
程式開發

我希望我從未學過編程


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

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

怪癖

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

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

我希望我從未學過編程 1

請不要使用ComicSans

職業生涯

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

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

我希望我從未學過編程 2

xkcd——真正的程序員

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

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

我希望我從未學過編程 3

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

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

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

我希望我從未學過編程 4

持續學習

持續學習是每一位開發者必備的能力,因為技術形勢日新月異。每月都有成百上千的新庫和框架發布。 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 提供商。”

我希望我從未學過編程 5

個人生活

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

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

我希望我從未學過編程 6

企業BS 生成器應用

事實是……

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

事實是,我喜歡編程。

原文鏈接

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