注:本文将不断更新或添加链接

有没有捷径?

一听到“捷径”这个词,很多人就会感觉是个负面的意思,人不应该走捷径,而应该踏实努力、步步为营。所以,这里我们要先讨论一下这个问题:有没有捷径?

既然题目取了“编程初学者的捷径”,当然就是说有捷径的,为什么说有?是因为事物发展的基本规律如此,一代人比一代人更进一步,就好像这个时代的人不用特别有学问也会知道很多上个时代的人曾经不知道的事物,这一代人不用再经历“大哥大”的模拟式蜂窝电话,就可以直接用上智能手机了,熟练使用最先进的智能手机,也不用知道手机内部的结构和软件逻辑,这其实就是一种捷径,前人所走过的弯路,前人所趟过的深坑都可以跳过了。人类的认知本来也就是在前人的巨人肩膀上不断叠加起来的,编程的学习路径为什么不可以走走捷径(新的快捷路径)呢?

从哪里开始?

有人问我:“你那么多的新技术是从哪里学的呢?”,我笑笑回答说:“互联网啊!?各个技术的官网就摆在那儿啊?”,当然,自己一个人啃英文官网对大多数人来说还是很费劲的。

其实,我们学任何东西应该从哪里开始呢?现在各种学习资料、网络信息极大地丰富,大部分的知识根本不愁找不到合适的资料来源,那么为什么有些人进步神速,而有些人却停步不前呢?我个人分析主要是:动力源泉、方法技巧和实践应用这几个方面的差别造成的。

动力源泉

“兴趣是最好的老师”这句话实实在在地道出了学习这件事的根本的根本。除了兴趣之外还有可能有其他一些动力来源,比如:升职压力、经济利益等,但要说持久的动力源泉,应该还是个人的兴趣爱好了。

首先是坚定的信念

想学编程的初学者,最重要的是坚定的信念,不怕学得慢,不怕学不会,就怕中途放弃,不学了谁也没办法。

为什么选择学编程?世界上那么多的学问,每个人的精力和时间都是有限的,那么选择编程到底对不对?好不好?这个信念可以不可持久坚持下去呢?

编程这门学问,实际上是人类智慧发展到今天最璀璨的明珠之一,其重要性不用多说,这个时代的很多伟大工程都离不开这门学问,随着互联网、移动互联网与各个行业的不断深入结合,编程已经是现代乃至未来时代所不可获缺的一个部分。

人类自有语言和文字以后,各方面科技发展突飞猛进,得益于人类使用语言互相交流沟通,语言打通了人与人之间的思维联系,从而能够集合很多人的共同智慧来达成伟大的成就。而新时代的来临,人类开始利用机器、电脑来达成新的成就,而人与机器、电脑沟通的语言就是编程语言,这也将是一个全新的精彩的世界,等待人类不断探索和发现。

人类发明的编程语言,比自然形成的语言更为严谨,更为科学,组合了人类逻辑、数学、机器等多方面的学识,结合机器和电脑的功能,可以解决很多的问题,完成很多的工作等。

暂且不说目前互联网以及移动互联网的火热,也不看软件开发人才的抢手和热门,只因编程本身就是一个很有意思、很有趣的学问,同时也可以和其他行业的学问有机地结合起来,不影响自己对其他方面知识的探索,反而会是很有效的工具,帮助你轻松跨界高速发展!

其次是正确的路径

正确的路径就是说方法,其实也就是咱们说的“捷径”,少走弯路,少填坑,人的精力有限,时间宝贵,注意力珍惜,必须选择正确的方法和路径。

边用边学就是最佳路径;

iPad拿在一个小孩子手中,你仔细观察,几乎没有人教他们,他们就会很快熟悉这里面的界面、功能,很快就能用iPad做很多事情,拍照片、画画涂鸦、玩游戏、看视频等。

大多数时候,我们总是先会用某件东西,之后再了解其中的原理,进而深入研究它的内部机制等,这是符合事物的熟悉规律的,所以这里所说的“捷径”自然不会搞反人类的学院式教学,先讲计算机原理、数据结构什么的了,第一步自然是不管三七二十一,先用起来再说。

第一步的第一步,当然是要有一台电脑,这里说的自然不是一般的电脑,为了学编程,为了走捷径地学编程,自然要选择一台学编程最捷径的电脑,那就是苹果笔记本,钱少的可以买Macbook Air,钱多的自然可以Macbook Pro,选择尺寸自然也是13寸或15寸,根据自己的经济水平和个人喜好了,追求性能自然15寸,还想兼顾便携性那就13寸,如果不考虑钱的问题,个人推荐15寸MBP(Macbook Pro),那屏幕看起来才舒服,个头稍大点,重量稍重点都不是事儿,年轻人背个电脑包到处跑跑是没啥问题的。除了笔记本,当然iMac或Mac mini也都是可以选择的,总之是要用苹果系统来学编程就最快捷了。

接下来,苹果电脑的一般性使用,网上大把的教程和技巧,大家可以各自找来看看,悟性好的话基本都不是什么问题。

进入正题,开始用程序,如何开始呢?REPL应该是最好的开始,编程世界的即时响应,所见即所得嘛!

brew install boot-clj

用上面这个命令安装 boot 这个命令工具。然后有了boot就可以运行下面这个命令:

boot repl

得到一个REPL的环境,你就可以开始练习简单的编程了:

(* 8 9)

这个就可以得到 72,你看你现在拥有了一个计算器了!

再试试更复杂的四则运算吧:

(* (+ 6 2) (- 9 2) (- 7 3))

这个就是:(* 8 7 4),得到224。

接下来可以来这里注册个账号然后做些题,边做题练习,边在REPL里面测试。

英语看不懂,怎么办?安装个有道词典,边查边学,硬着头皮查着看,慢慢就明白了,最好再用标准的伦敦腔读出来英语学得更快。

我自己做的答案在这里供参考。

基本功也很重要;

基本功就象武侠小说里比喻的“内功心法”一般,是决定你能达到多高,以及走到多远的根基,类似“悟性”的东西,说某个人对编程这门学问比较有悟性,也可能就是在这些基本功方面有所特长,自然会在很多地方显现出他与别人的区别。

开悟、开窍也就有点这里所说的“捷径”的意思,所以,如果一个人的基本功比较扎实,那自然走上“捷径”的过程就比较容易,相反,就感觉非常困难了。

第一、英语

第二、数学

道理基本是说:你数学初中水平也可以学,但想成为编程高手,就不容易了。

就象是你内功只有二级水平(初中水平),学些普通武功是没问题的,但要学高级武功,就要内功到八、九级或十级(大学以上、专家水平)才厉害~

内功就象是数学水平,而武功就象是编程水平。

第三、观察力

第四、思考力(分析力)

系统的图画不断显现;

面临无数的选择,学会选择最佳方案、实践、工具等很重要。

成为一个高手

刻意练习

套路

永远做有挑战的事

脑中存储最新的技术架构

提高自己的认知水平

最后就是实践,学以致用了!

只学不用岂不是浪费?我们也不能仅仅是为学而学,何况上一节也提到边学边用才是最佳路径。

找准自己的发展方向;

不断深入,不断登高;

完成伟大的成就吧!

战略的定义:

  • 事后总结出来的好运气
  • 有选择的放弃