0.
去年年底,我决定自学编程,选定 Python3 作为入门语言,走走停停到现在,我也由最开始完全不得其法,连最基本的
print()
都不懂,到现在可以把 Python 融入日常工作流,用 git 管理代码和博客,基于 gollum 搭建个人 Wiki 整理技术笔记…一路踩坑撞墙,感慨和收获同多。
如果要说编程零基础,恐怕我就是了:高中文科,本科英专,研究生在高翻念口译,毕业后这些年,或者口译、或者教学,基本都同英文相系,反正和理科无关。除去之前工作同传、交传时,能常遇见些理科工科材料,基本算十多年没和理工科搭过边,这么个背景,自学编程,真是随时看着就要加入「从入门到放弃」的大军了。
好在,没有。
学 Python 之初,我的打算就是,既是学习编程,也是学习「学习」:自己想办法教会自己一项较难习得的技能——还有什么比这更好的学习「学习」的项目呢?
且学且思,不断试错,我也逐渐清晰,是哪些策略,帮零基础的我跳脱了「从入门到放弃」的大坑。
1.
原则一:把有限的精力花在最该花的地方
初学一项陌生的、困难的技能,每个人内心那点儿起始燃料,供应是极其有限的,一旦耗完,即刻熄火。所以,任何无端损耗燃料的事都不要做,比如:
花精力寻找或囤积免费资料、盗版学习材料
。
拿我最开始用的经典入门书 Learn Python the Hard Way (LPTHW) 来说,网上免费的 LPTHW 到处都是,但是,与其花精力东挑西选比对资料,不如直奔 LPTHW 作者 Zed A. Shaw 本尊的付费教程,标价 $29.99 而已,资料问题一站解决,开卷即学,免去诸多琐碎。
并且,原版书籍排版考究,视觉上佳,代码阅读体验尤其好,每次学习都很愉快——这不就是持续行动的秘诀么?相反,若是一决定学习编程,我便去奔波下载,囤积材料,对比版本,怕是如今还在壮大资料文件夹。
另外,初始燃料有限,那就要有清晰的「目标意识」:每时每刻都要清楚,你
此刻
最应该学的是什么。
比如,我按教程作者建议,使用的编辑器是 Atom,而 Python 和 Atom 其时对我都是未知的,二者都有很多值得探索的地方,但我当时的选择是:只关注 Python 本身,而不是如何更有效率的使用 Atom。
编辑器进阶使用,当然要学,但那是之后的事。现在花精力研究这个,或有帮助,但对初学者来说,连「我需要什么」这个问题都无法准确回答,自然难以确定哪些 Atom 进阶功能,是我能用上的,很容易费力而无功。
初学编程,未知太多,无端探索其他,反会影响 Python 进度,而清楚的目标意识,让我能把工作之余本就有限的精力,全部花在最该花的地方。
2.
原则二:世上无难事,只要肯重复
重复学习的力量堪称巨大。既对编程一无所知,着手教程,我的策略就是:一遍看不懂就看两遍,两遍不懂就三遍,想方设法弄懂,实在不懂就暂按下,继续往下看,复杂的知识往往会用到后面的内容来解释、支持前面的,概览之下可解难题。
如果某个难点概念,反复琢磨仍不懂,那大可推测:你遇到的难题,肯定别人也遇到的过,带着足够的疑惑感去找答案,Stack Overflow + Google 可解 90% 新手疑惑。
不过,更多的情况是,基础概念不牢固,才导致后续学习艰难。这时尽管从头开始重看,代码重敲,知识重学,重视最基础的概念,尝试自己梳理结构,边学边整理笔记,及时归纳好用的套路。
重学教程,就像重读一本好书,凡重读皆有新感,必得新知。你已掌握的知识就像一面放大镜,已知越多,放大镜倍数就越大,重读回看时,能关注到的就越多。拿我们都熟悉的古诗词文举例:
至若春和景明,波澜不惊,上下天光,一碧万顷;沙鸥翔集,锦鳞游泳,岸芷汀兰,郁郁青青。而或长烟一空,皓月千里,浮光跃金,静影沉璧。
现在的你来看这一篇,和当时初学此篇的你,感受想必大有不同。同样,代码例题、教程习题,尽管多写几遍,就像吉他曲子不会弹一遍就会,也不是举一下重,就健好身了。
耐住性子重复,笨办法总是容易出好效果。
3.
原则三:类比用得多,单车变摩托
一味机械重复当然不智,策略是必要的,而学习编程一类抽象知识,最强力的武器就是:类比。
在 Coursera 超火课程
Learning How to Learn
原书中,作者 Barbara Oakley 教授专门用了近两章,来说明类比对学习帮助巨大,并指明,学习抽象概念时,类比越形象就越管用。
作者给了一个很有意思的化学概念类比:
In chemistry, compare a cation (阳离子) with a cat that has paws and is therefore “pawsitive,” and an anion (负离子) with an onion that is negative because it makes you cry.
这里涉及英文构词法和谐音,简单说,cat 有爪子(paw),于是阳离子 cation 的属性是 pawsitive(有爪子的),谐音 positive;负离子 anion 同洋葱 onion 音近,而洋葱令人流泪,于是属性是 negative,形象有趣,一目了然。