目前經常使用小程序 小遊戲也沒有接觸過 vue react都有接觸並且開發過 vue相對來說簡單也比較熟悉一些 node沒怎麼基礎過 瀏覽器的方面的知識也比較少 就彷佛一個小程序的開發工具一樣 現在想提升 應該如何去提升鴨 各位大佬 目前想一直在前端的這條路發展


我在《我的2020年個人總結》裏提到過,程序員的三個常見瓶頸:

  • 程序員的第一次瓶頸是發現自己只會使用別人提供的 API,解決辦法是自己寫出 API 給別人用。
  • 程序員的第二次瓶頸是發現框架很好用或不好用,想知道原理,解決辦法是自己嘗試寫出一個簡版的框架。
  • 程序員的第三次瓶頸是業務總是類似的,解決辦法是做出一個通用的解決方案,可幾分鐘解決一個類似的業務需求。

你處於第一次瓶頸,建議你造輪子。

比如用 Vue 寫個 Datepicker,用 React 寫個表單驗證,用 Node.js 寫個 HTTP 請求庫……


前幾天去理髮,撇開理髮師洗頭頂時格外小心的手不談,有個場景我覺得挺有意思的。理髮師問想怎麼剪,我說隨便我不在乎,他卻犯了難。

在那一刻我沒去想術業有專攻這類事,想的更多的是,我作為前端好像也會這樣,聽從指揮就是幹,但問到自己的想法時思路相當貧乏。

比如有沒有其他給用戶發通知的方式,比如如何獲取到視頻寬高,比如需求的這種動畫我用哪種技術更好做呢,等等。這牽扯到工作分配/難點突破/技術選型等各方面,在崗位上它可能已經被產品或大佬給分走了,那把這些搶過來感覺也算是個進步的道路吧。

我就走的這條路,慢慢地我覺得框架啊語言啊真的不重要。比如動畫是用 canvas、svg、lottie、spine、cocos、gif 全都行,那它們的優劣點在哪裡;新版 vue3 是為瞭解決什麼問題,我當時用的時候有它是問題的感覺嗎,玩 react、flutter 的時候有這問題嗎。此時你的腦袋裡的想法就無比豐富有趣了,其實面試中級以上的程序員時這類想法也是最打動人的。

慢慢能懂得「能幫助偷懶的技術都是好技術」這句話,對技術抱有奇怪的探索。比如 serverless 表面上還是寫 node 而已,但實際已經有相當多倉庫用它來做自動簽到搶票之類的薅羊毛工具;比如 electron 都知道它能做桌面端,但其實我悄咪咪地用它做了個番號資源管理工具。這些工具產品也是前端,或者更寬泛的工程師,會去想做且能做到的東西。不但能得到實惠,還能學到源碼。

同時也開始更好奇關心技術的其他方面。不要覺得那是產品經理的事,真的只是生活的日常而已。比如本來就想 node 寫個腳本批量改文件名而已,後來還能用它規範番號,還能去比對是否下載過,還能找到下載過的重複番名。非常日常,但需要有技術改變生活的觀念。然後在工作中,你也就慢慢會有搞個腳本/搞個自動/搞個平臺之類的想法了。

而此時你再反問下自己,如果你是理髮師,用戶說隨便剪時,你有自信幫他設計髮型了嗎,想必很容易就有答案了。


從你的描述來看,你接觸過的技術,都只是會用

你只會使用,知道 API,這沒有什麼競爭力!

因為不管是前端的什麼技術,都能夠在很短的時間內上手使用。不管是 Vue、React 還是小程序,用兩周的時間都能熟練的使用。

你現在要做的是深入學習,比如你項目中使用的如果是 Vue,你應該要深入 Vue 的底層源碼、設計思想。當你遇到複雜問題的時候,能從底層原理的角度去思考問題。

比如你在使用 Vue2 的過程中發現了,data 中數組的某一項是無法進行雙向數據綁定的。

data() {
return {
arr: [1, 2, 3],
}
}

比如上面的例子中,當進行 this.arr[1] = 10 這個操作的時候,視圖是不會做更改的。使用過 Vue2 一段時間的童鞋都知道這個結論。

