学习廖雪峰Jquery的教程关于表单的操作时,被最后的习题给困住了,在一番思索后无奈地决定去看博客评论下的答案,却发现自己看不懂,遂以为是对Jquery的了解还不够深,于是便在网上疯狂搜索关于Jquery的教程书籍,打算花一段时间好好“精通”Jquery,但是当实际看书的时候,却发现总有一种念头在阻碍着自己看书:你又不是什么都不会,凭什么要头学起,把书看完就能看懂那些博客评论的代码了吗?
懒得看书也无法解题,学习的道路似乎就此停止了,但在第二天吃完午饭外出步行的时候,我突然想起:哎呀,自己懂得大概的过程可以先在纸上演算一遍啊!自己当时学C的数据结构时写课设算法不就经常写伪代码吗?回到家后没午休,便直接开始伪代码演算,然后从演算中看到自己的某个代码细节的想法不知道用什么函数实现就直接去上网搜索查文档,文档里对细节的介绍要是对哪里有疑惑便继续递归地学习,这时就能顺便把之前搜到的权威书籍相关部分有动力认真看一遍。最后几个小时后,我不止解决了昨天的习题,我还把顺着问题一直递归到的知识链都给扫盲复习了一遍,还能知道一些有趣的历史故事。
现在想起来,我发现自己是被某种典型的学生思维给困住了, 默认认为做成一件事非得把相关的所有情况都先在书上了解一番才能动手操作,而如果无法操作则就认为是自己知识不足的问题。“学以致用”一词虽然听起来正确,但是现实是,知识往往在出现解决问题的需求之后才产生。暑假啃C语言时我发现的一个有趣的现象是,在看一章的讲解部分时我总是恨不得想让这章的内容快快过去,但是到了后面做习题时却恨不得倾泻大量时间就为了解决一个习题,在认真思考的时候,学习知识的焦虑感就自动被屏蔽了。
我想这种思维曾经对我是有益的,它帮助我在小学,初中,高中耐心地度过构建各个学科的基本框架的时间,以防止我在面对相关问题时发现自己什么都不懂,但当基本框架构建完毕后,再要深入了解某一学科的知识就要靠大量的实战积累,此时看题也不是什么都不懂了,能有一些基本思路,但是却很难完整解答。这时我却还停留在构建基本框架时的思维上,发现解答不了的问题时就习惯性认为是书本的知识积累不足,而不会更好地去提高思考的维度。最后当发现企图通过埋浸书本获得的大量知识来填平那一部分细微的知识纰漏的想法失败时,便陷入彻底的能力焦虑中。
这种思维最后成为了严重限制我学习的枷锁,直到上大学时,我逐渐转变。
- 我对习题的态度改变了。以往我觉得习题只是巩固书上知识用的,但是这个学期我开始尝试把习题当做工具,直接动手做习题来形成知识结构而不是光看书,然后这个方法在我学《数据结构》的时候奏效了:其他人在看着老师讲的PPT发呆,我却已经通过习题的思路对这章的内容有了一个初步的了解。
(顺便一提大学的教材感觉就是让教师讲着用,自己要真正去了解知识,不如好好筛选互联网上广阔的资源为自己降低学习难度,结合大学教材上的习题能有不俗的学习效果,另外关于直接动手去解决问题可以看这篇博客:http://mindhacks.cn/2009/07/06/why-you-should-do-it-yourself/)
我能从习题上看到更多,更为根基的问题。回到做js的习题上,我发现即使我完成了问题,我仍然有不少疑问,我发现我正迫切地想要将自主学习技术知识的经历和学校所学的基础知识联系起来:
深度思考,浏览器是怎么出现的?浏览器加载页面时CPU和内存都在干什么?浏览器的基本功能(搜索地址)如果在命令行上要怎么敲指令完成?(还没找到讲解浏览器原理的书籍,倒是对网络编程的知识开始感兴趣)
?
? 比较思考,为什么js能操作浏览器,C就不能?为什么前端总是有各种层出不穷的新框架?能一直深度思考到怎么为做某事去编一个自己的编程语言(《编译原理》);
?
? 。。。。
?
?
在刚进入校园时,我还想着自己只是学习一门技术养活自己,为了学习技术牺牲掉自己的娱乐;但后面一次偶然的对[没有计算机的世界]的思考后,我逐渐发现自己对技术背后的根本原理的兴趣和求知欲逐渐成为我新的娱乐。如果我大学专业选的不是计算机,是不是也就不会这些深度的思考了?