【全是乾貨】談談如何學習一項新技能,沒有理論,全是實戰

前言

個人上篇文章:面試分享:專科半年經驗面試阿里前端P6+總結(附面試真題及答案) 評論區有幾位同窗問我如何學習,今天就單獨開篇文章來談談吧,歡迎各位大佬在評論區貼上本身的學習方法。html

如下是個人學習方式

學習某種語言

  1. 大體看一下官方文檔,不要一個一個的仔細研究,太費時間也記不住(別擔憂,後面有方式幫你記牢),英語很差的(個人英語比較渣)推薦直接使用Chrome+谷歌翻譯插件通篇翻譯,讀懂大概意思,再回來看英文文檔是否有理解誤差的地方,至關好用😉。若是你有其它語言基礎,能夠對比着看,不少東西是通的,找到他的不一樣點,瞭解他的優點及實用場景前端

  2. 看看前輩們整理的Awesome Listsnode

  3. 想一想你到底想用這個語言來幹什麼?python

    • 假設我想要node.js來寫一個rest api,我就會 用github搜索:node rest api(最好不要用中文搜索)
    • 我會選取其中幾個Readme寫的好而且持續維護的項目直接clone到本地,開始一個一個研究clone下來的項目,最後對比着看,取他們全部優秀的地方
  4. express-mongoose-es6-rest-api 這個項目來舉例react

    • 打開項目,首先搞明白項目根目錄裏面的文件夾/文件都是幹嗎的,這個時候谷歌搜索就派上大用場了,一個個的搞明白ios

    • 經過上面步驟知道了應該在package.json裏面找找入口文件(其它語言相似)git

    • 能夠從入口文件直接讀它的源碼,可能裏面不少內容看着都一臉懵逼,不要怕 不要怕 不要怕(穩住 咱們能贏 哈哈)es6

    • 我當時讀的時候先看package.json(第一次看這些代碼沒什麼前後順序的區分,徹底憑感受,最多就是走點彎路)github

    • 附上我去年剛剛學習前端時候是如何讀package.json的,用包管理網站/谷歌搜索一個一個的搞明白,堅持很重要,去年的筆記截圖: web

      image
      image

    • 回頭看一下,經過上面步驟我學到了什麼酷炫的東西呢😎

      • express、express開發模式、express經常使用三方中間件、及前端安全相關的一些東西
      • node.js的日誌管理
      • 使用joi驗證數據
      • jwt的使用,及應用場景(不止可用於js項目)
      • babel是幹什麼的,搞明白了後,我就開始寫es6/7代碼了😂
      • eslint是什麼玩意,搞明白後,我就用上了
      • gulp是個什麼玩意,開始本身試着編寫我須要的task
      • 學會使用nodemon
      • git commitizen規範(不止可用於js項目)
      • 服務端js測試及覆蓋率
      • travis CI(不止可用於js項目) ...... 還有一些,不一一列舉
    • 如今能夠開始看源碼了,不懂就查文檔(這個時候看文檔比以前直接看文檔記得熟練)😃

    • 看第一個項目每每是最難的,堅持吧,堅持下來後面就容易多了(這是個人笨辦法)

  5. 再舉一個學習其它語言的例子,前段時間看身邊不少小夥伴在手機上玩答題遊戲,我就想寫一個答題腳本實現腳本自動答題的功能

    • 首先第一個想到的就是研究下微信小程序跳一跳腳本的實現原理
    • 在網上搜索學習到跳一跳腳本的通常實現原理: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++人臉識別啊,算出顏值,漂亮的再喜歡(玩笑😂,主要是想說明作完項目要思考,作這個項目能給你之後帶來什麼)

學習某種開源框架/工具

  1. 通常比較好的開源框架/工具,它自身項目裏面就會有很好的example與寫的很好的文檔,好比next.js、redux等
  2. 若是沒有example,看文檔
  3. 遇到問題直接看源碼,打斷點慢慢調試,太複雜實在不明白就看它的issue,沒有就提,提完通常要一段時間纔有人回你,這期間能夠本身去谷歌上搜索相關問題,或者進入它的組織羣,國內好比ant(直接加他們的微信/釘釘羣),國外好比next.js,核心維護者通常都會留Twitter在文檔裏,直接聯繫就行了(英語渣的使用谷歌翻譯,本身多補補英語),解決完問題記得關閉issue哦。

最後附上Github,之後blog也會第一時間更新到:https://github.com/Gavin1995 的blog項目 issue裏面

相關文章
相關標籤/搜索