大概是两年前吧,我做了个决定,要去学习编程。我买了本PHP书,开始一边阅读一边做里面的练习题。我把主要精力都放到PHP上,不理会任何其它的语言,因为我有个习惯,一旦开始做一个事情,我们会集中所有的注意力,先把这个事情做完,然后才去做其它的事情。于是,我尝试这开发一个Web应用程序(一个绝妙的创意,一个能使我成为另外一个Facebook创始人那样的应用)。一点一点的,进度很慢,我的应用(这个即将让我成为百万富翁的应用)慢慢的成型。最终,它跑起来了。自然了,没有人来用它,做的太烂了,到处是bug。之后我又有了一个(绝妙的)创意。我想这次就不用不停的在书本里翻来翻去了,不用整夜整夜的在google上搜索拷贝代码,修改它们,让它们能在我的应用程序里运行了。我以为我坐下来就能写出我的PHP应用。但我终于明白,实际上我什么都没学会,尽管我读了很多关于PHP的资料,尽管我已经开发出了一个应用程序(很烂,但也是一个)。我认识到,整个的这段时间我所做的事只是学习了一点PHP语法,使用几段代码解决一个难题,而这些拼凑的代码最终让我的应用面目全非。
我十分的生气,停止了所有的开发。我把我的Web应用的创意完全丢到了脑后,开始四处浏览所有我觉得有趣的开发知识。我发现了Ruby On Rails,这个东西看起来很酷,但我不知道它为什么很酷,我对ruby毫不了解,但却花了不少时间学习Ruby On Rails,然后我学着开发Android应用,读跟它相关的资料,这把我引向了学习Java,但我没有停止学习Rails,我在iTunesU上报了一个Java的课程,之后在我工作的时候我又开始阅读PDF版的Python教材,因为Python里的一些东西引起了我的兴趣….(也许是它的这个名称)。噢!我还有一本C++书,我把它找了出来,在睡觉前我开始读一些C++的知识。因为我仍然不知道Ruby这种语言,所以我也开始学习Ruby。当我研究Java有些厌烦时,我还试了试Objective-C,而JavaScript看起来也不错,我也试图要掌握它。这些全是在同时进行的。
如果是之前有人问我,我肯定会说这是最糟糕的一种学习编程的方法。但事实证明,这是最有效的一种学习方法。这种学习方法的结果是,我终于不再关注PHP的语法,开始把不同语言间的相似之处关联起来。我现在是在真正的学习原理,而不是为了做什么而在google上搜索正确的语法。我开始领悟相似的东西在各种不同的语言、不同的平台上的不同之处。这些认识对我来说很重要。我的关注不再是PHP,我的关注现在是编程。
我希望这些经验对于那些跟我两年前一样处境的人有些帮助,那些跟我当年有相同想法的人应该通过不同的视角来看那些相同的东西,这样才能真正的领会它们!