經(jīng)常跟公司的年輕人聊天(說起來好傷悲),他們大多在充滿激情的同時表達出自己對于學習的迷茫。面對快速發(fā)展的技術被迷暈了雙眼,不知道學什么,也不知掉怎么學,不知道從哪開始,也不知道學到何時為止。前兩天也在知乎上回答了一個類似的問題,想想應該把自己的一些經(jīng)歷和問題以及對于這些問題自己的思考梳理一下,分享出來。
小小鳥們需要面對的第一個問題往往都是不知道該學什么?面對撲面而來的各種技術,框架,術語,各種三個字母或是四個字母的天書一樣的單詞,感覺一下就被淹沒在浩瀚的技術海洋中??粗笈兊母鞣N口吐蓮花,對于各種技術信手拈來,運用自如,羨慕之余也不禁暢想著自己何時才有這么一天。
為了實現(xiàn)心中的目標,很多人捧起了各種神書,什么設計模式,什么算法導論,什么編譯原理;而有些人則搞起了各種新潮的技術,什么Angular、ReactJS、Go、Node、Swift、Spark,他們都以為自己已經(jīng)拿到了通往成功的鑰匙,不過看了一陣發(fā)現(xiàn),該聽不懂的還是聽不懂,書看的進展緩慢,狗熊掰棒子一樣忘的比記得還快,技術淘汰的速度超過了自己學習的速度。怎么破?我給的建議其實很簡單,就是:
1. 工作用什么學什么;2. 先上手后學習;3. 無目標不學習,學到夠用就停止1. 工作用什么學什么
為什么建議從工作入手?因為這樣可以最大化的借勢,達到事半功倍的學習效果。曾經(jīng)有只小小鳥做著一個C#的工作,但總覺得沒有搞Ruby啥的高大上,用著IDE,總覺得沒有用Emacs&Vim高大上,所以就白天硬著頭皮用IDE搞C#,晚上下班后風風火火用Emacs搞Ruby。一年過去,累的跟狗一樣,結果工作也沒有干好,自己想學的東西因為沒有使用場景也總感覺停于表面。后來痛定思痛,決定集中火力專心學學C#,將自己的學習與工作的方向調整到一致(而不是像之前總是忘兩個方向使力,結果都相互抵消掉了)。最后發(fā)現(xiàn)反而事半功倍,工作也出成績了,對于編程語言本身的理解也深度了許多。再去看Ruby或是其他更新的語言,反而輕松了很多,對,這個小小鳥就是我。
說起來簡單,但是很多人還是會很糾結,生怕站錯了隊伍,選錯了方向,選錯了語言,選錯了技術,輸在了起跑線,就像我當年一樣。走過來我才發(fā)現(xiàn),其實作為當時的自己,無論學什么的效果應該都是差不多的,所謂殊途同歸,觸類旁通。而對于現(xiàn)在的自己,我已經(jīng)有能力做出對于自己正確的選擇,反而不會糾結。所以做不出選擇只能代表自己不夠強大,也代表此時的選擇可能對自己的意義也沒有那么大。念念不忘必有回響,學什么都是有用的,但一個重要的前提是學習的驅動力是興趣而不是簡單的作為一個掙錢的工具,引用羅輯思維里說過的一句話:“沒有興趣你將一事無成”。所以,我的建議是:
結論:工作用什么,學什么,以點帶面,順勢而為,將自己學的東西與工作契合,利用所有時間學習。2. 先上手后學習
很多計算機知識都非常抽象難于理解,什么模式、內聚、解耦、架構、分層、并發(fā)、異步、靜態(tài)、動態(tài)、過程、對象、函數(shù)、邏輯,還包括各種各樣的語言和原則。這些抽象的概念是很難簡單的通過“學習”可以完全理解的,因為它們都是從問題中來的,都是人們?yōu)榱私鉀Q某一個問題想出來的解決方案。但是就像猴子定律中的猴子們一樣,我們已經(jīng)慢慢忘了最開始不能去拿香蕉的原因,已經(jīng)忘了問題,而將解決方案視為圣典,而后來的猴子們(小小鳥)在完全脫離了問題的前提下,單單去學習這些解決方案自然會覺得很抽象也很痛苦。
所以,作為勇敢的小小鳥,應該多問幾個為什么(參考5why分析法),甚至勇敢的去摘一次那只香蕉,就當自私一點為了自己,知其然也要知其所以然。記住,那些“約定俗成”、“就應該這么干”、“大家都是這么做的”、“我們一直都是這么做的”都是狗屎,除非能說出問題給出原因,否則任何脫離問題給出的解決方案都是耍流氓。
結論:直接上手實踐,遇到問題,先嘗試自己解決,再帶著問題去學習,這樣的學習才會更有效率,理解也才會更深刻。3. 學到何時為止?