编程的技与术,是两个概念。
技者,艺也,古往今来有一门技艺者众多,大多都靠此过活,因此掌握一门或多门技艺,其基本出发点大都是有口饭吃。
术者,策也,如果说技有高低之分,那么术则有三六九等,比如最上等的是帝王之术,最低等的是算计之术,这类话题超过了本文的议程,略过不提。
编程的技与术,按通常的说法,也就是编程技法和编程思想。技法,多种多样,技法的产生,大都是为了解决某一时期普遍存在的特定难题而产生的,而就看刘翔的世界纪录屡屡被一些并不知名的青年们一次有一次像玻璃杯一样被打碎的频率来看,编程技法的盛衰期都是越来越短的。人都是怀旧的,什么东西都是老的好,顺手最好,这是思想上的惰性,却也是新技法诞生的动力。这就产生了软件里常说的迭代,技法不断地迭代,可以将衰退期延后,如果一个技法足够好,那么就会有足够的能量推动其被越来越多的人所接受,参照传奇的莫菲定律,这种技法会声望日盛。在上面的一句话里,简单的技与术都体现无余,技和术本身就是相辅相成的,好的技法需要策略去推广,就像好酒也得靠口碑来传承一样。
相信大家每当接触一门新的语言,所做的事情必定会各不相同,简单可以分为几类,一类是从基础搞起,一类是现学现卖,一类是直接借鉴,还有其他,这三类在本质上没区别,只是术的不同而已,所以这里可以扯出一个话题,那就是关于术的技法,编程里关于术的技法,也有一个专有名词,架构,有前辈将实战中得来的技法总结成“二十三式”、“三十六式”,也有前辈把这种技法硬性地划分成业务和技术两种,这类分门别类的派别之分本文不参与评说,只是为了阐述编程里术的技法,这些总结而成的招式通常也是有着固定的面向领域,迄今为止尚不存在一种放诸四海而皆准的万能招式,编程者也更需要见招拆招。
随着研习技法时间的增长和项目技法经验的增多,就会逐步感觉到招式的含义,但技法是内功,有招式没内功,那就得靠速度来取胜,独孤九剑的木剑时期也是靠速度。再随后进阶到单靠速度不可以取胜的时候,那就需要术的帮助了,也就是重剑时期。独孤求败尚需增强自身内力,何况你我这些大众编程者呢。那可不可以靠对招式的死记硬背来增强自身功力呢?答案莫衷一是,这样做的话,唬人的效果势必出来了,至于能不能增强自身还得靠亲身体验,我没这种体感,无发言权。
当一门技法研习到一定程度,自我感觉可以已臻化境的时候,大概也就离自创招式不远了。头一次写这种博客,给本博定个纲,以后的文章大都会与技与术有关。