當前位置:
首頁 > 科技 > 坦然面對:應對前端疲勞

坦然面對:應對前端疲勞

前言

截止到今天,前端早讀課推送 1000 期了,在這走過的時間裡感謝各位作者的支持。今日早讀文章由眾成翻譯平台 @ 學會微笑翻譯 分享。

正文從這開始~

我最近和一個做後端開發的朋友討論我在工作之餘花了多長的時間去寫碼和學習寫碼。他給我看了Uncle Bob的《Clean Code》這本書中的一段話,它將音樂家們為準備音樂會而花費的時間與開發者讓代碼正確執行所用的練習時間進行了比較。

我喜歡這個類比,但是我不認為我完全認同它;首先這種想法會導致疲勞。我認為如果你想進一步磨練你的技術並擴大你的技能集,那麼這是很好的,但是要一天中每個小時都這樣做是很難持續的。

前端疲勞是非常真實的。 我看到過一些關於JavaScript疲勞的文章,但我認為問題遠不止於這種特定的語言。

先澄清一下,這篇文章不是在抱怨前端疲勞如何糟糕,以及技術發展太快—— 我喜歡技術迅速發展。同樣的,我可以感受到它是如何的勢不可擋,也會時不時地感覺自己要落伍了。

據我所知,這是一把雙刃劍。

首先作為一個前端開發者,你認為你的技能樹里應當有以下所有的技能:

HTML (整潔代碼,語義化標籤)

CSS (模塊化,可伸縮)

CSS 方法 (BEM, SMACSS, OOCSS)

CSS 預處理器 (像LESS, SCSS, PostCSS)

現代 CSS (Flexbox, Grid)

JS

現代 JS (ES6, Typescript)

JS 框架 (Angular, React, Vue [更多的之後在此插入])

JS 方法 (函數式編程, 面向對象)

JS 庫 (Immutable, Ramda, Lodash)

響應式設計原則

測試 (TDD)

測試框架 (Jasmine, Karma)

SVG

WebGL

動畫技術

可訪問性

可用性

性能

構建工具 (Grunt, Gulp, NPM 腳本)

資源打包工具 (WebPack, Browserify)

NPM 生態系統

了解不同瀏覽器的怪癖

敏捷方法

版本控制 (通常是 Git)

視覺設計基礎

軟技能,時間管理

對使用的後端語言有基本的了解。

此外,你還要涉足或展望這些技術:

Service workers

Progressive Web Apps (PWA)

Web組件化

其次,你的日常工作可能不會完全覆蓋這些技能,或者不會讓你有時間去學所有技術,因此怎樣才能在你的控制下去保證會所有的技能?

開發人員聽見「Progressive Web Apps」 這種術語可能會感到畏懼。新的方法和技巧導致疲勞感 —— 前端疲勞。

現在作為這些技術的消費者,你可能要做的是:

訂閱一打不同的開發者周刊簡報

添加Twitter訂閱

參加每周趕工作的前端團隊

在工作之外有輕鬆的渠道能和一些開發者交流

按照網上的教程 (希望不是過時的)

使用視頻課程培訓網站像 Frontend Masters

買web開發的書 (希望不是過時的)

參加技術聚會

參加會議

參加培訓課程

而作為一個貢獻者,你可能要做的是:

寫博客/雜誌文章

演講

直播

貢獻開源項目

做自己的業餘項目

最近我發現我的注意力被分散到三件事情上,我用三分之一的精力寫著代碼,同時戴著耳機一邊聽別人討論代碼,一邊在Slack上跟別人聊代碼。我決定適可而止——我的全部注意力都被代碼所佔據。我已經精疲力竭了。

雖然這肯定是極端情況,但我相信其他人也經歷過類似的事情。最重要的是,你可能有一份全職工作,家庭,朋友,業餘愛好。難怪我們中有那麼多人感覺力不從心並且懷疑我們是否做了正確的職業選擇。

我的一些前端同事都表示想要打包走人,然後換一個可以在五點結束的工作。但我認為前端工作仍舊吸引著某些的人,而如果放棄這份工作,成為一個房地產經紀人,你仍然想盡你的可能成為最好的房地產經紀人。在你的空閑時間你還是會參加房地產會議和跟蹤房價趨勢。很多個月以前,我在金融業工作,晚上我還在學習,閱讀相關資料,想成為我所選擇領域中技能最佳的人。

並不是只有這個領域需要付出巨大的精力,許多職業需要投入大量的精力並且在工作之外學習。也許前端開發的特殊之處在於技術發展得如此迅速,以至於好像有人一直在移動目標崗位。這就像每隔一天我就會收到一封電子郵件,上面寫著「XYZ」技術已死。我確定這不是真的,否則我們就沒有技術可用了。

