John Washam 记录了自己从Web开发者(自学、非计算机科学学位)蜕变至 Google软件工程师的学习历程coding-interview-university。
受其启发,我也根据自身情况及诉求制定了学习计划。希望通过接下来长时间的学习与实践,打通任督二脉,对计算机科学有体系的理解,逐渐蜕变为一位优秀的软件工程师。
不可能把所有的东西都记住
与John Washam文章记住计算机科学知识描述的一样,我经常是看了数小时的视频,并记录大量的笔记。一段时间过后,基本上忘却大部分的内容。
推荐学习课程Learning How to Learn: Powerful mental tools to help you master tough subjects。
使用抽认卡
为了解决善忘的问题,可以制作不同的抽认卡帮助学习。
John Washam的抽认卡:
另外推荐支持多平台的软件——Anki,相似功能APP推荐——记乎。
复习、复习、再复习
制作出各种抽认卡后,需要我们在空余的时候去复习。编程累了就休息半个小时,并去复习抽认卡,如此反复。
专注
在学习的过程中,往往会有许多令人分心的事占据着我们宝贵的时间。因此,专注和集中注意力是非常困难的。放点纯音乐能帮上一些忙。
CS-Notes-Kz
├── 计算机基础
| ├── 计算机网络
| ├── 操作系统
| └── 其他
├── 数据结构与算法
| ├── 数据结构
| ├── 算法
| └── LeetCode
├── 开发工具
├── Java
| ├── JavaSE
| ├── 多线程&&并发编程
| ├── JVM
| ├── Java设计模式
| ├── Java新特性
| ├── JavaEE
| ├── Spring全家桶
| | ├── Spring
| | ├── SprinBoot
| | └── SpringMVC
| └── 其他
├── Python
├── Golang
├── 前端
| ├── 前端基础
| | ├── HTML
| | ├── CSS
| | └── JAVAScript
| ├── 模板引擎
| | ├── Thymeleaf
| | └── FreeMarker
| └── 组合框架
| ├── Vue
| └── React
├── 软件设计
| ├── 编程范式
| └── 设计原则
├── Linux
├── 数据库
| ├── 数据库基础
| ├── 关系型数据库
| | ├── Mysql
| | └── Oracle
| └── NoSQL数据库
├── 分布式系统
| ├── 分布式理论
| ├── 分布式事务
| ├── 分布式存储和数据库
| ├── 分布式消息系统
| ├── 分布式监控和跟踪
| ├── 设计模式
| ├── 弹性伸缩
| ├── 一致性哈希
| ├── 数据库分布式
| ├── 缓存
| └── 消息队列
├── 微服务
| ├── 服务注册/发现
| ├── 网关
| ├── 服务调用(负载均衡)
| ├── 熔断/降级
| ├── 配置中心
| ├── 认证和鉴权
| ├── 分布式事务
| ├── 任务调度
| ├── 链路追踪与监控
| └── 日志分析与监控
├── 容器化/自动化运维
| ├── 容器技术
| ├── CND加速
| ├── 代码质量检验
| └── 日志分析/收集
├── 机器学习/人工智能
├── 大数据
├── 源码分析
├── 面试
├── 其他
└── images