脫發、禿頭防不勝防?這里有一份給碼農的減壓指南
近段時間,996成為了技術社區的熱門話題。工作壓力大、作息不規律,甚至脫發、禿頭,是碼農經常要面臨的問題,甚至已經變成常態。那么面臨持續高壓的工作,碼農應該如何自我減壓呢?一位軟件工程師給出了自己的建議。
開發者的世界總是忙碌的。無論你是個完全的新手還是經驗豐富的專家,總有事情在找你,你仿佛永遠都忙不完。下面,作者給出了一些建議來幫助開發者更好地工作。它主要分為四部分:心態、學習、社會壓力和工具集四部分。
一、心態
心態是一切的開始。感覺壓力大是因為要同時處理太多任務,受到太多的刺激。你需要重新調整注意力,把任務按照優先級進行排序。
1. 理解問題
理解問題是解決問題的第一步。你為什么會感到壓力山大呢?根本原因在哪里?有太多東西需要學、需要跟進嗎?工作中的責任太大?來自同齡人、同事的壓力太大?對自己期望過高?
坐下來,拿一張紙、一支筆,把你的問題寫出來,它能幫助你找到自己的問題所在,這樣你就能知道自己最需要學習什么。
2. 你不能一個人完成所有任務
每個人都不是全能的——所以我們需要團隊。你不可能是所有方面的專家。工程里的每個領域本身都是一個完整的課題,從 AI 到 DevOps,再到 CSS。類似的,寫教程、開源代碼、編外項目都需要花時間。每件事都需要花時間。
3. 沒有所謂「正確」的方法
現實生活中的做事方式有好有壞,但并沒有所謂「對」的方式,只有最適合的方式,編程尤其如此。
4. 找到自己的目標
你真正想要達到的目標是什么?你是想成為世界上專家,還是做好自己的工作然后回家陪伴家人?還是想找一份合適的工作?你不必按照別人的標準去生活,知道自己真正想要什么可以幫助你劃定自己的界限,專注于自己的目標并篩選出那些與你無關的事物。
二、學習
作為開發者,大部分知識需要自學-但對于我們中的很多人來說,這是一種相當新的學習方法。這種方法與正規教育不同,最重要的是,你不需要記住所有東西。理解主題范圍以及知道哪里可以獲得正確信息更為重要。熟能生巧嘛!
1. 建立自己的學習架構
自學的其中一項阻礙是了解自己學習什么-從哪里開始、哪些是重點內容以及需要覆蓋哪些知識點。沒有人為你設置相關課程,所以重要的是明確自己的學習架構。把所有要學的東西明確列出來會減輕你的認知負擔,同時促使你在今后的學習中堅持下去。做一些探索性研究有助于你把握住所有事情,你可以嘗試下列方法:
- 開發者學習路線圖,像 Kamran Ahmed 的一樣。這可以為你提供一些可視化結構,并將所有知識置于上下文背景中。記住,沒有人能夠完全了解它。
- 把自己不了解的知識列個清單,并將每次聽到的不熟悉的知識添加進去。
- 看網絡課程和課程大綱-即使你不是一位初學者。你不必上這些課程,但依然可以從涵蓋的主題中學到一些東西。
- 教科書。教科書內容也許過時了,但你依然可以對主題范圍有所了解。
- 瀏覽招聘廣告,看看你中意的工作需要什么知識和技能。這樣一來,你會了解什么是實際需要的,并確保自己沿著正確的職業道路發展。
2. 創建自己的核心資源
我們可以獲得的內容有很多,但并不是所有的都是有用和準確的。要知道發表一篇文章太容易了。只有當你發現自己需要某些文章并且這些文章可以解決自己的問題時,它們才最有價值。除此之外,一個好的方法是找到自己的核心資源——那些你可以反復依賴的關鍵網站和專家。下面提供幾種主要類型:
- 文檔。即使文檔的可讀性不強,但它們通常是最準確和新的信息。
- 參考文獻和學習資源。這些網站盡可能以最實用和有用的格式展示現實中的實踐信息。
- 專家。這些人和博客從頭到尾都知道自己的位置,他們會寫一些關于更好地做事方式的文章來幫助你。這些人并不難找,因為他們的名字會反復出現。
一旦你找到了自己最喜歡的資源,你就很少會去看其它的了。當然,偶爾走出去看看其它資源也是很好的,但前提是你把已有的東西都掌握好了。
3. 安排學習時間
每周留點時間去探索和學習。也不一定要學習多大的項目,僅僅熟悉一下清單上的幾個項目也行。一個小時的學習就能改變很多哦。
- 用 Pocket 保存文章以供以后閱讀,而不是把它們放在書簽中,或者工作中途閱讀它們。你可以用喜歡的方式標記它們,這樣有助于以后集中閱讀。
- 有時候,僅僅查詢一些東西并找出其定義就很有用,有助于你聯想腦海中記的一些事情。有時候有些看起來很重要的事情其實很簡單。
- 一次集中于一件事。不要嘗試一次解決多件事情,可以花半小時研究一個特定的主題,并正確理解它。
- 查看你的核心資源。可能你使用的一個框架需要更新,或者你發現了一些自己不知道的有用功能。
- 嘗試新事物。不是要你做一門課程或者使用工作中的一些東西來獲得其要點,就做一些好玩或者感興趣的事。比如,如果你沒用過 NoSQL 工作,可以克隆 MongoDB/Mongoose 種子項目玩一下。
定期做某件事能讓事情變得令人期待。通勤時間可以用來閱讀,周天晚上可以做實驗。另外,你還能從成就中獲得多巴胺的提升。
三、社會壓力
外界總是充實著各種噪音,尤其是網上,這很容易讓你感覺自己做什么都是錯的。其實你沒有錯,你只是需要更多角度。
1. 許多人寫的代碼很蹩腳
正如世界上有很多蹩腳的作家、歌手,就連谷歌也有人會寫出糟糕的代碼。我們能做的就是持續練習,不斷學習。
2. 人們只會展示自己做得好的地方
沒有人會告訴你自己修復一個簡單的小 bug 修到夜里 2 點,也沒有人會告訴你他們的日常工作都是在處理一些遺留代碼。他們展示的都是自己的編外項目以及自己近期的得意之作。社交媒體讓人覺得每個人似乎都在做自己夢想的工作,但其實許多人只是在不眠不休地趕上 deadline,直到深夜才離開辦公室。
3. 優先級劃分因人而異
一些人將開發視為自己的主業,有些人有其他的優先事項。有些人為最新技術而生,有些人為自己的副業拼命,還有些人只是想在社交媒體上出名。你不必花時間去追趕那些把每一分鐘的空閑時間都用在閱讀最新博客上的人。讓他們幫你做總結就可以了。
4. 想法因人而異
一邊有個人站出來宣稱某個框架或方法將大有可為,另一邊卻有人宣稱該框架或方法已死。人們對同一個事物總是抱有不同的看法,因為他們的視角、經歷、用法都不相同。也許他們都是對的,也許他們都不對。最有可能的情況是,他們都有部分意見是對的。如何評估這些意見取決于你自己。你要有自己的看法。
5. 文章都是騙人的
人們總喜歡寫一些關于可能性,而不是慣例的文章。多數文章你在日常工作中都用不到。看起來很酷、很吸引眼球并不代表有用,也不表示你需要掌握。
6. 招聘廣告夸大其詞
招聘廣告上的要求似乎無窮無盡,但這些通常都是為理想的候選人寫的。上面有些技能要求是你需要滿足的,但剩下的只是吹毛求疵。有些東西你會在工作中學到,而有些東西他們雖然想用但沒有付諸實踐,有些是五年規劃的一部分。還有一些只是關鍵詞堆砌,用一套大概的技能來吸引候選人:如果你了解 LESS,你就能輕松地學會 Sass。
7. 確保項目經理被通知到位
有時候項目經理不知道你在做的事情難度如何。可能他們不是技術人員,也可能他們的技能過時了。比如,解決某個問題并不是「添加一個下拉列表」就可以做到的,實際上,這是一個具有自動完成功能的定制選擇組件,它需要兩個新的 API 路徑。
四、工具集
編碼只是其中的一部分,有一套好用的工具將幫助你更好地工作以及管理工作負載。
1. 把時間花在核心技能上
像解決問題、批判性思考和測試這樣的技能對開發人員來說非常重要。花點時間學習如何有條不紊、系統地解決問題可以幫你節約很多時間。而且它對生活的各個方面都有幫助。
2. 使用適當的項目管理工具
規劃你的項目,管理任務,追蹤 bug。使用 git 進行版本控制。這些工具的存在就是為了幫助你追蹤所有正在進行的東西。不要把所有的東西都記在腦子里,那樣太累。
3. 最大限度減少重復工作
有些事情需要你花費很多精力去做,而有些事情你可以刪減一下讓它變得更簡單。
- 好用的代碼編輯器。像自動完成和工具提示定義這樣的功能可以幫助你集中精力編寫代碼,而不必總查看代碼庫。
- 使用代碼片段。好用的代碼編輯器可以讓你用快捷方式設置代碼片段,但有時候把代碼片段放置在文件中以便復制粘貼也很好。比如你發現自己總是搜索一樣的東西,你可以把它放在代碼片段文件中并添加注釋,這樣你下次要用的時候就能輕松地找到它了。
- 記錄緣由。通常你會發現自己總在通過一些代碼來弄清楚自己為什么這樣設計。這樣子重復地去嘗試和理解同樣的東西實在太費腦子了。所以,好好記錄代碼將有助于你節省時間和精力。
4. 呼吸新鮮空氣、去鍛煉、去交談
直直地坐在屏幕前盯著電腦看 10 個小時是不健康的。你可能會被想象中的問題搞得焦頭爛額,從而忽略大局。擺脫這種狀態,保持大腦和身體健康很重要。去外面呼吸,遛遛狗什么的。讓你的眼睛放松一下。和那些不懂什么是 HTML 的人聊聊天。
5. 尋求幫助
你社區的人會支持你的。所以他們會寫文章幫助大家,構建開源項目,并詢問你想要什么。針對你的工作負載,尋找好的資源、建議或支持。通常他們都會樂意幫忙。
希望這些建議中至少有一條能讓你感覺生活沒那么艱難。但我還有一個建議:
何不關上電腦?
原文鏈接:
https://medium.com/@juliahaigh/how-to-feel-less-overwhelmed-as-a-developer-79bc816709de
【本文是51CTO專欄機構“機器之心”的原創譯文,微信公眾號“機器之心( id: almosthuman2014)”】