日撸代码几百行,烂泥也能扶上墙。别管方法好与烂,拿起键盘就是干。

想多打代码还不简单,又没人拦着,我现在甚至为了敲代码快一点,还专门练习英文打字:

抄书做习题。各种经典教材上的示例代码,课后练习代码,做就是了。不要无脑抄,先学会原理,抄代码也是边际效应递减的法子,一开始可能有用,后来作用会减小。

抄开源代码。各种编程语言的经典系统、框架、组件、项目代码,看源码、抄源码,够你学很久的。网上 google 一搜一大堆,每种编程语言都有各种经典开源项目供你学习,比如笔者最近就开始学习 go 各种微服务框架组件,感谢开源时代!

做笔记。我记性不好,看了就忘。学习开源代码的时候就写笔记,做批注,甚至抄一个简单版本的练习一下。一般代码量一万行以下几千行或者几百行的代码比较适合学习,太大了理不清楚。自顶向下,从 demo 入手,通过断点、日志、流程图、思维导图、写批注、写注释等方式辅助学习开源代码。

做项目。学以致用,无论你是前后端、移动端,网上各种开源项目多做多练习,很快就上手了。

刷题。各种刷题网站 leetcode/lintcode/ACM OJ 系统,每个系统都有成百上千道题目,你几年都玩不玩,主要练习算法数据结构,一个题目甚至就可以摩擦你几个小时。

看网课。各种网课很多老师都会现场写代码,你也跟着写就是了,不要光看,一定要自己写出来,你以为看会了其实自己不一定能独立实现出来。我有时候喜欢看一些视频里别人是如何思考和编码的,多学习借鉴。

写博客/电子书。输出倒逼输入,能不能写出来是检验你是否学会的一个很好的方式。甚至你可以用 gitbook/mkdocs/sphinx 之类的电子书工具,不断分类更新你学过的东西。笔者就这几年就在 github 上更新了好几本小电子书,都是平常总结,查询起来直接文本搜索也方便。

编程也讲究个刻意练习,当然不要光无脑去抄,就算拿来主义,也最好看看别人的源码,有什么值得学习和借鉴的。