我见过太多人学Python,第一件事就是买本《算法导论》,然后啃了三天就放弃了。这不是你的错,是方法不对。学编程就像学游泳,你不能先看一本《流体力学》再下水。
直接上算法的后果很严重。你会觉得Python很难,你会觉得自己很笨,你会怀疑自己是不是不适合编程。其实你可能只是被那些复杂的数学符号和伪代码吓到了。我教过不少学生,有人被红黑树整得哭过,有人被动态规划折磨得想退学。
有个叫Python的闯关游戏网站,叫'Python Challenge'。这个网站不需要你懂什么时间复杂度,不需要你理解什么递归。它就是给你一个谜题,让你用Python写代码去解。比如第一关,图片上有个字母表,规律是要把每个字母往后移两位。你查一下字符串的处理方法,写几行代码就过了。
这种成就感很重要。你每过一关,都会觉得'这玩意我能行'。等你好不容易闯到第十关,你发现自己已经会用循环、会用列表、会用字典了。这时候你再回头去看算法,会发现那些概念不是天书,是你早就用过的东西。
我自己带过一个学生,他前三个月就是玩这个闯关网站。每天玩半小时,坚持了一个月,把前二十关全打通了。然后他问我:'老师,二分查找是不是就是猜数字那个游戏?'我告诉他没错,他一下就理解了。后来他学算法特别快,因为他的脑子已经接受了编程思维。
很多人问我为什么Python这么火。我告诉你,不是因为它强大,是因为它简单。而简单的起点,就应该配上简单的入门方式。你不需要一开始就学会所有的东西,你需要的是先尝尝甜头。
如果你已经买了《算法导论》落灰了,别自责。把书先放一边,打开电脑,搜一下Python Challenge,从第一关开始玩。你玩到卡住了,上网搜答案,看看别人怎么写的。这样学到的知识,比纯看书要牢固十倍。
等你把所有关卡都通关了,Python的基本语法你已经玩熟了。这时候翻开算法书,你会发现那些复杂的术语,其实都是你玩过的把戏。你带着经验去看书,书就不再是毒药了。
学编程就像玩游戏升级,先在新手村打怪,攒够经验再去挑战大BOSS。别一上来就打终极BOSS,那样只会让你删游戏。Python是门好语言,别因为错误的学习方法让它背了锅。现在就去找那个闯关网站,从第一关开始吧。