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

导读: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

时间: 2024-09-27 21:38:06

关于编程的浅学习与深学习的相关文章

徐立:1200层神经网络夺冠ImageNet,深度学习越深越好?| 新智元 AI 领军人物专访

人工智能领域的创业浪潮中,计算机视觉技术(CV)可以说是一个较为火热的方向,呈遍地开花之势.在这片江湖中,有四家公司特别突出,有 CV 领域的"一桶筐汤" 之称,可以看成是具有巨大潜力的"四小龙". 其中,"汤"在这里指的就是创建于2014年的商汤科技开发有限公司.其他三家"一"指创立于2016年的依图科技."桶"指的是2014年的"格灵深瞳","筐"指的是成立于20

Java编程那些事儿3——你适合学习程序设计吗?

 Java编程那些事儿3--你适合学习程序设计吗?作者:陈跃峰出自:http://blog.111cn.net/mailbomb          程序设计是一个技术活,所以不是适合所有的人.现在很多人听说程序设计人员待遇如何如何的好,都一窝蜂的来学习程序,其实这个现象很不正常,因为程序不一定适合你.其实对于一个人来说,适合你的才是最好的.         就像现在很多小孩子都被家长逼着去学钢琴啊什么,有些小孩根本没有艺术细胞的,所以学习的效果就是差强人意了.         其实程序设计最需要

编程学习:Java学习从入门到精通

编程 Java Learning Path (一).工具篇 一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BE

老司机浅谈linux系统学习技巧

Linux 起源于 20 世纪 70 年代,是一种优秀的操作系统系统.初次接触到 linux 这个系统是在大学期间,这样才发现除了 windows 外的另外一个有趣系统.开始抱着好奇的心态去了解,随着深入学习,笔者被它独有的魅力所吸引.即使它的可视化窗口操作模式并不如 Windows 操作系统那样完美,可是它的可维护性.操作系统低占用率.可扩展性却让它在服务器操作系统方面已经成为资深服务器工程师的首选的操作工具. 笔者刚开始学习 linux 的时候,也不是一帆风顺的,下面笔者就开始分享这两年多的

深度解析javascript中的浅复制和深复制

     在谈javascript的浅复制和深复制之前,我们有必要在来讨论下js的数据类型.我们都知道有 Number,Boolean,String,Null,Undefined,Object五种类型.而Object又包含Function,Array 和Object自身.前面的五种类型叫做基本类型,而Object是引用类型.可能有人就要问,为什么要分基本类型和引用类型呢?后面你就会明白的.      我们首先来看看浅复制和深复制的简洁定义: 深复制:直接将数据复制给对应的变量 浅复制:将数据的地

举例区分Python中的浅复制与深复制

  这篇文章主要介绍了举例区分Python中的浅复制与深复制,是Python入门学习中的重要知识,需要的朋友可以参考下 copy模块用于对象的拷贝操作.该模块非常简单,只提供了两个主要的方法: copy.copy 与 copy.deepcopy ,分别表示浅复制与深复制.什么是浅复制,什么是深复制,网上有一卡车一卡车的资料,这里不作详细介绍.复制操作只对复合对象有效.用简单的例子来分别介绍这两个方法. 浅复制只复制对象本身,没有复制该对象所引用的对象. ? 1 2 3 4 5 6 7 8 9 1

新手学习seo我推荐的学习思路和学习流程

随着电子商务的不断发展,seo是很多中小企业首选的营销手段,作为一个初学者学习seo笔者认为不要急躁冒进,首先打好学习的基础是至关重要的,一个seo新人对应很多seo名词可能你会难以理解,但是不要气馁,一种积极进取平和的学习心态是你在学习之前必须保持的,因为没有认真刻苦的态度,注定你只会学到表面而不会更加深入的掌握,好了闲话短续我们进入今天主题. 第一,首先选择一个可以学习的环境. 笔者认为任何事情都要有一个环境和学习氛围,学习这个事情关键是自觉,只要是自己认准的事情,努力选择适合自己的学习平台

做为项目经理必读:不断的学习,学习,再学习

问题是最好的学习机会 日本经营之神松下幸之助曾经说过:"工作就是不断发现问题.分析问题.最终解决问题的一个过程,晋升之门将永远为那些随时解决问题的人敞开着."可见,工作过程中有问题是正常,没有问题那才是真正的问题.在发生问题能时,能勇于面对问题.解决问题的人,才是公司真正的核心骨干. 现实中,很多人总是千方百计回避问题,当上司安排一项艰巨的任务时,也是想尽办法推托.殊不知,对于个人而言,其实问题是最好的学习机会.往往那些愿意接受困难工作的人,能力会变得越来越强,那就是因为他们在克服困难

java中对象的浅复制和深复制笔记

在面向对象的语言中,如Java/Python,对象的复制有两种形式:浅复制和深复制 一.浅复制    浅复制只是将原对象的引用备份了一份给新的变量,实际两者指向的是同一个对象.在Python中,字典.列表.元祖等都是对象类型 >>> person=['name',['savings',100.00]] >>> hubby=person[:] >>> wifely=list(person) >>> [id(x) for x in per