生態系統處於不斷變化的狀態,我認為這是一件好事。就我個人而言,我喜歡扮演一個可以不斷地學習、發展和督促自己的角色,但這並不是說我不會偶爾感到不知所措。

考慮到這一點,我嘗試記住這些事情用來阻止我殫精竭慮,同時也有一些避免疲勞的通用建議。

我們是一樣的

我認識的開發者,無論是在工作中還是工作外,都是我認識的最聰明的人。但他們全都會感到不知所措。大多數人都有一些希望學習的技術清單。可能有少數人知道所有技術,而且在所有事情上都處於領先地位,但我們大多數人的處境完全相同。

我們仍然依賴Google和Stack Overflow來度過我們的一天,打開了超多的選項卡,全部是關於Web相關問題的答案。不止你一個人是這樣!

要高興地知道你不是一個糟糕的開發人員,你只是還沒有嘗試過酷孩子們正在使用的東西。

是的,即使是「web名人」也有同樣的困境…

你不可能知道所有的事情,而你在Twitter上追隨的明星開發者在小部分的領域中表現得非常好。你會注意到,他們出名的領域恰好是他們所熟知的領域。可能也會有例外,但他們和我們一樣也只是個普通人。:)

冒充者綜合征是真實的,我們都有

我知道有有些優秀的前端開發人員不會申請職位,因為他們在不知道工作描述要求上的所有東西的情況下,就覺得自己是個騙子。引用其中一個:

「我看到的90%的JDs,會讓我感覺「啊,我太落後!」 。事實上,這讓我很困擾,我想留在我現在的職位,試圖賺更多的錢,只是因為這樣讓我覺得我已經「擺脫它」。」

事實上,大部分的工作說明都是鬧劇。我的朋友B?rd把這些說明放在一張大的圖片,來展示出前端工作要求和它們的真正含義之間的區別。

招聘廣告的解釋

只要記住,會變好的。我所做的每一項工作,我都覺得自己不夠深入,但最終你會習慣他們的工具和工作流程,你會學習並成為一個更好的開發人員。

不要害怕在工作中學習,掌握新技能的最佳方法是每天使用它們。

如果你有冒充者綜合征,可能你是個正派的開發者,否則你就不會自覺地意識到它。

鞏固基礎

人們很容易被耀眼的新事物分心,但是如果你的基礎還不牢固,那麼你所建造的東西將經受不住時間的考驗。

就像我的一個好朋友曾經對我說的:

「專註於基礎一直是我的口頭禪。你能建立良好的項目(SH!T)和解決問題,這才是最重要的,而你如何解決它們(所使用的工具)已經並將永遠改變。」

例如,當react一躍成名,它似乎總是和ES6捆綁在一起,我把重點放在語言的那些改變和新特性上而不是框架本身的細微差別。一旦react不火了,我從最新的JavaScript上學到的知識將繼續存在下去。你可以在原生chrome玩很多特性,而不用引入Babel陷入依賴地獄。

不用學所有的

這真的很關鍵。我認為正在扼殺我們的不是新框架、庫和模塊,而是我們自己必須把它們全部學會的信念。

通過學習我發現最好的辦法是專註——此刻我正在鑽研ES6中的JavaScript函數式編程。

我的清單上還有很多我想學的東西,但我盡量不分心。例如,我喜歡溫習我會的知識,玩Polymer,鑽研一些最新的CSS技術,比如Grid,但是如果我一次開始閱讀太多不同的領域,我得不到所有的信息。這些別的東西哪兒也去不了,再次看到的時候就能聯想到他們。

避免在某一主題上匆忙嘗試使用一切。 慢慢來,確保你完全理解它。

如果你像我一樣,你會有一個不斷增長的清單,但不要害怕從中剔除項目。並不是所有的事情都值得投入時間,你應該試著去認識哪些是值得學習的,哪些可能在幾年內消失。花時間來學習編程的設計模式和架構技術,相比於投入在當前火的框架,在長遠上來看,總是更有益的。脫離成長軌跡,過不了多久你就會迷失在追逐玩流行語的過程中。

大多數公司沒有使用尖端技術

現在有很多新的東西出現,web正在以驚人的速度發展,但通常企業真正在業務中開始採用這些新技術,需要很長的時間。大多數公司會等一段時間待技術成熟,並看到它在領域中被認可。

