实战为主:
- 看再多的文章不如敲几行代码。
推进度:
- 学新东西,遇到不懂的不要死磕,直接跳过去。
- 对应阶段:从0到入门,从啥都不懂到会的过程
- 不要以原理为借口,长时间进度停滞。
关于原理:
- 想要理解原理的话,自己写代码造一个类似的东西,简易版demo,就自然而然知道它是怎么回事了
- 上面提到学新东西不要死磕,这里就是死磕某个东西的时候。
- 对应阶段:已经会用这个东西了,想要理解的更深入。
- 有想法时,自己写源码实现功能;无头绪时,抄着别人的源码实现功能
看书:
- 学习对自己的知识体系而言,新知识时,不要指望通过看网上的帖子,要看书,网上帖子的内容一般只相当于书的第一章的部分内容,还残缺不全。
- 至少以自己啥都不知道的水准也找不到更深层次的内容。
- 比较新的技术除外,这些就看官网文档吧,没书。
- 看书速度:大概10min一页,1小时6页,5小时30页,50小时300页
- 看技术书:大概这样的思路,代码才是主体,文字只是代码的注释;文字浏览一遍、理不理解无所谓,代码部分跑得通才是关键;至于代码部分,参考下面抄代码。
抄代码:
- 学一个东西最快的、学习程度最深的方法就是抄代码。注意是手敲,不能复制粘贴
- 真正写代码时,一周的代码量大概800行左右
- 照着源码抄时,一天的代码量可达1000行左右,就学习而言,效率很明显
- 并且,没什么代码是抄3遍以上学不会的,基本上抄一遍跑通就能理清了
两种编程思路,第二种优先:
- 充分考虑通用性,再写代码。有下面缺点:
- 考虑不全
- 大量的时间浪费在各种纠结
- 与其长时间啥都写不出来,不如按第二种来,更具体的思路是一步步实现出来的,凭空想不到那么多东西
- 对着一个单一的目标快速实现逻辑,通用性是重构出来的。有下面缺点:
- 可能实现了就没心思重构了
- 或者已经很复杂的逻辑根本就重构不了