关于编程的浅学习与深学习

简介: 导读:Tanky Woo的程序人生在博客中发表了《关于编程的浅学习与深学习》,文章是关于编程学习的一个提议、归纳、总结。以下是文章全部内容:关于编程的学习,大家肯定都知道,也是大家都说来说去的,就几句话:1. 多看书。

导读:Tanky Woo的程序人生在博客中发表了《关于编程的浅学习与深学习》,文章是关于编程学习的一个提议、归纳、总结。

以下是文章全部内容:

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

1. 多看书。

2. 多看代码。

3. 多敲代码。

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

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

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

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

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

1. 看了书,看了代码。

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

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

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

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

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

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

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

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

一、学习编程,要完成三个步骤:

   1. 看书,看代码;

   2. 对照着书敲代码;

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

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

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

以上是我对编程学习的一个提议、归纳、总结。

原文链接:http://www.cnblogs.com/tanky_woo/archive/2010/12/13/1904611.html

目录
相关文章
|
3月前
|
程序员 数据处理
令人膛目结舌的代码技巧:探索编程世界奇妙之处(3)
令人膛目结舌的代码技巧:探索编程世界奇妙之处(3)
25 0
|
3月前
|
缓存 程序员 Python
令人膛目结舌的代码技巧:探索编程世界奇妙之处(2)
令人膛目结舌的代码技巧:探索编程世界奇妙之处(2)
32 0
|
3月前
|
程序员 编译器 数据处理
令人膛目结舌的代码技巧:探索编程世界奇妙之处(1)
令人膛目结舌的代码技巧:探索编程世界奇妙之处(1)
27 0
|
8月前
|
机器学习/深度学习 存储 运维
探索编程世界的宝藏:程序员必掌握的20大算法(中)
探索编程世界的宝藏:程序员必掌握的20大算法
113 0
|
8月前
|
搜索推荐 算法 程序员
探索编程世界的宝藏:程序员必掌握的20大算法(上)
探索编程世界的宝藏:程序员必掌握的20大算法
104 0
|
8月前
|
存储 机器学习/深度学习 自然语言处理
探索编程世界的宝藏:程序员必掌握的20大算法(下)
探索编程世界的宝藏:程序员必掌握的20大算法
97 0
|
10月前
|
设计模式 JavaScript 前端开发
从浅入深学习中介者模式
在软件开发中,设计模式是一种用于解决常见问题的重要工具。其中,Mediator(中介者)/Middleware(中间件)设计模式在处理多个组件之间的通信和协调时非常有用。本文将从浅入深地介绍Mediator/Middleware模式,包括其定义、用途以及如何使用JavaScript实现它。
67 0
|
10月前
|
算法
谈一谈|编程中的数学思维
谈一谈|编程中的数学思维
105 0
|
12月前
|
JavaScript 前端开发 数据库
✨从纯函数讲起,一窥最深刻的函子 Monad
建议按顺序“食用”。饮水知其源,由 lambda 演算演化而来的闭包思想是 JavaScript 写在基因里的东西,闭包的“孪生子”柯里化,是封装高阶函数的利器。
|
算法
重温算法,加深理解
算法在开发中的地位我们都很清楚,但是呢实际上项目里用到的算法并不是很多,虽然不是必须但是我们还是要懂算法,理解算法,运用算法。前几年肝了很多算法,但是这玩意不经常练习就会忘记,今天就重新把算法捡起来吧。
72 0
重温算法,加深理解