Angular 是六年前創建的,我剛開始在一家初創公司工作,他認為這是三年前的框架。Reactjs 已經有大約三年的歷史了,我現在的公司僅在今年聖誕節前才開始使用它。我確信有很多其他的框架在同一時間出現或者消失。如果所有的我都要去研究,我會發瘋的。

在CSS領域,flexbox在2010年就可以用了——六年前!但是瀏覽器到現在支持仍然有限。我們今年早些時候開始在生產環境中使用它,而且我也不認為它在其他地方被廣泛使用。

我的意思是,不必急於學習所有的東西,雖然技術可能會很快發展,但你的潛在僱主正在以較慢的速度前進。你不必走在曲線的前面,只是要確保你在觀察它的軌跡。

你學的越多,你會發現你不知道的也越來越多,這沒關係

這是完全正常的。當你剛開始的時候,你不知道你不知道什麼。然後你會學習一些東西並且認為你是一個天才。然後,漸漸地,這種幻覺被打破,你開始理解事實上在這之外你有多少東西不知道。

從本質上說,你得到的經驗越多,你進入的空虛就越深。你需要跟這個和平相處,否則它會消耗你。如果有的話,這種感覺會讓你相信你正朝著正確的方向前進。在我們選擇的職業中,你永遠不會舒舒服服地學會所有前端知識。

不要把你所有的業餘時間都花在學習上

你很容易就感覺到你遠遠落後,需要每分鐘都去編碼和學習。這是一張通往職業疲倦的單程票。留一些時間來發展你的技能,看看你是否可以與你的老闆協商一些時間來保證你的學習時間,然後用剩下的時間來做你愛做的事。

我已經分出一點寫代碼的時間在健身房。鍛煉對你的身心都是極其重要的。嘗試每天至少做20到30分鐘,可以保持頭腦清醒,防止疲勞。

給你的家人和朋友留出時間,盡量不要和他們談工作!

現在是開發者的市場

目前不要擔心找不到工作。此時我們正處於一個非常幸運的點,等待填充的崗位遠比開發者要多。我不知道這將持續多久,但現在好好把握它!

你可以在不知道所有技術的情況下得到一份工作。我發現,在我面試過的人中,99%的人完全是在吹牛。

最壞的情況,記住遺留代碼中有黃金。如果你是一個喜歡老方式的開發人員,總是會有一些公司依賴於傳統技術,需要開發人員在他們的軟體上工作。

結論

我希望其中的一些點有助於減輕你可能感到的一些挫折。你能做的最糟糕的事就是到達邊緣,完全被燒盡,因為一旦你這樣,很難恢復你對你所做的事情的熱情,以及你這麼做的初衷。

擼碼愉快!

最後,插播一個小福利以及規則

評論點贊數第一名者將獲得8月26號在北京舉辦的FeDay門票一張。

點贊數第二名~第五名每人將獲得一本《深入理解ES6》。

截止時間:當晚22:30分

如有並列,按自然順序

關於本文

譯者:@學會微笑

譯文:http://zcfy.cc/article/not-an-imposter-fighting-front-end-fatigue-ndash-smashing-magazine-3509.html

原文:https://www.smashingmagazine.com/2016/11/not-an-imposter-fighting-front-end-fatigue/

公眾號同名小程序「前端早讀課」也上線了,它不止只有前端。

有興趣的童鞋可以搜索看看並提意見。

點擊展開全文

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 前端早讀課 的精彩文章:

JSON schema與表單驗證
4種使用webpack提升vue應用的方式
前端處理大數據的無限可能
redux-react實踐總結
【第994期】字型大小與行高

TAG:前端早讀課 |

您可能感興趣

坦然面對,勇敢前行
面對中醫反對者的詆毀,我們如何優雅應對?
儘力之後,便是坦然面對!
面對抑鬱,真的能夠從容應對嗎?
諾伊爾世界盃前景堪憂,德國主帥勒夫卻坦然面對,原來他的心中早已有了應對方案!
面對情緒的困擾,我們該如何有效應對?
對於潛規則,韓雪淡然以對,面對霸氣回答,眾人只能苦笑
面對勞拉的抨擊,皇帝詹姆斯回應:「我絕對不會閉嘴」
面對面還是背對背?也許是空調沒選對
人生:淡定從容,坦然面對
能坦然面對的那些年
面對孕期水腫要如何應對?
面對中國式崛起,美國該如何應對?
如果事與願違,那就坦然面對
大戰一觸即發!俄羅斯面對5國勁敵,該如何應對
我們應該如何面對死亡?是坦然,還是努力求生?
面對侵害,當然要勇敢地說:NO
面對抑鬱症,自我應對的方法
面對渣男的傷害,你能否從容應對?
真的,坦然面對自己很難