1. 程式人生 > >熟練工如何拔高 & 零碎知識的整理

熟練工如何拔高 & 零碎知識的整理

本文由小鬍子哥(Barret Lee)原創,釋出於此已經獲得原作者授權(文章中出現的“我”均指原作者:小鬍子哥)。

640?wx_fmt=jpeg

整理了一條圈子裡頭一位朋友的提問,這個問題比較普遍,我好好思考了下。

問題如下:

我在前端方面有幾年經驗,切圖仔 -> jQuery 前端 -> Angular2+Webpack 前端,可開發傳統網頁/SPA;略懂後端(API, CRUD)和伺服器(簡易指令碼);可獨立完成中小型 WEB 專案並有成果; 但也就這樣了,以下是我的問題:

1、由於一直憑興趣自學,在理論儲備上非常不足;但理論和實踐在到達一定層次前有巨大鴻溝,如何能有效通過學習理論提高實踐能力?像我這種需要重視哪方面的學習?
2、我是典型 Google & StackOverflow Oriented Developer,不會就查,但總覺得這樣不繫統,請問一般是如何解決問題的?

1、已經是個熟練工,如何在能力上再次拔高?

在公司裡,只要是踏踏實實做事情的,三兩年的時間一定會有很明顯的成長,不管是技術能力還是溝通能力。但也正是三兩年後,會明確感覺到再一次遇到技術的瓶頸,這個問題不管是誰,都有,我也經常遇到上升的瓶頸,其實在這個圈子裡,每個提問的同學都在促進我在思考,所以也比較感謝大家。

對碎片知識的學習是一個沉澱的過程,東一腳、西一腳,看似學的很雜很膚淺,但時間長了之後,每個領域都會涉及很多次,面廣了,綜合素質自然也就提升上去了。能力上再次拔高,我覺得需要做兩件事情:

梳理知識,找到自己擅長的領域。前端技術越來越豐富,越深入的技術就越要花時間進去研究,我們不能 cover 到所有的面,但是可以抓住一個自己感興趣或者擅長的方向,支出大把時間,深入研究。比如 Native、運維、Node、效能、WebVR 等等領域。在系統的架構設計上,進一步學習。這一塊我個人的經驗也不是特別豐富,但是這一塊的學習還是一直堅持著,最基本的演算法模型、資料結構、資料庫知識、設計模式、效能調優、多人協作等等,我相信堅持一段時間的學習,再配上工作中專案的實踐,一定會有效果出來。最主要的還是需要用抽象的眼光去看待新技術,從巨集觀上把握一門技術到底解決了哪些問題,是如何解決的問題,把思路掌握清楚。抽象思維不是與生俱來,也需要不斷的訓練,時間長了之後,看待問題的角度會不太一樣。

2、如何整理零碎的知識?

知識的整理永遠都不要停留在鍵盤上或者筆桿上,需要對知識做一些區分。有幾乎一直不變化的知識,比如 JS Core API、ECMA-262、HTTP/2 等等,這些屬於標準,標準化的知識,需要有了解,部分可以當作工具書,部分則需要全部記住。還有一些在變化的知識,比如 MVC 演變出來的 MVVM、MVP 等,技術框架如 React、Angular、Vue 等,這些都屬於變化的知識,他們有自己適用的場景,場景一變,這些東西都不適用了。

在學習這些變化的知識時,也有不變的東西存在,比如學習原始碼的技巧、除錯 bug 的技巧等,這些是什麼呢?是能力。知識是學不盡的,但是能力可以不斷地提升,隨著經驗的豐富,能力也會跟著一起上去。如果給你一堆技術關鍵詞,你可以很快很好地將這些詞放入大腦的對應的知識儲存區間中,那說明你已經對整個技術體系有了比較全面的理解,這個時候你需要提升的是能力,程式設計能力、理解能力、組織能力還有架構能力。

以上,僅供參考。