前言
我的上篇文章:面試分享:專科半年經驗面試阿里前端P6+總結(附面試真題及答案) 評論區有幾位同學問我如何學習,今天就單獨開篇文章來談談吧,歡迎各位大佬在評論區貼上自己的學習方法。
以下是我的學習方式
學習某種語言
-
大致看一下
官方文件
,不要一個一個的仔細研究,太費時間也記不住(別擔心,後面有方式幫你記牢),英語不好的(我的英語比較渣)推薦直接使用Chrome+谷歌翻譯外掛
通篇翻譯,讀懂大概意思,再回來看英文文件是否有理解偏差的地方,相當好用?。如果你有其它語言基礎,可以對比著看,很多東西是通的,找到他的不同點,瞭解他的優勢及實用場景 -
看看前輩們整理的Awesome Lists
- 如果沒有你需要的,可以加一個
awesome
關鍵詞直接搜尋,比如:小程式 Awesome、react awesome
- 如果沒有你需要的,可以加一個
-
想想你到底想用這個語言來幹什麼?
- 假設我想要node.js來寫一個rest api,我就會 用github搜尋:node rest api(最好不要用中文搜尋)
- 我會選取其中幾個Readme寫的好並且持續維護的專案直接clone到本地,開始一個一個研究clone下來的專案,最後對比著看,取他們所有優秀的地方
-
拿 express-mongoose-es6-rest-api 這個專案來舉例
-
開啟專案,首先搞明白專案根目錄裡面的資料夾/檔案都是幹嘛的,這個時候谷歌搜尋就派上大用場了,一個個的搞明白
-
通過上面步驟知道了應該在package.json裡面找找入口檔案(其它語言類似)
-
可以從入口檔案直接讀它的原始碼,可能裡面很多內容看著都一臉懵逼,
不要怕 不要怕 不要怕
(穩住 我們能贏 哈哈) -
我當時讀的時候先看package.json(第一次看這些程式碼沒什麼先後順序的區分,完全憑感覺,最多就是走點彎路)
-
附上我去年剛剛學習前端時候是如何讀package.json的,用包管理網站/谷歌搜尋一個一個的搞明白,堅持很重要,去年的筆記截圖:
-
回頭看一下,通過上面步驟我學到了什麼酷炫的東西呢?
- express、express開發模式、express常用三方中介軟體、及前端安全相關的一些東西
- node.js的日誌管理
- 使用joi驗證資料
- jwt的使用,及應用場景(不止可用於js專案)
- babel是幹什麼的,搞明白了後,我就開始寫es6/7程式碼了?
- eslint是什麼玩意,搞明白後,我就用上了
- gulp是個什麼玩意,開始自己試著編寫我需要的task
- 學會使用nodemon
- git commitizen規範(不止可用於js專案)
- 服務端js測試及覆蓋率
- travis CI(不止可用於js專案) ...... 還有一些,不一一列舉
-
現在可以開始看原始碼了,不懂就查文件(這個時候看文件比之前直接看文件記得熟練)?
-
看第一個專案往往是最難的,堅持吧,堅持下來後面就容易多了(這是我的笨辦法)
-
-
再舉一個學習其它語言的例子,前段時間看身邊很多小夥伴在手機上玩答題遊戲,我就想寫一個答題指令碼實現指令碼自動答題的功能
- 首先第一個想到的就是研究下微信小程式
跳一跳
指令碼的實現原理 - 在網上搜尋學習到
跳一跳
指令碼的一般實現原理:python起一個指令碼通過WebDriverAgent觸發ios裝置的截圖,根據截圖用python分析旗子位置,分析下一個方塊的中心點,根據演算法算出按住時間,python觸發WebDriverAgent執行 - 開工...簡單看了python3.5的文件及編碼規範
- github上找了個相關專案wechat_jump_game
- 學習大概流程,及常用工具...
- 開始寫自己的專案,期間遇到給跳一跳不太一樣的地方,答題遊戲需要文字識別,當然還是通過萬能的
谷歌
找答案:tesseract-ocr、百度OCR,網上大部分人說谷歌的tesseract沒有百度ocr識別率高,所以直接用了百度OCR - 最後,寫完專案還要思考
- 例1:如果不通過手機截圖(不通過webdriveragent)怎麼玩?可以通過手機連電腦,共享螢幕,然後電腦截圖,直接ImageGrab.grab很簡單;貌似還可以直接破解協議
- 例2:你甚至可以寫這樣一個指令碼玩探探,哈哈
- 例3:如何高階一點玩呢?加入face++人臉識別啊,算出顏值,漂亮的再喜歡(玩笑?,主要是想說明做完專案要思考,做這個專案能給你以後帶來什麼)
- 首先第一個想到的就是研究下微信小程式
學習某種開源框架/工具
- 一般比較好的開源框架/工具,它自身專案裡面就會有很好的example與寫的很好的文件,比如next.js、redux等
- 如果沒有example,看文件
- 遇到問題直接看原始碼,打斷點慢慢除錯,太複雜實在不明白就看它的issue,沒有就提,提完一般要一段時間才有人回你,這期間可以自己去谷歌上搜尋相關問題,或者進入它的組織群,國內比如ant(直接加他們的微信/釘釘群),國外比如next.js,核心維護者一般都會留Twitter在文件裡,直接聯絡就好了(英語渣的使用谷歌翻譯,自己多補補英語),解決完問題記得關閉issue哦。