程序员修炼之-道与术

1,307 阅读5分钟

long long ago。当我还是一个初入江湖的新人的时候,就有前辈告诉我,江湖不好混,有多少英雄豪杰竞折腰。江湖中一直有个传说:江湖之人最多混到而立之年有余,大都最后退出了江湖,从事了其他行当,比如加入"镖局",或者黄袍加身。。。

当年的我,以为“竞折腰”的意思是,腰不好,结果几年后我真的"腰突"了,掩面。。。

当年的我,以为传说就是传说,有不一定是真的,而且我还年轻,怕什么。。

当年的我,当然也听说过一些前辈说:不要拘泥于一种编程语言,并且要学一些软知识。这些知识可以长期持久得用下去,保持江湖中一定的竞争力。

可是岁月如梭,转眼间,我也到了而立之年有余,这些年我自认为只要加入一个门派(教育)进行闯荡江湖,然后在门派中尽心尽力,等门派发扬光大,做大做强,最后去少林寺敲钟!! 到那个时候,我就归隐了,在江湖中留下一世英名。功成身退。

可是,事与愿违,当我在门派中打拼的时候,国家出政策了,说我们是“邪教”,是歪门邪道,助长了社会不正之风,还把 老百姓不远生娃的原因 归结到我们..... 直接用个"双减"大法 打压我们。打的我们翻不了身,武林之中,类似门派死的死,散的散....

不说了,说多了都是泪....

既然当下门派混不下去了,那么大不了就换个门派嘛!我尝试去找其他门派,尝试加入他们。共图发展,做大做强。可当我找到他们的时候,发现我这几年连的武功并不是他们主要考量的点,他们考虑的竟然是一些内功身法,比如像“算法"这种.... 而我这几年,在当下业务中,这方面做的极少,也没有刻意去训练这个内功。才发现自己在这方面欠缺的有点多。

这才发现,原来前辈口中的软实力就是内功,至此我开始总结江湖中的武功。

江湖中的武功,分为 《道》与《术》。

《术》 = 编程语言

是我们最直观可以看到的。类似于江湖中的武器和招式。在我们程序员的江湖,大概就是用不同的编程语言了。有人用剑(C)很厉害,有人用刀(java)很厉害,等等。不管用什么武器,目的都是杀敌。并无高低贵贱之分(php 是世界上最好的语言)。只有不同人不同喜好,不用环境适合用不同武器罢了。

但是术,最大问题是容易过时。

如果你潜心修炼术,那么最终你成功了,获得了剑神一样的成就。江湖中用剑的没有人能打过你。

但是随着时代发展,江湖中有了一种叫做“火枪”的武器,可在百米开外致人死地。

这个时候,你的剑是不是就没啥用了。。。。

记住,你所有用的术,只是在当下的时间和环境适用。并不代表修炼的好,就可以在未来一直用下去。

《道》 = 解决问题的方法 = 算法,设计模式,架构....

道就是内功心法。它是没办法直接看到的。在我们程序员的江湖就类似叫做“算法”,“设计模式”,“架构模式”这类了。

道是无形的,它不以具体形象存在于你的代码之中。但它又无时无刻不在你的代码之中。有时候你用到了,也未知。

道比术难学,不仅仅在它并不是可以直观看到的。而是它需要不断总结,不断思考,不断尝试,不断改进的。它是实践中的心得体会,并不能直接传授 。 大部分第三方框架中,蕴含了作者非常多的思想,如果你仔细看他们的源码,就会发现,你跟这些大侠最大的差距,并不在于术,而是道!

道没有最好,但凡有人说它的 算法”,“设计模式”,“架构模式”是最优解。那么未来大概率还是会出现更优秀的。道只有好坏,合适与不合适之分。

道不容易过时,相比较术,它可以"永存"。宽泛点来说,从古至今,各种解决问题的解法都是道。至今还有很多人在用。并且会一直用下去。

《道》与《术》的关系

他们是相辅相成的。

术是道的载体。道脱离不了术。你说人家不用兵器,直接徒手就可以,那么,手难道不算“术”吗?

术当然是越多越好,你多掌握一门术,就可以多条门路,但是人的精力是有限的,术与术之间还有不少差异,你每个术都想学,就意味着你每个术都学不好。精一门,或者两门就够了。

我自认为,道其实是高于术的。武侠小说中那些最高成就的大侠,往往是不用任何兵器的。他们可以拿任何东西做为兵器,哪怕是一草一木,甚至徒手。照样可以杀敌。(当然,空手接白刃这种事情,只有傻逼才会干)

道练好了,对术的掌握就是熟练度的问题了。也就是说,他们可以在最快的时间内,成为某个术的高手。

总之:

术可以保证你当下饿不死,有饭吃。

道可以保证你未来饿不死,不至于35岁加入"镖局",或者黄袍加身...

大部分程序员,包括我自己,在平时忽略了道的修养,而偏重于术,这个是不对的。

未来我会更加注意道的培养,让自己的江湖生涯走得更远一些吧。与君共勉,加油!

道理人人都懂,也有太多人明白得比我早很多。但是实践才是最关键的。毕竟修炼道,是一件痛苦的事情,烧脑。。。而人总是有惰性,也会沉溺于舒适圈不肯出来。

加油吧,少年!路漫漫其修远兮,吾将上下而求索