全文共2137字,預計學習時長6分鐘

真正的軟體工程不僅僅是一門技術,更是一種生活方式。我靠寫代碼謀生,連帽衫、桌球、隨處可見的零食和飲料,這就是我的真實生活。儘管從事這一領域會有回報,但我必須承認:有時真希望自己從沒學過編碼。
怪癖
自從我開始學習編寫代碼以來,瀏覽網頁就變得不一樣了。我再也不能忍受我在使用其他網站時遇到的錯誤。每當有什麼奇怪的事情發生時,好奇心就佔了上風,這時我必須打開瀏覽器的開發工具,開始調試。
試圖提交表單時出現神秘的錯誤消息?這時我會深入研究JavaScript控制臺、查找錯誤消息、挖掘原始碼,並通過網絡請求觀察它們。
用戶界面看起來有點過時,或者頁面布局非常華麗?不管怎樣,我都會調整瀏覽器窗口的大小,看看它處理屏幕大小的響應能力如何。你選擇的字體是Comic Sans嗎?我可能再也不會相信你和你的公司了。

職業生涯
總的來說,工程師們相當固執己見,學究氣已深入骨髓。是否使用空格或制表符縮進代碼?更喜歡用Vim還是Emacs?Chrome還是Firefox?這些對話最終會導致有人問「這真的重要嗎?」,現實生活中經常會有人浪費時間和精力討論這種意義不大的問題。

隨著越來越多的公司採用敏捷項目管理方法,有時不得不在使用Waterfall、Scrum、或者Kanban的開發周期之間進行比較取捨。我們都喜歡抨擊Waterfall,認為它是過時的、效率低下的公司所使用的老古董。然而,Scrum與Kanban的戰爭仍在繼續。
「你說你是Scrum的忠實粉絲?我敢打賭,你一定喜歡人工時間框,它能輕鬆發送匆忙的代碼,以便在sprint結束之前完成想像中的最後期限。」

說到敏捷法,具體指哪方面?時間尺度?努力?複雜性?風險?或者所有這些?可能會花上幾個小時討論每一個定義的優點,但最終無法達成共識。在某種程度上,這可能會演變成一場無意義的討論,但能夠相互理解和有效溝通是至關重要的,這包括對我們一天中使用的術語有一個共同的理解。
前端開發打開了另一個話題世界,最引人注目的是:「什麼時候才能最終放棄對InternetExplorer的支持?」我必須得拿捏好分寸,一邊對它深惡痛絕,時刻都想放棄它,同時也明白,對於那些已正在使用,深受其害的客戶來說,需要支持它。

持續學習
隨著技術環境的不斷變化,持續學習是軟體工程的重要組成部分。每個月都有數百個新的庫和框架發布,JavaScript枯竭是真實存在的。當我告訴別人我花了一天時間配置Webpack、Rollup和Babel以使用最新的ES6+語法時,他們可能認為我是在胡編亂造。
Angular和Angular是兩個完全不同的東西;LitElement、Svelte和Stencil似乎是有前途的web組件解決方案;Deno可能是新的Node。
當有人問我工作時所使用的工具時,我只能直截了當地說:「我通常使用前端技術,像HTML、CSS和JS。有時我不得不使用PHP或SQL,但我更像是一個MEAN/MERN堆棧開發人員。有時使用Heroku之類的PaaS技術,但有時使用的是像AWS或GCP這樣的IaaS提供商。」

業餘生活
閒暇時,我會讀一些枯燥乏味的書,比如「乾淨的代碼」、「重構」和「領域驅動設計」。除了教科書,我還會在網上讀一些文章,這些文章裡時常會有一些建設性的建議,或者看看別人的編碼教程。
我更喜歡聽關於編程的播客,在上班的路上,沒什麼比聽別人談論代碼更好的事情了。因為到達上班地點,我也要整天討論代碼了。
除了通過網絡獲取資源外,軟體工程師還將他們個人生活的大部分時間用於在線創建內容。我的個人愛好是開發一些沒人見過的簡單應用程式和遊戲,比如 Crossy Block,它是 Flappy Bird knock-off的仿製品,還有corporate BSgenerator。這是在浪費時間嗎?也許吧。但是,當人們看到這些應用程式時,是否也能讓他們在兩分鐘內感到快樂呢?當然是。

編碼給了我一個機會,讓我可以去創造一些東西,並賦予了我創造力。它讓我對生活有了新的看法,甚至可以說是重塑了我的生活。軟體工程使我能夠解決困難但有趣的挑戰,並希望能夠用自己微不足道的力量使人們的生活過得更輕鬆。軟體工程有助於我的職業發展,使人有機會不斷學習,並從中受益匪淺!
好吧,我不得不承認,我熱愛編碼。
留言點讚關注
我們一起分享AI學習與發展的乾貨
如轉載,請後臺留言,遵守轉載規範