Page cover image

编程学习之道

文章描述

学习技巧

遗忘曲线

  • 帮助认识自己

  • 横纵轴分别是时间和记忆率

  • 记了会忘,反复查看笔记

成就感很重要

你无法和一个学的时候享受快乐的人竞争

  • 正反馈:大脑分泌多巴胺使自己开心

学习就会让自己开心,所以加上成就感就更好了

一个知识点,能做出一个实践,获得成就

养成生物钟

  • 固定时间

    • 禁止三天打鱼两天晒网

    • 选一个自己学习的时间,每天都这样,形成生物钟

  • 固定精力

    • 没有精力的时候不适合学习

就学五分钟学习法

  • 不推荐使用番茄工作法(适合零碎学习 编程适合大段时间学习)

  • 骗自己,我就学五分钟,五分钟之后就不学了,有效防止拖延

制作不方便的环境

让总是阻止自己学习的东西,慢慢解决掉

手机不放身边,避免看到手机就想去拿

电脑不装显卡,玩不了大型游戏

锁门防止打扰

去咖啡馆防止玩游戏

准备好糖分和水

  • 不要频繁起身拿东西

  • 每小时起身一次,防止颈椎病

你需要考试

  • 自己问自己

  • 期中测试,模拟面试

自我催眠

  • 有效防止拖延

  • 借鉴《这本书让你戒烟》,让自己相信自己可以

分析自己的学习类型

  • 视觉:自己看书 看板书 看就能懂

  • 听觉:老师讲就能懂

  • 触觉:肢体接触才能学会

  • 嗅觉:喜欢一种气味,这种气味下才能学

目标管理

  • 不要制定宏大的目标

  • 日拱一卒,不期速成

  • 目标要可实施

  • 如果达到目标,就告诉大家

  • 不要在意完美,搞定即可

回顾很重要

  • 根据遗忘曲线定时回顾知识点

笔记

不记笔记的后果

  • 看书不记笔记:白看

  • 看视频不记笔记:白看

  • 看文档不记笔记:白看

记笔记的意义

  • 在自己的大脑中设立一个地标

  • 实际上在构建自己的记忆宫殿

怎么记笔记

  • [[康奈尔笔记法]] Cornell Notes

  • 东京大学笔记法

  • 吐槽笔记法

学习方法

三上之功

醉翁曾说:吾平生所作文章,多在枕上、马上、厕上

所谓“三上”,不是刻意培养的习惯,而是热爱渴望的自发

相对而言,“枕上”可能是最长的时间,然而也是思维最不敏感的时间。个人就是读一些小故事或者散文(近期),只为欣赏。“厕上”是思维最敏捷的时间。原因可能是每次的时间短,且大多集中在白天。这个时间非常适合思考一件比较小的事情或者理论。原则上,一些条文性比较突出的内容会在这个时间识记、思考。比如背经文、看议事规则、经典的二十四史等等。“马上”更不容易集中精力(这当然要视具体情况而定),因为这相当于闹市读书,初次操作还需要顶住旁人的压力,堪称比较高的境界。如果环境果真不适合,倒不如听歌为妙。如果环境合适,这正是锻炼心性的绝好机会。一般来说,个人会选择看一些系统性高但又不复杂的书(因为一般出门的时间比较长),比如一篇小论文之类。

  • 编程的“三上之功”

    • 通勤、上厕所、躺着的时候可以看下 ES6、JavaScript 等网页

费曼学习法

最有成效的学习法

  • 可以简化成四个单词:

    • Concept 概念:即获得并初步吸收自己获得的知识

    • Teach 教给别人:向他人讲解你所获得的知识/或者也可以想象给别人讲解的自言自语

    • Review 评价:由他人或者自己对自己的教学进行评价,并回顾讲的不好的地方

    • Simplify 简化:简化=划重点 提炼并升华知识

  • 四个步骤:

    • 把它教给小孩子【选定一个学习的主题,用知识量少的方法教】

    • 回顾【看下有没有哪里没讲懂讲透、讲得卡壳、概念联系不起来,然后重新学习】

    • 将语言条理化,简化【没有从原材料中借用任何行话,然后用简单的语言组件成流畅的故事并讲出来】

    • 传授【确保理解没有问题,就把它教给另一个人】

