我觉得主要分三种:1、应用型:以一个具体项目为参考,从开始到结束,从设计,编程,优化,多方面提升。怎么写运行速度更快,怎么写更安全,怎么写扩展性更好,等等。2、功能型:以某一块功能为参考,用什么方法,怎么优化,怎么封装,怎么继承,怎么和其他模块交互,等等。3、源码型:以某一块已有的功能为参考,熟悉源码,有哪些方法,怎么调用,为什么这么调用,等等。一点愚见。