转自 : http://mp.weixin.qq.com/s/WiNzPIzYyie2zq7lqdIdOwsql
一个朋友问我看书很慢并且看过就会忘记怎么破,我反问他你看书的目的是什么?。
熟悉个人人都知道我几乎没有接受过专业的计算机科学教育,大学是一个三流大专;因此我如今的知识体系彻底是一路误打误撞的摸索而来。长时间的自学经历让我摸索出一个道理,若是不带着任何目的去阅读或者学习那么必定是低效的。数据库
随便找来一本IT相关技术书动辄500、600页,这些书咱们真的要从第一章看到最后一章,至少要花费三、4个月的时间;对于“很忙的你”来讲这很难坚持完成的。最后咱们责怪本身半途而废——“哎,我太没有毅力了,我太懒惰了”。其实问题不在于“你”而是你的方法。长期以来不管是学习某个技术仍是阅读某个资料咱们的方式都是“从头至尾”的方式,它能够作到润物细无声可是很难在短时间内取得效果。IT它更多的是体现的是工程,它关注的是解决实际问题,因此咱们应该用更“实用主义”的方式去学习它。编程
我建议给本身定一个学习目标,围绕这个学习目标去选择学习资料,最终达到目标。目标最好是你工做中碰到的一个问题,能够是一个bug或者是疑惑(也能够是“别人”提出来的问题),这个问题要有必定现实意义。咱们能够选择一个最多见的——“乱码问题”,去细究它的缘由,从程序执行过程、数据在内存中的表示、xxx语言用的字符集到数据库如何存放字符串,浏览器渲染的原理。不一样层次的人去分析这个问题都会有不一样的答案,高手可能更加清晰,新手更加笼统。这是一件好事情,从笼统到清晰就是重新手到高手的成长过程。学习目标还能够是“道听途说”而来,好比:有人说Nginx比Apache快。那么咱们能够给本身定义“为何Nginx比Apache快”的目标。浏览器
因为知识体系不完善这种学习方法可能一时半会搞不清楚那么多为何,随着学习的深刻原有的学习目标不但没有解开,心中的疑惑反而愈来愈多。这种经历我经历过不少,各类挫败感天天都围绕着本身感受本身简直是笨蛋到家了什么都不懂。个人建议是——放弃,对,你没有听错我说的是“放弃”。一个问题若是一直萦绕着你,不管如何都解不开那么不妨把它放在那里,去看看别的。缘由有二:
人的兴趣点是会转移的,最近可能对Linux感兴趣,过一段可能对Mysql感兴趣,若是感兴趣那么最好立马开始学习,这样能够下降挫败感带来的“负面情绪”。及时的切换兴趣能够转换心情;
IT领域不少东西都是盘根错节的,暂时放弃这个问题说不必定某一天会“举一反三”、“融会贯通”。反而“死磕”未必必定有效果。
回到“阅读一本书”这个问题,咱们为何阅读?我以为应该是和学习目标相关的,阅读《Unix网络编程》是为了熟悉Socket、网络I/O模型那么咱们就应该针对这个目的去阅读一些章节和段落而没有必要从头读到尾。有人可能提出异议——这是对“名著”的亵渎。别闹了,全部的IT类的书籍都没有“思想性”它们只是在讲述某个技术的工做原理,如何使用;因此根本谈不上“名著”更加谈不上一个字一个字的细读。 阅读了某本“名著”并不能让咱们“羽化飞升”,咱们的最终目的是仅仅为了搞清楚工做原理,掌握某个某个东西的用法而已。若是以为“名著”读不懂那么不妨换一本书,甚至阅读一篇网文;死磕只会增长挫败感,甚至让咱们怀疑人生,失去生活的乐趣(囧)。网络
大问题有大收获,小问题有小收获,没问题没收获。在开始学习和阅读以前请给本身定一个目标;在学习的路上挫败感很强,心情沮丧不妨换个新的“兴趣点”。学习