我之前一直提倡自学,尤其是对计算机专业的, 上培训班简直就是耻辱(回复“培训”查看文章), 但是自学的主要问题在于在黑暗中摸索,走了弯路而不自知,遇到了障碍,迷宫,甚至陷阱花费了太多时间。
如果有个师傅能从宏观上指导一下,能让自己从更高层次,“上帝视角”来俯视自己要学的技术, 那简直就是拨云见日,那些障碍,陷阱,迷宫经过从上往下看过以后,难度会极大降低。
例如我要学习Java 的线程, 我知道了通过扩展Thread, 或者实现Runnable 就可以创建线程, 但是这玩意儿在哪儿用, 怎么用还是一头雾水, 可能写了两个程序,在Eclipse中运行以后就忘记了。
若是有个好师傅,就会给我讲出更多的背景知识:
1. 操作系统的进程和进程切换
2. 进程和线程的关系
3.并发和并行的区别
4.为什么要引入多线程?,
5.引入了多线程以后带来了什么新问题?
6.对于新问题怎么才能解决?
7.扩展一下可以介绍下函数式语言中为什么没有同步的问题。
然后进入java 世界,看看
1. Java虚拟机是怎么实现线程的。
2. 实践中怎么用线程的,怎么加锁的。
3. 为什么要有线程池?甚至可以指导自己实现一个线程池。
4. Java线程新特性的渊源。
5. ThreadLocal在Web应用程序中的使用。
这一路下来,我肯定对java 线程的知识和实践有更深的理解。
所以,尽自己的最大能力找一个好的师傅吧,绝对让你事半功倍。