谈下自己学习编程的方法

来源:互联网 发布:网络计划图绘制软件 编辑:程序博客网 时间:2024/06/03 12:47

写在前面

从事Android编程开发有一年多,从经验上来看还是入门的级别,但在这个从对编程一窍不通到渐渐有些感觉的过程,也摸索和学习到了一些方法,所以在这里把这些方法写下来,总结下自己的一套方法论。因为这些方法对我个人比较适用,所以对于其他人的话我认为仅供参考,重要的是每个人要找到适合自己的方法。

尽可能地回忆自己在这个过程中是在什么阶段通过什么方法来寻求进步的,但这里面并不是说它们就是独立存在的,有时候也是会互相影响的。

笨方法

我觉得对于一个初学者来说,笨方法可能会是最好的方法。什么是笨方法呢?就是死磕重复模仿。比方说买一本书,从头到尾的跟着里面的内容做,把每一句代码都敲下来,这期间会有疑惑,会有不少知识点不懂,但没关系,这里主要是找到一种感觉

什么感觉呢?对于一门编程语言来说,就是习得它的写法;对于一个功能来说,就是掌握它的基本实现。像我刚开始工作的时候,对于网络请求不甚了解,在公司里我就完全抄同事的代码,在那个项目里遇到网络请求都是抄那一段,这样慢慢地就开始自己会默写了,再进一步地就知道一个网络请求的写法是需要地址,请求参数,回调处理等一些基本要素,那么更进一步地就知道看其它网络框架的时候,它们也都是遵循这么一个基本的道理,那么我们使用起来就会快一些,因为我们只要找到那几个基本要素就行了。

读书

我认为大多数的问题都是可以通过读书来解决的。因为它是我们在接触某个问题或是某个领域之前的领路人,也就是说我们不需要亲身在那里才能知道,可以通过书本里的内容获取到相关的信息。

不同的领域都有专门讲述自己领域的书,像经济方面的有《经济学原理》,《穷爸爸,富爸爸》等;计算机方面的有《重构》,《黑客与画家》,《算法导论》等;文学方面有《唐诗三百首》,《围城》等。但这些领域是像一座座堡垒一样各自独立吗?其实不然。当我们阅读不同类型,不同领域的书越多的时候,我们就会发现其实在某种程度上它们的思想是相通的,只是它们在各自的领域里通过不同的专业名词来表达而已。

举个例子:

  1. 曼昆的《经济学原理》里有一条原理:人们总是面临权衡取舍。
  2. 毛泽东的《矛盾论》一书里在阐述矛盾的普遍性里有这么一段话:矛盾存在于一切事物的发展过程中,每一事物的发展过程中存在着自始而终的矛盾运动。
  3. 之前看过的一篇励志类的文章里写道:你的一生会得到所有你想要的东西,只是它们不会同时出现。
  4. 计算机领域里我们说拿时间换空间,安全与方便不能共存(如密码越复杂就越安全,但是你自己输入和记忆就要费些功夫了)等。
  5. 物理学里提到的杠杆原理:省力必定费距离,省距离必定费力。
    ……

从上面的例子我们就可以看出,其实它们都是在表达同一个意思,就是鱼与熊掌不可兼得。只不过是在各自的领域里对自己的问题用特定的名词做表达而已。
我认为对这个不同领域却都在表达同一个意思的理解是,虽然我们接受不同的专业知识,但在这之前,我们接受的是相同的基础教育,所以我们在这一层面上是有共同的思想的。比方说在计算机领域里一些知识点的表达令自己难以理解,但它的这种思想在其它的领域里有更好的表达让我们理解,当我们明白了之后,再回过头来看,也就“无师自通”了。

好记性不如烂笔头

做笔记,写博客,画思维导图,流程图等等这些还是必要的,因为在写的过程中我们需要组织语言,理清思绪,所以这个也是对我们的知识一个回顾的过程。我觉得写博客比记笔记的要求应该会高一点,因为观众除了自己还有别人,所以我们会思考多一点是怎么让别人看得懂,于是在遣词造句方面就会更加的有条理性,然后别人可能会根据你写的内容提出问题,你就会去思考更多的东西,进而完善自己的博客。
所以我个人就不太建议去记住一些太细节的东西,把这些东西记录下来,需要了知道去哪里查就行了。

跟踪法

我个人非常喜欢福尔摩斯,警察之类的,感觉非常酷。福尔摩斯有一个说法,就是你抓到链子上的一环,你就能够去推出一整条链子了。编程里也差不多,我们不断地跟踪方法的实现,一直往回走,看它在哪里被调用,逐步地去找到最后的实现,也就在跟踪的过程中对整个思路都了解了。
类似的就是警察的这种推理,生物学里的同位素示踪法。

更高一点的思想

学习计算机就是在学习系统了,那么系统性思维还是要有的,我目前能想到的两个关键词是抽象(简化之类的)和原理(本质之类的)。

抽象

模型应该是更容易被听懂吧,很多具体的东西都会被抽象成模型,比方说网络里TCP/IP模型,面向对象编程里的类,牛顿的万有引力定律
万有引力公式
,“会当凌绝顶,一览众山小”等等。这些都是通过屏蔽掉一些细节的东西,去抽象或是归纳成一个统一的东西,站在一个更高的角度来看问题。

这些数学家能够把万物用这么一条简洁的公式总结出来,确实非常厉害。

原理

这个应该是要接着“抽象”继续讲。如果这些东西都被抽象成一个唯一的模型,那它应该就是原理了吧,在它的基础上去延伸变化什么的,都是万变不离其宗,最后还是依照这个思想。也就是我们说的透过现象看本质

试下举个例子,不知道恰不恰当:
最近换了工作想换租房,希望能离公司近一点,可以走路上班不用挤地铁,但公司附近的房子太贵了,同样的价格我在远一些的地方可以更好一些,但其实这两个地方的距离不算远。这是一个现象。那么十九大的时候提出了“新实质”

我国社会主要矛盾已经转化为人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾。

那么这个应该就是原理(本质)了,因为很多现象都可以回归到这句话,我们只要记住并理解这句话,很多现象就看明白了。

写在最后

目前能记录下来的应该就是这些了,当然在今后不断地学习和工作过程中,相信也会尝试和总结出更多的方法,所以会不断地完善这一篇。