• 区别编程学习阶段的两个关键因素

    资源与知识面
    服务器君一共花费 20.838 ms 进行了 2 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    那么前两个阶段的真正区别是什么呢?为何相比阶段一(手把手辅导的蜜月期)来说阶段二(困惑的下滑期)给人的感受会如此糟糕?如果你的经历很像我们前面描述的那样,只要理解了这两个问题,你就能释怀了。

    从根本上来说,每个阶段都有两股关键力量在起作用,那就是资源的密集程度和知识面的广度。在探索它们对阶段三的影响之前,我们先来看看这两个因素到底是什么。

    因素一:资源密集度

    正如我前面所说,一开始你会感觉有遍地的资源在引导你上手编程。事实也确实如此!

    搜索“如何编程”,你会得到一大堆有用的工具、文章、视频以及自学教程。而且,老实说它们都很棒!从未有过如此多的方法指导人们学习编程。

    不幸的是,后期可供使用的资源太少了。每一个从初学者成长到当前状态的人都能体会这其中的差距之大,相比刚开始入手,当你试图完全依靠自己创建工程时,能利用的资源就少得多。

    进入阶段三后需要了解的知识猛然陡增,恶化了上面的问题,这也是为什么我把这个阶段称之为“绝望的迷茫期”。一旦你度过了这个阶段,并且开始了解你需要搜索的东西,你就会找到很多资源,还能使用一些技术工具,如专业博客和视频讲座。矛盾的部分仅仅在于明白该问什么问题。

    下图显示了各个阶段中的资源密集程度(线条越密集表示资源越多):

    各阶段的资源密集度

    因素二:知识面的广度

    现在我们来聊聊一个相关的话题——知识面的广度。它表示你在每个阶段中必须学习的新知识的总体广度。下图就显示了这个因素在每个阶段中的情况:

    各阶段所需知识的广度

    刚开始学编程时,你需要理解的东西很少。不论你的目标是什么,不论你用什么编程语言,也不论你之前是做什么的,每个人要做的都是搞清楚什么是for循环,如何创建条件语句,以及其他一些编程语法的基础结构。总体来看也没多少基础概念,因此阶段一所需要的知识面广度很窄。一旦你学完了基础部分,就需要去了解一些更复杂的东西,比如理解错误以及何时使用那些你已经会用的代码,此时你会发现需要学习的额外知识瞬间多了很多。这个时候情况变得不同了,因为一个明确的问题不一定有一个绝对正确的答案……事情开始变得棘手。

    当你进入第三个阶段后,所需的知识面广度就更宽了。你需要理解该使用哪些工具,该学习什么编程语言;学习相关的计算机科学基础,如何写模块化的代码;学习面向对象的编程,学习好的代码风格,以及学会寻求帮助(以上仅列举几个例子)。每一次在Google 或 Hacker News上进行搜索都让你大开眼界,找到的东西多得让你喘不过气,都是些你不知道但感觉自己应该了解的知识。

    你不知道自己不懂哪些东西。

    只有当你终于摸到了一些门道并结束这个“荒漠之旅”以后,所需的知识面广度才会再次缩小。那时,你已经选择了某种技术,并了解了它在这个行业的生态系统中所处的地位。你最终学会了那些你以前不懂的东西(可以说相当了解),也知道如何解决问题。随着你深入学习和事业逐渐起步,你将越来越专注于自己领域的技术。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [移动开发] Android布局中的一些常用控件 2 个条目
  2. [PHP程序设计] PHP数组的遍历 7 个条目
  3. [C语言程序设计] C语言里的全局变量 2 个条目
  4. [PHP程序设计] CodeIgniter与PHP框架设计 5 个条目
  5. [Python程序设计] Python HTTP服务器 7 个条目
  6. [Linux操作系统] 基本 Linux Shell 命令 2 个条目
  7. [PHP程序设计] PHP扩展模块安装 1 个条目
  8. [移动开发] Android View注入框架Butter Knife 3 个条目
  9. [智力开发与知识管理] 学习编程为什么没会这么难? 7 个条目
  10. [移动开发] Android开发基础知识 4 个条目
  11. [搜索引擎优化] 百度搜索引擎优化指南 3 个条目
  12. [数据结构] 图的定义 1 个条目
窗口 -- [资讯]