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-Study-Notes
├── 数据结构与算法
| ├── 数据结构
| ├── 算法
| └── LeetCode
├── 操作系统
| ├── 编译原理
| └── Linux
├── 编程语言
| ├── Java
| ├── Golang
| └── Python
├── Java并发编程
├── Java虚拟机
├── 网络编程
| ├── 网络协议
| └── Netty
├── 框架
| ├── MyBatis
| └── Spring全家桶
├── 设计模式
├── 数据库
| ├── 关系型数据库
| | ├── Mysql
| | └── Oracle
| └── NoSQL数据库
| | └── Redis
| └── 分库分表
├── 分布式
| ├── 分布式算法
| ├── 分布式服务
| | └── RPC
| ├── 缓存
| └── 消息队列
| └── kafka
├── 微服务
├── 容器化/自动化运维
├── 系统架构与设计
| └── 高并发系统设计
├── 面试
├── 资源
└── 工具