如何高效学习一门编程语言

141 阅读4分钟

做程序员好多年,经历了生态语言的升级变迁,也见证了好多相关行业的兴衰。做过不同语言的码农,也做过培训机构的老师。见过很多人入门到放弃,还有很多一直在不断学习却屡屡不得法。结合这些年来的经验,给大家分析一下,为什么会造成这种情况、以及怎样高效学习一门语言

一、编程入门的核心

掌握一门学科,最重要的是掌握这门学科的思考方法

当你掌握第一门编程语言,哪怕是一门很简单的编程语言,再去学习其他语言就会容易很多。很多大牛都对想学习编程的同学提出过这样一条建议“先选一门简单的语言入门”,我有个朋友,体育专业学生,喜欢看网易公开课,一次看到哈佛大学公开课CS50 里面讲到一个医学院学生选修了他的课,实习的时候利用很简单的PHP脚本处理了大量excel数据,帮医院节省了很多时间。他就自学了PHP,在读期间就开始帮别人写网站,现在成为了一名优秀的程序员,虽然现在PHP饱受非议,但是不可否认的是,这是一门很优秀的语言,特别是它的简单、易用、成本低,使用很少的语言就能学会并实现自己的想法,不仅很多程序员靠它走上了编程之路,很多互联网公司都是靠它起步的。

我举这个例子并不是推荐大家学习PHP,而是向大家说明,思考方法比具体实现更加重要。这个概念在各种名校cs公开课也经常被提到,现代编程语言语法越来越成熟、语法越来越简洁、轮子也越来越多,学习过程中千万不要纠结于“茴香的茴有多少种写法”这种幼稚的问题,把一些技术的具体实现了一遍又一遍,还生怕自己记不住,每次看到有人这么干,我都觉得是应试教育在pia pia打脸,这是工科,是一门实践学科,不是闭卷考试,我们只需要再用的时候知道有这么个东西存在,在哪里可以找到就可以。

二、学习最常犯的错误

study smarter not study harder

现在鸡汤特别多,见过很多“文档你都仔细看完了嘛”“里面每个例子有没有认真敲几遍自己理解实现”“我当年每天学习学习到深夜两三点”,真是害人不浅。

首先,每个人的时间跟心理资源都是有限的,如果长时间学习一个东西却没有得到有效的反馈,我们的耐心会严重下降,就比如有人学习编程半年,面对一个简单的需求,没有一点思路,学习效率就会严重下降,成年人压力都很大,每个人都有自己的事情要忙,得不到回报、见不到成效,就是放弃的开始。

其次,现代编程语言知识用“浩如烟海”真是一点不为过,就拿Java来说,作为一门老牌的语言,拿出一个经常使用的第三方库,就可以让我们学习很久。再仔细看文档,再认真实现具体的例子,每天付出再多的努力,该忘记的东西还是会忘记(而且记住意义也不大)。这并不是说文档不重要、例子不要看,而是让大家有的放矢,掌握节奏。

三、学习的方法

hqdefault.jpg

扯这么多,那怎样才是最有效的学习方法呢,一个字,简单粗暴,就是“干”

管ta娘的,先ta娘的干ta一炮再说!

很多人提到过一个方法,学习一门语言,就像当年英语写完形填空一样,先大概把它通读一下,了解它大概的脉络。了解了这些东西之后,再去找几个开源项目,实现一下自己的想法,起初会很难,特别对于一些编程初学者来说,简直“举步维艰”,但是一旦过了刚开始那道坎,你会发现自己对这门学科开始有了自己的思路,自己的想法,开始带着问题去学习,去思考。等你再回去翻当初那些文档的时候,理解会更加透彻、记忆更加深刻,最主要的是,你会知道这么学科的重点在哪里,思路是什么。

最重要的是,可以自己上手实现需求的时候,带给自己的满足感,会不断激励自己去学习新的东西。而且,最现实的是,靠这个找到一门编程的工作,一边慢慢的积累工作经验,也有了更好的条件去了解之前没来得及了解的东西。

关山难越,祝大家学习顺利!