不是冒名頂替者:對抗前端疲勞
已發表: 2022-03-10我最近與一位後端開發人員朋友討論了我在工作之外花費了多少時間進行編碼或學習代碼。 他向我展示了 Bob 叔叔的書“清潔代碼”中的一段話,其中比較了音樂家為準備音樂會所花費的時間與開發人員排練代碼以在工作中表演的時間。
我喜歡這個類比,但我不確定我是否完全同意它; 正是這種思維方式首先會導致倦怠。 我認為如果你想進一步提升你的手藝並拓寬你的技能組合,這很好,但每天都這樣做是不可持續的。
前端疲勞是非常真實的。 我看過很多關於 JavaScript 疲勞的帖子,但我認為問題超出了特定語言的範圍。
需要明確的是,這並不是又一次抱怨這一切都是多麼糟糕,一切都進展得太快了——我喜歡技術發展如此之快。 同樣,我可以理解它是如何壓倒性的,並且有時我自己肯定會感到筋疲力盡。
關於 SmashingMag 的進一步閱讀:
- 來自前端黑暗角落的骯髒技巧
- 前端開發人員對規範的頌歌
- 如何準備前端工作面試
據我所知,這是一個兩方面的問題。
首先,作為一名前端開發人員,你認為你的武器庫中應該有以下所有內容:
- HTML(編寫乾淨的語義標記)
- CSS(模塊化,可擴展)
- CSS 方法(BEM、SMACSS、OOCSS)
- CSS 預處理器(類似 LESS、SCSS、PostCSS)
- 現代 CSS(Flexbox、網格)
- JS
- 現代 JS(ES6,打字稿)
- JS 框架(Angular、React、Vue [在此處插入最新]
- JS 方法論(函數式編程,OOP)
- JS 庫(不可變、Ramda、Lodash)
- 響應式設計原則
- 測試 (TDD)
- 測試框架(Jasmine、Karma)
- SVG
- WebGL
- 動畫技術
- 可訪問性
- 可用性
- 表現
- 構建工具(Grunt、Gulp、NPM 腳本)
- 資產捆綁器(WebPack、Browserify)
- NPM 生態系統
- 了解不同的瀏覽器怪癖
- 敏捷方法論
- 版本控制(通常是 Git)
- 視覺設計基礎
- 軟技能,時間管理
- 對所使用的任何後端語言有基本的了解
最重要的是,您要么涉足,要么正在尋找以下內容:
- 服務人員
- 漸進式 Web 應用程序 (PWA)
- 網頁組件
第二個是您的日常工作可能沒有涵蓋所有內容或給您時間學習所有內容,那麼您將如何確保您擁有所有可用的工具?
現在,作為消費者,您可以:
- 訂閱一堆不同的每週開發通訊
- 搜索您的 Twitter 提要
- 參加每週一次的追趕你的前端團隊的工作
- 與少數開發人員一起工作之外有一個 Slack 頻道,您也可以與他們交談
- 遵循在線教程(希望不會過時)
- 使用像 Frontend Masters 這樣的視頻課程培訓網站
- 購買 Web 開發書籍(希望不會過時)
- 參加聚會
- 參加會議
- 參加培訓課程
作為貢獻者,您可以:
- 寫博客/雜誌文章
- 涉足口語
- 運行播客
- 為開源項目做貢獻
- 有自己的副業
最近我發現我的注意力分散在三個方面,我將三分之一的注意力集中在編寫代碼上,戴著耳機半聽關於代碼的討論,同時在 Slack 上談論代碼。 我覺得夠了就夠了——每個孔都被代碼堵住了,我精神崩潰了。
雖然這肯定是極端情況,但我相信你們中的其他人也經歷過類似的事情。 最重要的是,你可能有一份全職工作、家庭、朋友和愛好。 難怪有這麼多人感到精疲力盡,想知道我們是否做出了正確的職業選擇。
我的一些前端同事表示有興趣將其全部打包並將工作切換到可以在五點鐘關閉的工作。 但我的一部分認為這份工作會吸引特定類型的人,如果我們把它全部扔掉,轉而成為一名房地產經紀人,你仍然想成為最好的房地產經紀人。 在空閒時間參加房地產中介見面會並跟踪房價趨勢。 許多個月前,我在金融業工作,晚上我還在學習並閱讀它,以成為我所選擇領域中最熟練的人。
在這門學科中,我們並不孤單,很多職業都需要大量的奉獻精神和工作之外的學習。 也許前端開發的問題在於技術發展如此之快,以至於感覺就像有人在不斷移動目標。 似乎每隔一天我都會收到一封電子郵件,說“XYZ”技術已經死了。 我敢肯定這不可能是真的,否則我們就沒有技術了。
生態系統處於不斷變化的狀態,我認為這可能是一件好事。 就我個人而言,我喜歡擔任一個可以不斷學習發展和推動自己的角色,但這並不是說我有時不會不知所措。
考慮到這一點,這裡有一些我試圖記住的事情,以防止我的頭爆炸,以及一些關於如何避免疲勞的一般建議。
我們都在一起
我認識的開發人員,無論是在工作中還是在工作之外,都是我認識的最聰明的人之一。 但他們都感到不知所措。 大多數人都有一些他們正在嘗試學習的技術的願望清單。 可能有少數人知道這一切並且掌握一切,但我們中的大多數人都處於完全相同的位置。
我們仍然依賴谷歌和 Stack Overflow 來幫助我們度過這一天,並且打開了太多的選項卡,裡面裝滿了網絡相關問題的答案。 你不是一個人!
很高興知道您不是一個糟糕的開發人員,只是因為您還沒有嘗試過酷孩子正在使用的任何東西。
是的,即使是“網絡名人”也在同一個地方……
你不可能知道所有事情,而且你在 Twitter 上關注的搖滾明星開發者往往在某些領域都非常出色。 您會注意到它們與他們因知識淵博而聞名的領域相同。 同樣會有例外,但他們只是像我們一樣的人類。 :)
冒名頂替綜合症是真實的,我們都有
我認識幾個優秀的前端開發人員,他們不會申請職位,因為在不了解職位描述要求的所有內容的情況下,他們會覺得自己像是在欺騙自己。 引用其中之一:
“我看到的 90% 的 JD 讓我覺得“啊,我太落後了!”事實上,這讓我非常困擾,以至於我正在考慮繼續我現在的角色,並試圖爭取更多的錢僅僅因為我覺得我在這裡“逍遙法外”。”
事實上,這些工作規範中的大多數都是一場鬧劇。 我的朋友巴德把這張很棒的圖片放在一起,展示了前端工作規範所說的和它們的意思之間的區別。
請記住,一切都會好的。 我所做的每一份工作一開始我都覺得我的深度不夠,但最終你會習慣他們的工具和工作流程,你會學習並成為更好的開發人員。
不要害怕在工作中學習,學習新技能的最好方法就是每天都在使用它們。
如果您患有冒名頂替綜合症,那麼您很可能實際上是一個體面的開發人員,因為否則您將沒有足夠的自我意識來意識到這一點。
鎖定您的基本面
閃亮的新事物很容易讓人分心,但如果你的基礎不牢固,那麼你正在建造的東西很可能經不起時間的考驗。
正如我的一個好朋友曾經對我說的:
“專注於基本面一直是我的口頭禪。如果你能建立良好的 sh!t 並解決問題,那麼這就是最重要的,你解決問題的方式(工具)已經並將永遠改變。”
例如,當 React 一舉成名時,它似乎總是與 ES6 捆綁在一起,我將重點放在語言的這些更改或添加上,而不是框架本身的細微差別上。 一旦 React 消亡,我從掌握最新的 vanilla Javascript 中獲得的知識將繼續存在。 您可以在 Chrome 中原生使用許多功能,因此您不必拉入 Babel 並陷入依賴地獄來使用它。
你不需要什麼都學
這真的很關鍵。 我認為殺死我們的不是新的框架、庫和模塊,而是我們自己的信念,我們必須全部學習它們。
通過學習,我發現最好的辦法是保持專注——目前我正在研究 ES6 中的函數式 JavaScript 編程。
我的清單上還有很多其他的東西我想學習,但我盡量不分心。 例如,我很想複習我的可訪問性知識,玩弄 Polymer 並深入研究一些最新的 CSS 技術,例如 Grid,但是如果我一次開始閱讀太多不同領域的內容,我將無法保留所有信息。 這些其他的東西不會去任何地方,當我找到它們時,我會找到它們。
避免急於嘗試並消耗給定主題的所有內容。 花點時間,確保你徹底理解它。
如果您像我一樣,您將擁有一個不斷增長的列表,但不要害怕從中挑選項目。 並非所有事情都值得投入時間,您應該嘗試認識到值得學習的內容以及幾年後可能會消失的內容。 從長遠來看,花時間學習編程設計模式和架構技術總是比跳到框架領域的當前熱點更有益。 你最終只會在賽道上短暫地再次爭先恐後地玩流行語賓果遊戲。
大多數公司沒有使用前沿技術
有很多新東西出現,網絡正在以驚人的速度發展,但通常企業需要很長時間才能真正開始採用這些新技術。 大多數公司會等待技術成熟一段時間,然後看到它在該領域得到證明。
Angular 是六年前創建的,我第一次開始在一家初創公司工作,三年前他們決定使用它作為框架。 Reactjs 已經問世三年多了,我現在的公司在聖誕節前開始使用它。 我敢肯定,在那段時間裡,很多其他的框架來來去去。 如果我跳到他們身上,我會發瘋的。
在 CSS 領域,Flexbox 自 2010 年(六年前)就可用了! 瀏覽器支持仍然有限。 今年早些時候,我們開始在生產中使用它,但我看不到它在其他地方被廣泛使用。
我的觀點是,不要急於學習所有的東西,而技術可能會迅速發展,你的潛在雇主的發展速度會慢得多。 你不必走在曲線的前面,只要確保你密切關注它的軌跡。
你學的越多,你發現你不知道的越多,沒關係
這是完全正常的。 當你第一次開始時,你不知道你不知道什麼。 然後你學到了一些東西並決定你是個天才。 然後一點一點地幻想解開,你開始理解實際上有多少你不知道。
從本質上講,您獲得的經驗越多,您進入的空白就越深。 你需要和它和平相處,否則它會吞噬你。 如果有的話,這種感覺應該讓你相信你正朝著正確的方向前進。 在我們選擇的職業中,您可能永遠無法舒適地坐在由所有前端知識構建的寶座上。
不要把所有的空閒時間都花在學習上
很容易感覺到你遠遠落後,你需要每分鐘都在編碼和學習。 這是前往倦怠城的單程票。 留出一些時間來發展你的技能,看看你是否可以與你的老闆協商一些時間,以便安排好時間,然後把剩下的時間花在做你喜歡的事情上。
我在健身房有過一些編碼頓悟。 鍛煉對您的思想和身體都非常重要。 嘗試每天至少做 20-30 分鐘,以保持頭腦清醒並幫助防止倦怠。
為您的家人和朋友騰出時間——盡量不要和他們談生意!
這是一個開發者的市場
不要擔心現在找不到工作。 目前,我們處於一個非常幸運的位置,有比開發人員更多的角色來填補它們。 我不知道這會持續多久,但現在就利用它吧!
你可以在不知道所有事情的情況下找到一份工作。 我發現在我進行的採訪中,99% 的人都在吹噓。
最壞的情況,請記住遺留代碼中有黃金。 如果您是喜歡舊方式的開發人員,那麼總會有公司堅持使用需要開發人員開發他們的軟件的遺留技術。
結論
我希望其中一些建議有助於減輕您可能會感到的一些挫敗感。 你能做的最糟糕的事情就是到達邊緣並完全筋疲力盡,因為一旦你做到了,就很難重新獲得對你所做的事情以及你最初為什麼開始這樣做的熱情。
快樂編碼!