随笔 - 70  文章 - 160  trackbacks - 0

公告:
知识共享许可协议
本博客采用知识共享署名 2.5 中国大陆许可协议进行许可。本博客版权归作者所有,欢迎转载,但未经作者同意不得随机删除文章任何内容,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言。

常用链接

留言簿(8)

随笔档案

文章档案

搜索

  •  

积分与排名

  • 积分 - 178102
  • 排名 - 147

最新评论

阅读排行榜

评论排行榜

关于编程的学习,大家肯定都知道,也是大家都说来说去的,就几句话:

1.多看书。

2.多看代码。

3.多敲代码。

这些我不想多说,也觉得没有多说的必要。

经常在CSDN上看到有人问“我学习C++一段时间了,该如何进阶?”,然后接着就是一大堆的人,重复这上面的三句话或者更多,我不是说这些方法是错的,我只是认为,这样没有点到本质,初学者喜欢依赖于书籍,他们看书了,他们也照着书敲了代码,但是他们就是感觉一直在基础的层面上打转,这是为何呢?

在C++里定义复制构造函数时,大家知道,一般对于类中含有指针的,要进行深复制,而不是浅复制。而我在这里也要讲一个类似的方法,那就是关于编程的浅学习与深学习的问题

大家在这里可以先试着想想自己平时是怎么学习编程的?遇到一个新函数、新概念,大家是看书?记住概念?看看代码?抑或是其他?

我根据个人的理解和经验,在没遇到一个新知识时,我把学习这个知识点的深度分为三个层次,依次深入:

①.看了书,看了代码。

②.在①的基础上,照着书把代码敲在电脑里运行了。

③.在②的基础上,自己根据自己的理解和脑海里的记忆,不看书,把代码敲在电脑上,并运行。

对于第①个层次,一般会发生在以下情况下:平时没学习,考前疯狂的看书,但是没时间敲代码,于是把书和代码都用学习概念的方法—->死记,这样,直接导致了考时忘光光,考后欲哭无泪。

对于第②个层次,大部分人应该都处于这种情况。大家平时学习时,是一种机械化的学习,也就是第②种层次所说的,照着书敲代码,这样虽然当时把程序运行出来了,很高兴,但是,如果我接着让你不看书,自己动手再敲一遍,有几个人可以敲出来?抑或是,我把题目要求改一改,让你们用这个新学到的方法做,有几个人可以做出来?

这就是第②种层次的弊病,网上很多人都建议,自己动手把代码敲在电脑上,但是我相信,他们的本意是让大家不看书,把代码敲上去,而不是只是简单的照着书敲代码。

对于第①种层次,根本谈不上是学习;而第②种层次和第③种层次,就是我在文章标题里所说的浅学习和深学习的区别。

我说了很多,可能有些人觉得是废话,只需要一两句就可以说清楚的。本文的目的,只是为了分析浅层次与深层次学习的区别,进而能自己去区别学习层次,虽然一两句话也可以说清楚,但是却无法印刻在读者的脑海里,更无法自己去形成这个概念,也就无法判断自己的学习是否到位。

最后,我像把文章用几句话总结一下:

1.学习编程,要完成三个步骤:

        ①:看书,看代码;

        ②:对照着书敲代码;

        ③:抛开书本,自己根据自己理解,去敲代码,或者自己给个题目,然后用新学到的知识去解决;

2.学习编程,如果只做到上面两个层次,不如不学,把时间留着去打会球,因为这样根本没学到知识,当然,不排除有些人记忆力超强。

3.以上学习方法可以运用到其他学习上去。大家自行去理解,寻找一套适合自己的学习方法。

Tanky Woo原创,欢迎转载,转载请注明作者信息以及本博客:http://www.cppblog.com/tanky-woo/

Tanky Woo 标签: 
posted on 2010-12-13 16:11 Tanky Woo 阅读(2589) 评论(11)  编辑 收藏 引用

FeedBack:
# re: 关于编程的浅学习与深学习 2010-12-13 17:53 2011
really  回复  更多评论
  
# re: 关于编程的浅学习与深学习[未登录] 2010-12-13 21:10 who
you are right  回复  更多评论
  
# re: 关于编程的浅学习与深学习[未登录] 2010-12-14 09:32 kkk
先看了书的基础部分,然后自己直接找个难度适当的idea来实现,不懂就查书查网络,idea实现后你也入门了、进阶了  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-14 09:33 Tanky Woo
@kkk
嗯,其实我在文章里应该补一句,看完书后,把书扔到一边,努力去解决书后的习题,这样效果很好。  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-14 12:47 Skill
写的很好 收藏了  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-14 16:48 Tanky Woo
@Skill
呵呵,欢迎收藏。  回复  更多评论
  
# re: 关于编程的浅学习与深学习[未登录] 2010-12-15 10:05 kkk
@Tanky Woo
感觉做习题是不够的,而且做纯粹的题目也很难维持热情和动力,只有做一个比较完整的、有实际应用价值的idea才能让你在短期内以高热情去掌握一门新技术。  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-15 11:29 Tanky Woo
@kkk
以后做一个完整的项目是必须的,我这里只是针对初期的学习。
如果连课后习题都完成不了,当然就无法完成更大的项目。
  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-16 20:10 m
知识是一座宝库,实践是打开宝库的钥匙。做一个完整的项目很重要。  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2010-12-21 16:59 jackmu2003
跟我方法一毛一样,通过看代码理解要实现某个行为,然后根据自己理解和掌握的东西自己再写一遍,看primer最大的乐趣是自己把后边习题写代码写出来,看到要求的结果,有点小成就感,还在学习中  回复  更多评论
  
# re: 关于编程的浅学习与深学习 2011-05-11 09:41 s17ence
说得很好  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理