[[费曼学习法]]

互联网学习法

非常鸡贼的学习法

例如:反向操作/极致言论(评论区评论我觉得 200 元以下的耳机都是垃圾)

类比法

  • 用生活实践解释代码

    • 函数节流(技能 CD / 冷却中)与防抖(回城)

    • DDoS(找没事做的大妈到别人店里占满空间,客人就进不去,扩建来防治)

推演法

  • 用三段式逻辑推演

    • 由 A、B 得到 C

  • JS 原型适合此法

构建知识树

  • 学习的大局观

    • 看经典书籍

    • 看文档和手册

  • 整个前端在搞什么(前端体系化)

    • HTML 基础

    • CSS 基础

      • 浏览器渲染原理

    • JS 基础 可以看书

    • TS 加分

      • TS 编译为 JS(编译原理、工程化)

    • Vue 书 + 项目

      • 模板(编译原理)

      • 数据响应式

    • React 书 + 项目 这两个框架都要会

      • 函数式

        • Haskell

      • Fiber 架构

      • VDOM

        • Diff 算法(树)

          • 数据结构与算法

    • Ng

    • Ajax 项目

      • HTTP

        • TCP/IP

        • 计算机网络

      • 浏览器

        • 组成(V8)

        • 线程

          • 操作系统

          • 组成原理

    • 组织代码

      • 设计模式

工具知识

  • 工具

    • 编辑器

      • VSCode

    • IDE

      • WebStorm

    • 版本控制

      • Git

        • [[001-Git 常用操作]]

        • git init / clone / add / commit / pull / push / branch / checkout / reset

      • SVN

    • 运行环境

      • 浏览器

        • Chome

        • FireFox

      • Node.js

    • 调试

      • 开发者工具

    • 请求/抓包

      • Postman / APIFox / APIPost

      • 开发者工具

      • Fiddler

      • WireShark

    • 线稿

      • Balsamig

      • AxureX

      • 墨刀

      • 蓝湖

      • Figma

    • 快速运行

      • JSBin

      • CodeSandbox

  • 用到再学

  • 把所有的按钮都点一遍

框架知识

  • 面向框架学习(所有的目的就是学会一个框架)

  • HTML(Tag) / CSS(属性) / JS(语法 ES6)

  • API(能调用的所有方法和函数) 背 核心单词

    • 内置

      • Object.keys

      • Array.from

      • Date.parse

    • 宿主

      • Chrome

        • Window.location

        • Window.history

        • Window.localStorage

      • Node .js

        • fs.readFile

        • Path.join

    • 第三方

      • jQuery

        • $('#id')

  • HTTP

    • AJAX——不能跨域——> CORS

      • JSONP

    • 状态码

      • 200

      • 301

      • 302

      • 404

    • Cache-Control

    • Cookie

  • 设计思想

    • 设计模式

      • MV*

        • MVC(M、V、C)

        • MVVM(Angular)—— C 升级

        • MVP

      • 范式

        • 面向对象

        • 函数式

      • 表驱动

        • if 转成 map

  • 工程化

    • webpack

      • 压缩/编译/打包/优化

    • npm

      • 发布

    • CDN

    • Nginx

    • 后台框架

  • CRM(Copy-Run-Modify)学习法

    1. 只展示内容 div

    2. 写内容 n+1 绑定修改

    3. 文章编辑

    4. 多页面 展示和编辑

    5. AJAX 后台 leanCloud

    6. 含路由的应用

    7. 商业逻辑(电商、金融)

  • 黑盒测试法

    • console.log 调试法

    • outline 调试法

实践经验

  • 反复使用(路径依赖)

  • 项目选择

    • 避开热门

    • 和自己兴趣相关(导航网站、展示类等)

    • 不要在意是否够“大”,尺寸不重要,技术才重要

  • 作品存档

    • GitHub

    • 码云

  • 充分测试(确保自己的项目拿出去没有明显的 bug 和性能问题)

    • 自己测试

    • 找别人测试

    • 自动化测试

Last updated