编程初学者的三个学习阶段

上一级页面:index-la

前言

我们的编程学习过程不是一蹴而就的,大部分情况下,可以把学习的过程划分为3个阶段,完成这三个阶段可以达成所谓“能够运用相关语言”,达成初学者的阶段学习目标。

而对于更加深入的学习,则需要掌握更多原理、源码、主流框架的知识。

具体来说,初学者的3个学习阶段,我归纳如下:

阶段1:

  • 了解学到的概念,或是对相关名词有大致印象
  • 跟随教程、文档、视频操作来敲代码,做到以下要求:
    • 熟练敲出对应关键字,
    • 熟练掌握顺序、循环、分支结构
    • 熟练敲出对应语法

总结:这个阶段的目标是训练代码的基本功,通过IDE或者是编辑器来多敲代码,实现熟练使用关键字,熟练掌握基础语法的目标。而对概念、原理等仅做最浅薄的要求,即有一些了解,或者是对相关概念的名词有大致印象即可

阶段2:

  • 对之前学到的概念进行深入理解,理解和记忆部分原理性知识点
  • 对敲代码的要求放松一些,可以减少跟着敲代码的频率,来思考记忆概念。或是在课后敲对应代码,仿写对应代码

总结:这个阶段的目标是对概念、原理等需要理解和记忆的知识有足够的学习,多背、多思考、多理解、多记忆,这些是这个阶段的目标。而对代码训练量可以有一定的下降,或是将其放在概念、原理等学习之后进行,不要耽误你的思考。

阶段3:

  • 系统梳理知识结构,通过流程图,思维导图,笔记等辅助工具来梳理概念、知识点之间的关联
  • 减少代码训练量(前面两个阶段说的那种基础训练)
  • 加入实战训练,通过做Demo项目、玩具项目、实战项目来进行项目驱动式的学习

总结:这个阶段的核心是项目驱动,

  • 一方面梳理前两个阶段学到的大部分知识点,借助流程图,思维导图,笔记等辅助工具,将前两个阶段学到的东西进行归纳、熟练、总结,
  • 另外一方面是项目驱动,一定要接触到实际项目。从基础的Demo项目开始,然后过渡到玩具性质的项目,最后达到学习实战项目。在项目实战的编写过程中,
    • 总结发现自己知识体系中的不足,对不足之处要及时查缺补漏,多借助搜索引擎、Github、StackOverFlow
    • 总结项目的业务,例如项目中的某某模块,设计时什么样的思路,进而使用了什么样的技术栈,最终达成什么目标。做到理清设计思路,掌握相关技术栈,能够总结出模块所要实现的目标
    • 锻炼自己使用主流框架,使用主流技术的能力,这些是在未来工作中所必须的。很多问题是不实战不会发现的。你不实战,很难发现自己的种种问题。
    • 假设你错用框架、中间件的某些功能,进而尝试通过搜索引擎、Github、StackOverFlow搜索解决方案,最终通过笔记对问题背景报错信息、解决方案进行归纳。这就是你对未来工作环境的预热,也是你对自己能力、经验的提升。

程序员进阶

这里以Java程序员为例,介绍一下工作后所需要进阶掌握的内容,见:程序员工作后的进阶学习和后续的深入发展

参考、引用、致谢