关于学习
开题之前说一句:真的好久没写东西了,其实有些东西想写的,但我真的是太懒了,想到的时候没时间写,但有时间的时候就忘了写了……
言归正传:刚才看到一篇同名的Blog,作者谈了关于(计算机)学习的一些看法。想到最近几年来带实习生时的一些感想,就上来说两句吧。
与bag590的想法一样,我也不赞成“学习是打地基”的说法,我一向的观点是:学是要靠兴趣来带动的。我从不鼓励别人“一步一个脚印”地去学一门课程,我给他们的建议是:找个高级点的事来做,兴趣上来了,遇到不会的东西自然会回过头来学。
譬如,学Web开发,等一步步把开发语言、CSS、PS都学完时,激情早就磨没了,就纯粹是在为期末考试的成绩而“学习”了。但如果一开始就给他们一个很正规的网站,让他们模仿,那就不一样了。一开始不会?没问题,告诉你们怎样用表格去做整体布局,大处会了,小处自己琢磨;图片不会处理?没问题,“文件-另存为”,用人家现成的;后台代码太枯燥,不会写?先不管它,扔一边去。
等首页基本上做得差不多了,他们对表格的使用也基本就收放自如了,这时告诉他们CSS是什么,再给他们演示一个纯DIV+CSS的网站,不怕引不起他们的兴趣,再让他们推倒前面用表格做的首页,改成用DIV+CSS实现,他们也会很乐意。
实际用CSS实现时会遇到诸如浏览器版本不支持呀,特殊效果的实现呀等N多正规教材中没有的问题,这时候大家自己放狗去搜吧。经常他们遇到什么问题时我让他们自己找解决办法,等两三天后,发现他们不但解决了原问题,还学会了某个我都不知道的技巧……
等用CSS把首页做完后,就可以给他们介绍JQuery或Flash等动态效果的实现。之所以选JQuery,是因为多数效果都可以从网上搜到现成的代码,一开始不用懂JS语法就可以实现各种新奇的效果。等他们发现有的效果不能直接用在自己的页面中时就会一点点地改脚本中的参数,慢慢也就深入到JS中去了。至于Flash,一开始我让他们用的都不是Flash的开发环境,而是SWISH,原因也一样:不用懂多少东西,就可以做出很炫的Flash效果,至于对这方面有兴趣的,自己装个Adobe的Flash,多找几个源码,慢慢分析慢慢学去吧。
再到后来用开发语言写基本的发贴、文件上传、后台Email发送都是类似的做法。
我经常用来鼓励实习生的一句话就是:不用全学好,学精其中一门,就能保证毕业后有饭吃。
有的学校也在搞“案例教学”,他们课还是正常上,但每节(或每几节)课都是拿一个具体的实验或例子来讲。这种做法是比纯粹读课本强得多,但试想,这节课学的是“IF语句”,能拿什么“案例”给学生呢?下节讲“Select语句”,再下节讲…… 等到真的能拿个正常的案例来讲的时候,这门课基本上已经讲完了。
还有一件事就是那种,一开学就把这一学期的教学计划、教学进度全都定好,然后每节课严格执行的,这才是典型的教条主义。试想:本来你认为“指针”这一节很复杂,需要三节课讲完,奈何今年这批学生偏偏前两节就听懂了,你怎么办?剩下一节课让学生睡觉?这还是好的,再如果,本来你认为一节课就能把“If语句”讲完的,但学生反而没全懂,那你下节课怎么办?直接按教学进度讲下面的,“IF”就不管了,爱会不会?
晕,一边跟朋友聊天一边写的,本来是想谈一下关于学习的想法的,结果跑题了……
附:bang590说的那本书《编码的奥秘》,我下来大致看了一下,写得确实不错,改天有时间慢慢看。下载地址如下:
IT 业的知识面广, 最重要的是技术更新快, 官方教育法的缺点加倍突显. 所以, 大部分高其实都是自学的. 尽管其中很多人也有很高的学历, 但其主要的学习手段仍然是半抛弃课程的自学.
我一直觉得本科教育的计算机书籍是有问题的。不知道是不是我学校烂的原因。国内的书里面又杂又乱、逻辑性差。相比而言,国外的书籍循序渐进非常科学,很容易上手。
国内的教科书是按编者自己的思路来的。我手上的计算机组成原理是按外表层次来编的,我在图书馆借阅的是严格体系分层来的。这完全天翻地覆啊。说实在话,还是国外的教育科学些,是站在初学者的角度来编写的。我当初看CCNA最基础的网络教材,那完全让我眼前一亮啊,我发现说的太明白了太透彻了,它让你知道这门技术是什么时候的,为什么会被淘汰。我的大脑很能接受这种思路。国内那本评职称的书,把几个技术全揉一块讲,我完全分不清现实中该用哪个,我觉得哪个都满好。
文章不错,附上的书一定好好拜读