金庸先生写过一个著名的剑客,叫独孤求败,他一生用过五种不同的剑。一开始,独孤求败用的是一把无名利剑,这把剑有多锋利呢?“凌厉刚猛,无坚不摧,以之与群雄争锋”。

后来为了追求快,又用软剑,再后来“越来越觉以前所学剑术变化太繁,花巧太多”,改用一把重剑,悟出“以拙胜巧,以重压轻”的道理。他用重剑的时候,金庸先生写道:“重剑无锋,大巧不工,横行天下。”

但是独孤求败真正成为一代宗师,却是在他不再用重剑之后。不用利剑,不用重剑,那用什么呢?他开始用一把木剑。“不滞于物,草木竹石均可为剑”,说的是不再为剑所拘束,飞花摘叶都可以是武器。到最后,他用的是无剑。

说这个故事是想表明——

编程是一个工具,像剑客手中的剑一样,划出你心中所想的剑法,是去实现所想的工具。剑客的水平取决于他的剑术,境界,但往往不取决于他用什么样的剑。编程的艺术绝不在于哪一门语言,而在于你用编程创造了什么

偶然一次,我见有小朋友在社区发帖,求问一个士兵排练问题的解:

百科社区帖内容

这样就很好,讨论技术,讨论算法,互相交流,这样下去各位小朋友都会得到进步。

练习打篮球的时候,教练总是要从指尖拍球,横向跨步练起,而大多数人想的是怎么可以花式上篮。练习足球的时候,大家会惊叹倒挂金钩,但传、带、护、射才是最常见的训练。

基本功很苦,见效也很慢,但是有用。花拳绣腿容易学,多花点心思,好像能做出一些所谓“真正的”程序,但是不中用。

再来看独孤求败为什么在用完锋利的无名剑和快速的软剑之后,改用一把平平无奇的重剑:“越来越觉以前所学剑术变化太繁,花巧太多”,改用一把重剑,悟出“以拙胜巧,以重压轻”的道理。

而想要编出一个好的作品,除了编程本身,你更需要对这个世界充满了解,你要有人文素养来支撑你的想象,要有艺术才能来完成你的设计,要有足够的数学知识来完善算法,要选出让人感动的音乐来丰富作品。

所有你们正在学校里学习的,都是基本功。由此想到一位教授的分享,他经常用编程工具来写诗,

各位小朋友可能都想不到:编程工具竟然还能写诗!

金庸先生写独孤求败,用了“不滞于物”这样四个字,什么是“不滞于物”呢,意思就是不被物体所限制。李白的诗,写在纸上,写在墙上,念诵出来,都是名句。希望大家不要拘泥于编程语言和编程的形式,多多去想编程的本质

编程的本质,是创作。希望大家能认识到,编程的艺术绝不在于哪一门语言,而在于你用编程创造了什么。