大家傾向認為把工作帶回家作可以讓你成為一個更好的軟體工程師,生活及工作的平衡只會限制學習。
但實際上,要成為一個好的軟體工程師,你不應該把工作帶回家。
怎麼才算是一個好的軟體工程師?有能力可以解決困難且複雜的問題。這就是為什麼在你正常工作時間外花額外的時間並不會讓你成為一名優秀的工程師。
如果在你空閒的時間你有餘力寫程式,你可以為你的工作做更多。但這限制了你會遇到的問題以及考慮的解決方法。
如果你把工作帶回家,這會讓你一直在解決跟你工作時一樣的問題。你需要用符合雇主的目標的技術,用同樣的標準來達到雇主預期的品質。但如果你在寫你自己的專案,你不會受到這些限制。
我有次在寫一個 Python 的程式,雖然沒有沒有跑得好到可以用,但這個過程還是很有教育性。(這段我省略了他描述技術的部分,因為我實在看不懂)
不同的專案可以讓你學到其他東西,這會讓你成為更好的工程師。就算你沒有動力或時間在家裡寫程式也不用害怕,工作與生活的平衡還是可以讓你成為一個更好的軟體工程師。
作為一個好的軟體工程師並不只是寫程式而已。還有很多其他技巧你需要會,花時間在學習這些東西仍然會增加你的能力。
當我年輕有很多時間時,晚上都去攻讀大學的自由派藝術學位,其中我學會了如了尋找其中抽象的概念、怎麼組織這些寫法、怎麼解釋複雜的概念、怎麼解讀文字中細微的差異。這對我在處理很困難的問題時非常有幫助,像是需要好的抽象能力和設計文件的時候。
這些年我花很多時間在我孩子身上,這影響了我學習什麼東西。比如說,需要簡化複雜到東西,好向一個四歲的小孩解釋其中最核心的概念。
雖然學習其他東西可以幫助你,但工作/生活平衡最大的好處是:你沒有在工作。困難的問題需要時間沈澱,那些時間你是真的沒有在思考,這些時間是給你的腦袋重新組合一切。Clojure 的發明者 Rich Hickey,有個很棒的演講題目是Hammock Driven Development。
重點在於困難的問題需要大量的研究,尋找可以使用的解決辦法,然後讓你的大腦自行重新排列組合,這是需要時間的,而這些時間是你沒有在想這些問題的。
有時我在照顧小孩時,雖然沒有到真的很放鬆的狀態,遇到的問題也沒有達到 Hickey 說困難問題的標準。但我發現一段時間沒有在思考問題還是對於我隔天上班很有幫助
最後一個工作/生活的平衡的好處是態度:你對你的工作的想法。如果你在額外的時間做你的工作,你在讓自己花更多非必要的時間在工作上。作爲一個軟體工程師想要進步,你應該要學習如何在更短的時間完成你的工作,這在處理大型寫款難的專案時尤其重要。
合理的工作,限制工作的時數讓你專注在在如何更有生產力,而不是用一個很困難很慢的方式解決問題。
讓自己不要把工作帶回家吧。如果你想要繼續寫程式,找出你有興趣的專案應該不會太難。如果你沒辦法或不想要在空閒的時間寫程式,那也沒關係。
但如果你沒有選擇?你在工作和生活中並沒有平衡,因為來自你老闆的壓力或是在工作上一直有緊急的狀況。這個情況你應該要來上我的免費課程,教你如何有個比較合理比較短的工作時數。
原文:Work/Life Balance Will Make You a Better Software Engineer