作為一名網際網路從業者、世界第一人稱觀察員,我對於這個行業最大的感觸就是:不能停止學習。每時每刻都在世界某個角落裡上演著技術變革和更新,默無聲息,或者來勢洶洶。
印象最為深刻的是,在畢業生校園招聘的過程中,面試官問到的問題是 “相容 IE 6/7/8 的 CSS 樣式 Hack 寫法是什麼?”,“什麼是標籤語義化,語義化的標籤有什麼作用?”… 現在回想起來,這些問題都非常的有年代感,而且也極具農業時代氣息。那時候大家通過 RSS 來關注行業的更新,一提到前端,多數人腦海裡面的概念就是 Div + CSS
,IE 是大家最主要的戰場, CSS3 和 HTML5 仍然是非常烏托邦的詞語。
這些年來前端技術棧層出不窮,前端的範圍也越來越廣泛,需要掌握的技能也越來越多。整個行業技術的迭代,我們是見證者,也是受益者。我們學習新的技術,創造出富有想象力的產品,並且為行業帶來更新的技術,不斷在這樣的過程中充實和提高自己,並且也推動著行業不斷向前。
怎麼定義成長?
成長向來都不是一件容易的事情。
在學校的時候,學校會制定每學期的課程計劃,每堂課後都有對應的作業和練習,在學期結束的時候通過測試來檢查學習的成果,用成績單上的 S/A/B/C 量化知識和技能掌握的程度。
等到進入公司或者團隊工作之後,似乎發生了很大的變化:沒有統一的學習計劃,沒有定期的作業和練習,也沒有人督促學習,更沒有考試來檢驗。
隨著工齡的增長,時間不知不覺地流逝,一切都毫無原因,也沒有停下來的意思。
我曾經跟年輕的同事們一起聊進入公司後的狀態,當我問到:“你覺得你在公司的這幾年裡面,你成長了嗎?”,曾經有人像突然被一陣惶恐擊中,陷入一種驚愕的回憶。
“我也不知道,我每天都在做專案的需求。回想起來,好像也沒學到什麼厲害的新技術,也沒有做出什麼特別的貢獻。反正,每天就是在做需求,但需求裡面的東西,都是很平常很簡單的。”
進入工作的新人貌似總有一些會陷入這樣的困惑,似乎每天的工作都被需求安排的滿滿當當,也少有專門的時間去學習什麼,所以一回憶起來心慌地發現,好像真的沒怎麼成長。但我覺得這應該是對成長概念的誤解,那到底怎麼才算是成長了呢?
成長是析出結晶的過程,這些結晶就是知識。
知識是對某一個事物、方法或者形態系統化的認識,這些認識是通過不斷地學習和使用、深入思考和對比之後總結出來的。朋友圈、微博 Timeline 中出現的不是知識,只能算是資訊。因為它們是片面的、碎片化的、不成體系的,只有把很多同一類相關的資訊系統地整理出來,並且能為特定的目的而使用,才能變成知識。
看書、上課是最系統地學習知識的方式,總結、運用和思考是產生知識必經的過程。
我們每天的工作看似重複並且沒有難度,本身就是對工作所用的技能熟練的結果。對所掌握的技能如此熟練的根本,是我們對這些技能有清晰的瞭解和靈活的運用,當我們把這些內容以結構化的形式思考和總結,便是成長最重要的一步。
(如果手上的工作真的一直處於沒有難度的狀態,應當儘快跟上級溝通和反饋,尋找更加有挑戰的工作)
成長的途徑
在我看來,成長的途徑就是知識累積和創造的過程。
累積:向世界學習,並且舉一反三
第一類知識是現在世界上本身就有的,我們只管學習就夠,各門已經存在的科學:經濟學、建築學、醫學、管理學等等,它們已經非常非常的系統,並且被不斷優化到目前最合理的狀態。
我們生活在迄今為止最為輝煌的時代,幾千年人類文明的結晶留下成千上萬的學科和領域(儘管有很多很多是最近這些年才出現的),我們有最為便捷的網際網路和其他知識傳播方式,所有的知識都觸手可及。
學習最系統的方法是按照一個架構從淺入深地完整認識一項事物。隨便翻開一本書的目錄,目錄反映了它的知識體系,從此可以瞭解它的結構是怎樣的,由哪些部分組成,這些部分又是如何關聯在一起的。對整個知識體系有簡單的概念之後,開始學習,並且邊學習邊思考。
對這類現有的知識,僅僅“學習了”是遠遠不夠的,最重要的環節是思考和運用,並且能夠舉一反三。
“紙上談兵”絕對適用任何的學科,網際網路行業的知識和技術更加強調的是實踐。對於知識的敬意體現在日常的工作中,能把學習的成果在最合適的地方最恰當的時機展示出來,不僅能給工作效率和質量帶來提升,而且能將學習的內容得以鞏固。
創造:對自己總結,然後系統化提煉
另一類知識可能是在我們瞭解到的世界中並沒有形成的,這樣的場景很多。世界萬物太複雜了,我們所說到的“學科”都是相當粗略的分類,實際上在每個學科下面都有很多細分的場景。比如 “電腦科學” 這個大的學科中有 “軟體工程“ 、“網路工程”、“計算機硬體”等,而在 “軟體工程” 中有 “前端開發”、“後臺開發”, 在 “前端開發” 中包含 “Web 前端開發”、“Mac 前端開發”等…
單單 “Web 前端開發” 下的知識體系就足夠龐大了,而每一個具體的場景和技巧可能不夠撐起一門學科,但是仍然能夠用一個結構化的框架來描述和傳播。比如說 “Web前端開發” 中一個常見的場景 “編寫程式碼的規範”,它無時無刻不體現在每個人的工作裡。但是如果不把整個關於程式碼規範的技巧結構化,他們仍然是分散的碎片化的在每個人的習慣中,無法交流,也無法傳播。當嘗試著這麼去做之後,便可以看到“編碼規範”的知識體系,比如:
- HTML 規範
- CSS 規範
- JavaScript 規範
- 檔案架構規範
- …
這就是析出結晶的過程,儘管這個結果不一定完全正確,但是隻有經過系統化提煉的經驗,才是可以互相交流和學習的。在總結提煉過程中,必須對以往的工作進行系統的回顧和深度的思考,這也非常有效地避免做了很多的需求之後什麼也沒留下的問題。
平日的工作看似簡單重複,但可以深度總結的場景很多,比如可以試著從下面的角度來思考:
- 重複的事情
- 重複背後的原因
- 重複帶來的經驗
- 解決重複工作的途徑
- 困難的事情
- 問題是什麼
- 怎麼解決的
- 解決的效果
- 新鮮的事情
- 什麼場景下用到的
- 新技術的特點和用法
- 與其他技術的對比
比如,在和設計師對於經常修改字號、顏色、間距等瑣碎重複的事情中,
a). 找到重複的經驗:使用更加高效的頁面元件和樣式架構
b). 思考重複的原因:設計師在對整體系統設計方案的實施中缺少統一的準則和規範
c). 解決重複的途徑:與設計師協商制定符合專案標準的設計規範,統一前端和設計的通用設計語言,在專案中推行 Design System。
對於重複的工作,一方面要總結重複帶來的經驗,而另一方面還要保持警惕是否在重複上浪費了過多的時間。
無論是重複的工作還是困難的工作,都蘊含著成長所需要的材料,總結和思考,並將這些經歷結構化和系統化地提煉,才是析出結晶的唯一方式。(就像碳原子必須以完美的正八面體結構聚集在一起,才能變成珍貴的鑽石)
保持學習和思考
在全球人類智慧的共同努力下,作為這個世界最為新鮮和熱情的行業,網際網路的發展速度愈來愈快,保持學習和思考,用最系統的方式去學習知識,並且用自己的實踐和思考產出新的觀點,不斷學習,不斷析出,和這個世界一起成長。