如何学习编程技术

关于学习编程技术,我认为,没有最好的方法,只有适合自己当前水平状态的、可以达成自己目标的学习方法。每个人有不同的适应自己的学习方法,每个阶段有不同的学习方法,学习的目的不同使用的方法也不同。简而言之,方法不是固定不变的。

学习方法一般有:

  • 看官方文档。
  • 看书籍。
  • 看博客、教程等技术文章。
  • 看视频教程(倍速)。
  • 看源码。
  • 跟着教程敲代码,写demo,做练习。
  • 在真实的项目中应用该技术。

学习的目的一般有:

  • 入门,学会基本概念和使用。
  • 熟悉,查漏补缺,加强熟练度。
  • 精通,深入理解架构设计和代码实现原理。

学习主要考虑两个问题:质量和速度。有的时候需要优先考虑质量,有的时候则需要优先考虑速度。

(一)入门

入门在于理解,表现为能够使用简单的几句话将这门技术的核心概念描述清楚。

如果是比较急(速度优先),则优先考虑看入门视频教程,或者入门博客教程等。文档和书籍一般都会比较权威、严谨和全面详细,然而缺点就是比较枯燥和繁琐,概念特别多,容易抓不住重点。然而入门视频教程通过通俗易懂的讲解、简单的示例代码、和抓重点内容,能够让你更好地快速入门。

如果不是很着急,可以先尝试看官方文档,如果官方文档写得对新手不太友好,可以尝试找一些初级的书籍看看。如果文档和书籍都看不下去,最后,再去找一些入门视频教程和博客文章去看。如 Spring Security 的官方文档就对新手不太友好。

另外,入门的话,跟着教程敲 demo 代码也是很有必要的。虽然 demo 代码都比较简单,自己能够看得懂,但是还是要自己敲一遍。至少能够加深一些印象。

注意事项:

  • 入门时尽量不记或者少记笔记,在大量练习使用后,再做笔记。这时候才知道哪些是重要的或经常使用的。

(二)熟悉

熟悉在于大量练习,表现为对这门技术的大部分的功能用法(如:注解、配置等)和 API 调用可以熟稔于心、信手拈来。

如果想要熟悉一个技术,首先需要认真地多看几遍权威的资料的,如官方文档和书籍。另外,大量的练习也是必不可少的。站在岸上学不会游泳,可以做一些 toy project 或者在真实的项目中应用。

在准备面试的时候,我们通常需要去背很多知识点。因为这些知识点平时用的很少,但面试需要我们流畅地表达出来。想要对某些技术知识点做到脱口而出,要么死记硬背,要么大量使用。所以面试的时候,对于用的少的知识,要去记忆和背诵。虽然短时间能记住很多,但没使用过或使用得很少,复述出来还是不太流畅。

(三)精通

何为精通?这似乎是个很模糊的概念,很难去定义。就算是领域高手也很少说自己精通某个技术。似乎精通没有极限,我们只能在通往精通的道路上不断前进。学无止境,不必为了精通而精通。以目的和兴趣去驱动,不断提高技术水平。

(四)最后

知易行难,唯有行动,才能改变。不断努力,不断成长。

References

[1] 学习编程是看文档还是看视频教程