大神,前端工做半年了,學的很迷茫,總感受不知道怎麼去自學,看書吸取能力差,能夠給迷茫的人一點您的寶貴意見嗎?前端
前幾天,小夥伴星星微信我說了上面這段話。java
首先呢,糾正兩點,我不是大神,我真的不是,頂可能是個大佬(皮一下);我對星星你沒有任何意見哦,要有的話,也只是一點點建議,僅供參考哈。程序員
其次呢,說實話,工做半年,迷茫的有點早啊。就我所知,剛入職的年輕人都喜歡熱火朝天地幹,就像剛剛交往的戀人同樣,投入的很呢。難道說對工做不愛了?算法
針對前端來講,掘金是一個絕佳的學習網站,裏面的大牛天天都會推各類學習的路線。我特地花了一上午的時間找了幾個。編程
1)前端開發中79條不可忽視的知識點彙總,這篇文章截止到目前共得到了 1494 個贊。後端
2)解密初、中、高級程序員的進化之路(前端),這篇文章截止到目前共得到了 1406 個贊。設計模式
3)一個合格(優秀)的前端都應該閱讀這些文章,這篇文章截止到目前共得到了 4854 個贊。bash
4)前端 100 問:能搞懂 80% 的請把簡歷給我,這篇文章截止到目前共得到了 6006 個贊。微信
5)8年前端開發的知識點沉澱,這篇文章截止到目前共得到了 1801 個贊。前端工程師
6)一名【合格】前端工程師的自檢清單,這篇文章截止到目前共得到了 4144 個贊。
還有不少,我就再也不一一列舉了。這 6 篇文章一應俱全,裏面的前端知識點足夠你學習一段時間了,再貪多就嚼不爛了。
在我看來,自學最有效的方法就是照葫蘆畫瓢,別看不起啊。
在我初入職場的時候,本事真沒多少,惟一能拿得出手的就是抄。領導安排的任務,不會作,怎麼辦?面向搜索引擎編程啊,找到解決方案就開始搬磚。
任務完成的空閒時間裏,怎麼有效地提高本身呢?就去各類編程網站上抄人家提供的例子。早年我就是照着編程入門網的 demo 一個個的敲,敲出一個聊天室(前端 Flex,後端 Java,Socket 通訊)都以爲無比的興奮。惋惜時過境遷,這個網站已經不存在了。
別恥笑我這種沒有創意的作法,人丫的天生不都是模仿着長大嗎?從小學說話,照着大人的嘴跟讀就好了,發音不許確不要緊,隨着時間的推移,慢慢就行了。
學習也是這個道理,尤爲是針對職場的新人來講,別怕丟人,就一心一意的模仿,照着 demo 抄。
和我當時一塊參加工做的新人有好幾個,其中一個叫惠惠的關係還不錯。可是他很看不慣我這種沒技術含量的作法,常常調侃我說,「你丫這樣照着抄有意思嗎?」
爲了他能掛住點面子,我嘴上沒回他。內心就默默地罵他了:「別特麼眼高手低了,行不,就你那點‘一瓶子不滿半瓶子晃盪’的水準,哪有資格來調侃我?」
總之,不爲他的調侃煩惱,依然我行我素。你覺得照抄很容易嗎?說句良心話,就算是照抄,也常常抄不出人家文章中的效果,不信我舉個例子給你看。
前端代碼已經很久沒寫了,就舉個後端代碼的例子吧。我以前在學習 Java 的 fail-fast 機制的時候,看到 Hollis 大神的一篇文章,裏面有這樣一段代碼:
List<String> userNames = new ArrayList<String>() {{
add("Hollis");
add("hollis");
add("HollisChuang");
add("H");
}};
for (String userName : userNames) {
if (userName.equals("Hollis")) {
userNames.remove(userName);
}
}
System.out.println(userNames);
複製代碼
而後我就抄到我本地,稍微作了點改動:
List<String> list = new ArrayList<>();
list.add("沉默王二");
list.add("一個文章真特麼有趣的程序員");
for (String str : list) {
if ("沉默王二".equals(str)) {
list.remove(str);
}
}
System.out.println(list);
複製代碼
兩段代碼差異不大吧!可是運行的結果卻徹底不一樣,第一段代碼會拋出異常。
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
at java.util.ArrayList$Itr.next(ArrayList.java:851)
at com.cmower.java_demo.str.Cmower7.main(Cmower7.java:16)
複製代碼
第二個代碼就不會。當時我就納悶了,難道 Hollis 大神的文章寫錯了?我還準備在他文章底部留言提醒他一下呢,結果我翻看了源碼之後明白了。
你看,照抄這麼簡單的代碼都能出問題,還逼着我去研究了一番 ArrayList 的源碼,還真的學到了不少以前未曾瞭解過的知識點。知道怎麼自學了吧!
良心話,市面上不少技術書都特別枯燥無味,看這些書的時間,還真的不如玩一把俄羅斯方塊(wang zhe nong yao)。書名叫啥我就不方便透露了,給做者或者譯者留點面子。
那難道就無書可讀了,那難道就放棄讀書了,不是宋朝有句流行詩叫作:「書中自有黃金屋,書中自有顏如玉」嘛?
書固然要讀,但讀書要講究點方法,否則真的很難吸取啊。
1)看視頻
汲取知識的方法有不少種,看書只是其中的一種。記得我剛開始學習編程的時候,看書就看不進去,看一會就跑神。
當時學校圖書館有各類《21 天學會 XXX》的書,看起來真心痛苦,感受就像在啃一塊發黴的石頭。那時候也沒有前輩列一些優質的書單,或者說列了我不知道。
可是呢,那時候馬士兵老師和李興華老師的課程很流行,你們夥都看這個,我也跟着看。我尤爲鍾愛李興華老師,講課講得風生水起,比聽易中天品三國都帶勁。李興華老師還有一個特點,就是打字居然用的是智能 ABC,可是,打字那叫一個迅速、流暢,做爲觀衆的我由衷的佩服。
爲了向偶像致敬,我甚至卸載了最愛的谷歌拼音輸入法,也改爲智能 ABC,硬生生撐了兩個月,最後......沒撐下去,換回了谷歌拼音輸入法。
看視頻學習有什麼好處呢,就是注意力能夠高度集中,用一個專業的成語形容一下——聚精會神。
那去哪裏找這些優質的、緊跟時代的高清教學視頻呢?
好朋友「江南一點雨」給了我一份,價值連城啊,這一套視頻一應俱全(大前端的有「HTML5 新特性」、「AngularJS 視頻教程」、「NodeJS 視頻教程」、「React 視頻教程」、「Vue 項目實戰視頻」、「JavaScript140 集」),已經分門別類好,你們能夠根據索引按需下載(關注公衆號後,回覆「免費視頻」便可查看索引)。
2)正確的讀書方法
去年的時候,我讀了這樣一套書,系列名叫作《大師帶你學語文》,裏面提到的幾種讀書方法,我以爲很是有用,再次推薦給你們。
①、泛讀
泛讀可不是指泛泛而讀,而是要博衆家之長,開拓思路,普遍涉獵各方面的書。好比說,一名前端程序員最好也要讀一讀《軟技能》、《代碼大全》、《代碼整潔之道》這類書。
②、精讀
有些知識是要反覆琢磨、反覆研究的,務求明白透徹,瞭解於心,以便吸收精華。好比一些算法、設計模式方面的書。我讀過的《趣學算法》、《設計模式之禪》。
③、跳讀
這是一種跳躍式的讀書方法。能夠把書中可有可無的內容放在一邊,抓住書的筋骨脈絡閱讀。有時候遇到反覆思考不得其解的內容時,能夠跳過去,等後面的讀完了再回頭讀,說不定就先後貫通了。若是整本書都跳過了,說明這本書就要先束之高閣了。
④、寫讀
俗話說得好,「好記性不如爛筆頭」。讀書的時候能把重要的知識摘選出來,而後寫心得,這樣不只能積累大量的材料,並且能有效地提升寫做水平,更重要的是可以提升讀書的吸取能力。
老讀者可能比較清楚,我不少文章的寫做靈感都來源於讀書。我在讀書的時候,其實就是在尋找一個寫做題材,或者說找到命題做文的題目,而後準備素材,最後文章寫完後,發現本身把全部的知識點都掌握了。
我敢賭一塊錢,全部的人都會經歷迷茫期。處在迷茫期的人最須要什麼呢?
毫不是劈頭蓋臉的批評和嘲諷,好比說,你咋這麼不上進呢?你居然還有時間迷茫,真了不得。
迷茫的人須要一盞明燈,或者說須要一位亦師亦友的朋友。我很是期待可以成爲你的朋友。
以上就是我給星星的一點點建議,僅供參考哈。
謝謝你們的閱讀,原創不易,喜歡就隨手點個贊,這將是我最強的寫做動力。若是你以爲文章對你有所幫助,也蠻有趣的,就關注一下個人微信公衆號「沉默王二」,拜謝。