程序猿的学习方法【思考】

                                               

                                         程序猿的学习方法

       作为IT业的一员,我们差点儿每天都有大量的知识须要学习。有大量的技能等待我们去掌握。差点儿从我决定“献身”程序猿这一伟大事业之后,我就一直在考虑怎么提高自身的学习的能力(简称学习力),下面两张图作为我多年学习生涯得来的宝贵经验,拿出来和同学们分享。

金字塔.JPG 太极图.jpg

假设你看到的第一张是埃及的金字塔,第二张是中国的太极图。说明我的图片没错:第一张代表“知识的金子塔结构”,第二张说明了“理论和实践的相生相克原理”。

一、知识的金字塔结构。我把我了解的软件知识分成了四个层次:思想。原理,技术和应用,他们之间的关系就像金字塔一样:

知识的金字塔结构副本.jpg

  1. 思想:眼下我认为能上思想的就两个:算法和面向对象。

  2. 原理:原理就有非常多了。比方计算机组成原理。网络连接的原理,操作系统的文件訪问原理,GC的执行原理等等。
  3. 技术:这个就数只是来了。比方Asp.net技术啦,Ajax,WPF……这些统统是技术。

  4. 应用:世界上全部机器上执行的代码,都算是应用。

思想到应用的划分没有高低贵贱,而仅仅是抽象层次的不同。

学习的过程,就是通过某一个应用。了解它所使用的技术,进而掌握当中的原理,最后,领悟当中的思想。这大概也就相应了“了解”、“掌握”和“精通”这三个层次吧。所以学习力的高低。在于对高层次抽象的掌握能力。

举个样例:设计模式这近期几年非常火,23个模式翻来覆去的有人在讲。我不知道有几个人认真看了。又有几个人能记得住。反正我比較懒。也比較笨。可是笨人有笨办法。面向对象就那么几个概念:“继承”、“派生”、“多态”,说的再详细一点。也就DIP。SRP这么几个原则,大体看看每一个设计模式中运用了哪些概念和什么原则,下次在遇到类似的问题。预计就能把这个模式用出去。(PS:此处选择性的忽略了模式在沟通上的意义,呵呵)。

所以要提高学习力。咱们看书就地多看些有深度的书,什么“精通”啦、“速成”啦。就免了。孙子兵法、道德经之类的思想藏的太深,想用在代码里咱没那水平。像《敏捷软件开发 原则、模式与实践》,《深入浅出设计模式》之类的就刚刚好。

但是也千万别觉得思想就比应用更重要。没有应用,要思想、原理、技术作甚?

二、理论和实践的相生相克原理。

说完抽象,再看看理论与实践的关系,老祖宗的太极图非常形象的说明了这个问题,再看一下:白色代表理论,黑色代表实践:

太极图.jpg

  1. 白色走到头。和黑色接触的就很多其它:实践多了,更easy理解理论。
  2. 黑色走到头,和白色接触的也很多其它:理论的东西看多了。就能够更好的实践。
  3. 白色走到头。就会产生黑色:实践的东西多了,自然会有理论产生。

  4. 黑色走到头,就会产生白色:理论的东西多了。自然而然就会想去试试看。

所以我经常使用的方法是边看书,边敲代码,看完书就试着把学到的东西用在项目里。感觉这样能把知识体系穿起来,easy记。不easy忘。敲代码写多了就回过头来琢磨一下看看哪儿好哪儿不好,下次肯定会有进步。

本文摘至: http://blog.csdn.net/fengyunzi_007/article/details/2632891



原文地址:https://www.cnblogs.com/slgkaifa/p/7214385.html