僅僅是知道結論是遠遠不夠的,你要知道為什麼。是 Object.defineProperty 本身不支持嗎?還是基於性能的考慮呢?

這時候可以去嘗試著看 Vue2 中關於這一塊的源碼。看完源碼之後,你知道了為什麼,在這個過程中你更應該學習 Vue2 中代碼,學習開源作者是怎麼組織代碼的、怎麼寫函數的,學習各種技巧,然後用在自己的代碼中。

學習到這裡還不夠呢!

你應該繼續學習 Vue3 中的實現,為什麼在 Vue3 中又可以了。知道了為什麼之後,再去看 Vue3 中這一塊的源碼。

帶著問題去學習源碼,學習源碼中的各種技巧,你的進步會非常快。

以上是關於使用 Vue 的過程中的一個小例子。

對於組件庫的學習也是類似的,你每天都使用 Element UI 等組件庫,有沒有想去看一下它的源碼是怎麼實現的呢?

你認真的看幾個組件的實現,看開源的組件庫是怎麼拆分複雜組件的,各個子組件是如何交互的。

看完幾個組件之後,自己做一些總結,然後將學習到的技巧應用到平時的項目開發中,你會發現你的組件化開發能力提高了不少。

按照這種思路去深入學習,你就不會迷茫了。否則,如果你繼續按照你現在這種狀態工作、學習的話,當你工作五年的時候,可能只有兩年,甚至不到兩年的工作經驗。

一起加油吧,少年。


不要為了學技術而學技術,要為瞭解決問題,實現需求、完成業務去學習技術。

例如你想學習node,前端node方向很多。有寫業務介面、各種基礎類服務(郵件服務、簡訊服務、語音識別、圖像識別、圖片處理等)、CURD這種偏後端服務的,還有寫爬蟲的,寫腳本的(上線腳本、打包腳本、代碼優化腳本、代碼檢測腳本等等)。。。單是node就太多要學的,如果籠統的去學,不但費時間,而且效率不高。

你要找到自己的興趣點,如果對一些小H網感興趣,你可以試試寫個爬蟲,把種子都爬下來。如果想寫點好玩的,可以試試給視頻自動配下字幕,解決了看片沒字幕看不懂的問題。

經常開發小程序的話,小程序有很多生成海報的業務,可以試試用Node來把dom轉為圖片,方便日後開發。

瀏覽器的知識可以去開發一個chrome插件,360有全套的開發插件教程,這樣會讓你更瞭解瀏覽器的工作。可以開發一個自動抓取頁面中視頻或者種子的瀏覽器插件。

所有的技術都是為解決問題而存在的。工作中,絕大多數工作都是為公司業務服務的。學技術的時候,也要去學一下業務。瞭解了業務,再去想有沒有合適的技術去解決,如何更好地解決。


2年工作經驗正好達到了一個平穩期,感覺就這麼混著也能滿足工作,想好好學習呢,又沒有什麼強烈的動力,提書犯困,我之前也是這樣。

我有兩個對自己有用的方法

第一個就是在工作中給自己製造壓力,就是盡量讓自己在工作中不斷地遇到問題,解決問題,」被動「的學習

第二個就是吹牛,現在朋友圈說自己會啥啥啥,然後就會有人來問問題,問著問著,就會了。。。。


作為工作時間和你差不多的web前端,我想說一下自己的想法,因為互聯網的工作時間比較久,除去自己要休息的時間,平時充電的時間可能不多,web前端又是一個面很廣的範疇,那麼我覺得找準一個細分方向去深入是一個更好的選擇,比如web音視頻處理這一個細分方向,涉及編碼,解碼,web socket通信等,深入下去,成為一個小技術專家,而不是隻盲目的追求熱門技術


學習更多的知識,多看看別人的作品,提升自己


1.問自己現在擅長什麼?自己用什麼框架,有沒有了解過框架源碼實現。

2.原聲js學的怎麼樣?知道底層原理不?會多少種設計模式!會面向對象編程麼?

4.瞭解多少js庫的,會用能自己寫出來麼

5.熟練掌握前端工程化麼?瞭解原理不,

6.會服務端的東西麼?更具體的我發表一篇文章吧,關注我


可以報一個課程系統學習,學習後可以跳槽驗證


推薦閱讀:
相關文章