代码者周刊(第 1 期):如何学习一门新的编程语言?在学习区刻意练习

想创办这样一个周刊的想法由来已久,只不过那时没有想到很多,只是隐约有这个想法。直到我知道阮一峰在做的事情:他在网络上创办了一个 【科技爱好者周刊】。我认为这是一件特别有意义的一件事情。同时,我也想到了自己的想法。于是,创办一个分享好文章的周刊,这样一个想法就开始实施了。因为我是(或者即将是)一名程序员,所以我会更多关注科技行业的好的文章。科学技术,尤其是计算机技术经过几十年的发展已经成为了庞然大物,我在科技的历史里学习,经常看见闪烁着前人智慧的优秀文章,但是往往因为时间或是精力的关系,没有仔细阅读体会。

所以,我创办了【代码者周刊】,它能帮助我更好地吸收优秀文章的精华(这是期待,没有验证),同时,基于互联网的分享精神,我把它开源分享给别人。今天是周刊的第一期。

这一期文章节选自阳志平个人网站:《如何学习一门新的编程语言?——在学习区刻意练习》,写于 2011.10.26。

我现在就是处于学习一门新的编程语言的阶段,因为我还没有掌握任何一种编程语言。阳志平教给我的就是如何语言的方法,我认为他的观点有一定的可取之处。

他认为学习新的编程语言的方法就是:在学习区刻意练习,每天 500 行。什么是学习区,就是那种,你刚刚够得着,但是还是需要付出一点努力的。

1. 如何寻找学习区

1.1 经典教程

教程一定要选择带课后习题的,放弃写得很好却没有练习题目的,那种书不是初次学习编程语言。

1.2 笨方法系列

Ruby 与 Python 双修的怪才 Zed Shaw,推出了笨方法学习编程系列教程。其中,有我想学习的 C, Python, JavaScript 教程,挺好。

网址:https://learncodethehardway.org

1.3 社区英雄设计的练习题目

在每个社区,都会有一些人,热心于将自己的知识体系制作成教程教给初学者。

1.4 人气较旺的程序员问答社区

个人推荐:https://stackoverflow.com/questions

可以去这里回答别人的问题。别急着看答案,自己尝试写下答案。然后再与最佳答案比较。

2. 在学习区刻意练习的辅助工具

初学编程,最应该记住的是在学习区刻意大量练习,千万少看书,要多练习。

刻意练习时,有以下重要的工具。

2.1 TextMate 的 Bundle

TextMate 是 OS X 下的著名的文本编辑器,与 BBedit 并称 OS X 上的 Emacs 和 Vim。尤其适合程序员使用,可定制许多贴心功能。

Bundles 是 TextMate 的一个亮点,刻意有效提高开发速度。1

2.2 cheatsheets

cheatsheets 类似于考试时的小抄,将某个需要学习的东西的精华整理在一页或几页纸上。

http://www.cheat-sheets.org ,找到里面的你自己所用到语言的小抄,有多个版本,找一个最适合自己的版本,然后以自己喜欢的方式存放。时常拿出来阅读。

2.3 FlashCard

FlashCard 是一种学习方法,先将题目呈现,然后心中默想答案,再翻看答案。

将与学习相关的 FlashCards 下载在手机或者打印出来,找出时间,默想。

网络上有大量关于 Flash Card 的社区,可以刻意去搜索自己所学习的语言的。

3. 如何提升行动力:人类行动心理学的有效 Hack

人为什么会拖延、人为什么行动力很差。近些年心理学已经取得了突破性研究成果。普通人思考目标的时候,使用的目标意图,是:

我要做什么

但是,有位天才心理学家 Peter Gollwitzer 发现目标意图这样的思考范式,反而很难达成目标,于是,他对自己的实验对象,使用了一种替代范式。强迫实验对象,使用一种称之为:执行意图的思考范式来思考。结果令人惊讶,人们更容易克服拖延症、达成目标。

什么是执行意图?就是使用 if…then… 的思考范式。比如, 不要再说,我要学 CSS。 而是说,如果我要学习 CSS,那么,今天晚上就学习基础语法。

当你关于行动与目标,长年累月这么思考,最终建立自动化机制,那么行动力慢慢就变强大了。如果…那么…成为生命中的一部分。我要…这种句式,就从自己的语言体系中死掉了。

4. 编程始终是个人行为

刚开始,不要:

  • 忙于去社交
  • 泡各种论坛、发无聊帖子
  • 下载各种盗版电子书(自己花钱买来的你才会格外心疼)
  • 争议哪种语言更好

每个人的世界都是如此不同,不争议,用它做点作品,或者是送给自己的女朋友,或者是赚点外快。慢慢地,就成长了:)


  1. https://zh.wikipedia.org/wiki/TextMate ↩︎

打开微信扫一扫或者输入“代码者”即可订阅博客
comments powered by Disqus