前端疲勞是非常真實的。 我看到過一些關於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訂閱
- 參加每週趕工作的前端團隊
- 在工作之外有輕鬆的渠道能和一些開發者交流
- 按照網上的教程 (希望不是過時的)
- 使用視訊課程培訓網站
- 買web開發的書 (希望不是過時的)
- 參加技術聚會
- 參加會議
- 參加培訓課程
而作為一個貢獻者,你可能要做的是:
- 寫部落格/雜誌文章
- 演講
- 直播
- 貢獻開源專案
- 做自己的業餘專案
雖然這肯定是極端情況,但我相信其他人也經歷過類似的事情。最重要的是,你可能有一份全職工作,家庭,朋友,業餘愛好。難怪我們中有那麼多人感覺力不從心並且懷疑我們是否做了正確的職業選擇。
我的一些前端同事都表示想要打包走人,然後換一個可以在五點結束的工作。但我認為前端工作仍舊吸引著某些的人,而如果放棄這份工作,成為一個房地產經紀人,你仍然想盡你的可能成為最好的房地產經紀人。在你的空閒時間你還是會參加房地產會議和跟蹤房價趨勢。其實,都是一樣的
並不是只有這個領域需要付出巨大的精力,許多職業需要投入大量的精力並且在工作之外學習。也許前端開發的特殊之處在於技術發展得如此迅速,以至於好像有人一直在移動目標崗位。這就像每隔一天我就會收到一封電子郵件,上面寫著“XYZ”技術已死。我確定這不是真的,否則我們就沒有技術可用了。
生態系統處於不斷變化的狀態,我認為這是一件好事。就我個人而言,我喜歡扮演一個可以不斷地學習、發展和督促自己的角色,但這並不是說我不會偶爾感到不知所措。
考慮到這一點,我嘗試記住這些事情用來阻止我殫精竭慮,同時也有一些避免疲勞的通用建議。
我們是一樣的
我認識的開發者,無論是在工作中還是工作外,都是我認識的最聰明的人。但他們全都會感到不知所措。大多數人都有一些希望學習的技術清單。可能有少數人知道所有技術,而且在所有事情上都處於領先地位,但我們大多數人的處境完全相同。
我們仍然依賴Google等網站來度過我們的一天,開啟了超多的選項卡,全部是關於Web相關問題的答案。不止你一個人是這樣!
高興地知道你不是一個糟糕的開發人員,你只是還沒有嘗試過技術大牛們正在使用的東西。
是的,即使是“web名人”也有同樣的困境…
你會注意到,他們出名的領域恰好是他們所熟知的領域。可能也會有例外,但他們和我們一樣也只是個普通人。
只要記住,會變好的。我所做的每一項工作,我都覺得自己不夠深入,但最終你會習慣他們的工具和工作流程,你會學習併成為一個更好的開發人員。
不要害怕在工作中學習,掌握新技能的最佳方法是每天使用它們。
鞏固基礎
人們很容易被耀眼的新事物分心,但是如果你的基礎還不牢固,那麼你所建造的東西將經受不住時間的考驗。
“專注於基礎。你能建立良好的專案和解決問題,這才是最重要的,而你如何解決它們(所使用的工具)已經並將永遠改變。”
例如,當react一躍成名,它似乎總是和ES6捆綁在一起,我把重點放在語言的那些改變和新特性上而不是框架本身的細微差別。一旦react不火了,我從最新的JavaScript上學到的知識將繼續存在下去。你可以在原生chrome玩很多特性,而不用引入Babel陷入依賴地獄。
不用學所有的
這真的很關鍵。我認為正在扼殺我們的不是新框架、庫和模組,而是我們自己必須把它們全部學會的信念。
通過學習我發現最好的辦法是專注——此刻我正在鑽研ES6中的JavaScript函數語言程式設計。
我的清單上還有很多我想學的東西,但我儘量不分心。例如,我喜歡溫習我會的知識,鑽研一些最新的CSS技術,但是如果我一次開始閱讀太多不同的領域,我得不到所有的資訊。這些別的東西哪兒也去不了,再次看到的時候就能聯想到他們。
#避免在某一主題上匆忙嘗試使用一切。 慢慢來,確保你完全理解它。
如果你像我一樣,你會有一個不斷增長的清單,但不要害怕從中剔除專案。並不是所有的事情都值得投入時間,你應該試著去認識哪些是值得學習的,哪些可能在幾年內消失。花時間來學習程式設計的設計模式和架構技術,相比於投入在當前火的框架,在長遠上來看,總是更有益的。脫離成長軌跡,過不了多久你就會迷失在追逐玩流行語的過程中。
大多數公司沒有使用尖端技術
現在有很多新的東西出現,web正在以驚人的速度發展,但通常企業真正在業務中開始採用這些新技術,需要很長的時間。大多數公司會等一段時間待技術成熟,並看到它在領域中被認可。
Angular 是六年前建立的,我剛開始在一家初創公司工作,他認為這是三年前的框架。Reactjs 已經有大約三年的歷史了,我現在的公司僅在今年聖誕節前才開始使用它。我確信有很多其他的框架在同一時間出現或者消失。如果所有的我都要去研究,我會發瘋的。
在CSS領域,flexbox在2010年就可以用了——六年前!但是瀏覽器到現在支援仍然有限。我們今年早些時候開始在生產環境中使用它,而且我也不認為它在其他地方被廣泛使用。
我的意思是,不必急於學習所有的東西,雖然技術可能會很快發展,但你的潛在僱主正在以較慢的速度前進。你不必走在曲線的前面,只是要確保你在觀察它的軌跡
你學的越多,你會發現你不知道的也越來越多,這沒關係
這是完全正常的。當你剛開始的時候,你不知道你不知道什麼。然後你會學習一些東西並且認為你是一個天才。然後,漸漸地,這種幻覺被打破,你開始理解事實上在這之外你有多少東西不知道。
從本質上說,你得到的經驗越多,你進入的空虛就越深。你需要跟這個和平相處,否則它會消耗你。如果有的話,這種感覺會讓你相信你正朝著正確的方向前進。在我們選擇的職業中,你永遠不會舒舒服服地學會所有前端知識。
不要把你所有的業餘時間都花在學習上
你很容易就感覺到你遠遠落後,需要每分鐘都去編碼和學習。這是一張通往職業疲倦的單程票。留一些時間來發展你的技能,看看你是否可以與你的老闆協商一些時間來保證你的學習時間,然後用剩下的時間來做你愛做的事。
我已經分出一點寫程式碼的時間在健身房。鍛鍊對你的身心都是極其重要的。嘗試每天至少做20到30分鐘,可以保持頭腦清醒,防止疲勞。
給你的家人和朋友留出時間,儘量不要和他們談工作!
現在是開發者的市場
目前不要擔心找不到工作。此時我們正處於一個非常幸運的點,等待填充的崗位遠比開發者要多。我不知道這將持續多久,但現在好好把握它!
你可以在不知道所有技術的情況下得到一份工作。我發現,在我面試過的人中,99%的人完全是在吹牛。
最壞的情況,記住遺留程式碼中有黃金。如果你是一個喜歡老方式的開發人員,總是會有一些公司依賴於傳統技術,需要開發人員在他們的軟體上工作。
結論
我希望其中的一些點有助於減輕你可能感到的一些挫折。你能做的最糟糕的事就是到達邊緣,完全被燒盡,因為一旦你這樣,很難恢復你對你所做的事情的熱情,以及你這麼做的初衷。
這裡推薦一下我的前端學習交流群:784783012,裡面都是學習前端的,如果你想製作酷炫的網頁,想學習程式設計。自己整理了一份2018最全面前端學習資料,從最基礎的HTML+CSS+JS【炫酷特效,遊戲,外掛封裝,設計模式】到移動端HTML5的專案實戰的學習資料都有整理,送給每一位前端小夥伴,有想學習web前端的,或是轉行,或是大學生,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習。
點選:加入