大明战神戚继光带给程序员的启示

戚继光(1528年11月12日-1588年1月5日),是明朝的抗倭名将,杰出的军事家、书法家、诗人、民族英雄。

戚继光在东南沿海抗击倭寇十余年,扫平了多年为虐沿海的倭患,确保了沿海人民的生命财产安全;后又在北方抗击蒙古部族内犯十余年,保卫了北部疆域的安全,促进了蒙汉民族的和平发展,写下了十八卷本《纪效新书》和十四卷本《练兵实纪》等著名兵书,还有《止止堂集》及在各个不同历史时期呈报朝廷的奏疏和修议。同时,戚继光又是一位杰出的兵器专家和军事工程家,他改造、发明了各种火攻武器;他建造的大小战船、战车,使明军水路装备优于敌人;他富有创造性的在长城上修建空心敌台,进可攻退可守,是极具特色的军事工程。(来自百度百科)
大明战神戚继光带给程序员的启示
戚继光作为大明战神,戎马一生,在战场上取得了至高无上的成就,几乎没有败绩,经常能够歼灭敌军数千,而己方仅仅损失几十兵力。比如:

台州花街之战: 斩首308颗,生擒2名倭首,其余淹死和未割首的数目不详,己方牺牲陈文清等3人。

白水洋战斗: 我敌对比:1500对2000余,全歼2000多名倭寇,斩首344颗,生擒5名倭首,己方牺牲陈四等3人。

横屿岛渡海之战: 消灭倭寇1000多名,斩首348颗,俘虏29名.牺牲陈文彪等13人。

牛田之战: 击溃数上万倭寇(包括假倭和真倭),斩首688颗,己方无一人牺牲。

林墩之战: 烧死和淹死倭寇3000名左右,斩首960颗,俘虏26人。己方阵亡90人。

仙游之战: 击溃10000余名倭寇,杀死倭寇1000余,斩首498颗,生擒1名,己方牺牲童子明等24人。

如此杰出卓越的军事家、常胜将军,他在战场上、日常工作中、复杂的人际关系里面肯定是达到了游刃有余、纵横捭阖的程度,那么,这些成功的经验能带给几百年后的程序员们以怎样的启示呢?虽然战场和职场有分别,但有一些共通的地方肯定值得我们去效仿和学习。

1. 志存高远,淡泊明志

戚继光18岁的时候写过一首诗,里面有一句表明了自己崇高的人生理想,那就是:封侯非我意,但愿海波平。当时明王朝的国防危机主要表现在两个方面:一个是“南倭”,一个是“北虏”。南倭就是南方的倭寇之乱。自明成祖朱棣派郑和下西洋以来,大量的海陆往来带来了大量的海上贸易,但也带来了觊觎东方财富的日本武士和日本浪人,这些武士和浪人在日本动荡的战国时代一般都是战败方的作战人员,他们在国内没有立足之地,就跨洋过海流窜到中国来。开始的时候,倭寇对东南沿海的侵略还没有形成规模。后来,因为嘉靖初年明王朝在西草湾大败葡萄牙的远东舰队后执行严格的海禁政策,反而激发了倭寇之乱。“北虏”的问题也很严重,嘉靖年间,明王朝面临空前的边疆危机。北方的蒙古各部落统一后,势力强大,再加上明王朝的内政日趋腐败,导致北部边境蓟辽地区滋扰不断。要不是于谦临危受命,任兵部尚书,用其卓越的军事才能打赢了这场北京保卫战,否则后果不堪设想。国家面临着这样空前的危机,戚继光早早就立下了保家卫国的人生理想。

如果戚继光没有这样的雄心壮志,一心只想要封侯,追求功名利禄,是很难取得如此丰功伟绩的。古人有云:“取乎其上,得乎其中;取乎其中,得乎其下。”也是类似的道理。如果你的目标是5年后成为架构师,那么很可能只获得高级软件工程师的头衔,如果你的目标是5年后成为CTO,那么你至少能成为一位技术总监。

最后朋友圈比较火的一篇文章,提到了NLP理解层次的概念,显然,戚继光的认知层次已经到了最高级,他有一种强烈的使命感和责任感,但愿海波平,并终生为此努力和奋斗。
大明战神戚继光带给程序员的启示
处于顶级层次的人才,典型的思考模式是人活着就是为了改变世界。越往下,人才的层次也就越低,特别是处于“环境”层级的人,发生问题时,他们会首先怪罪于周遭的环境,而不是从自己身上找原因。

对于程序员来说,你究竟是为了一份薪水编程,还是为了很好地服务社会;是为了应付领导的工作安排,还是想要达成自己的理想目标;是为了自己的一亩三分地,还是为了修身齐家治国平天下。短期内,这两种格局可能不会有太大差别,但一段时间过后,差距就会越来越大。所以戚继光带给我们的第一个启示就是一定要志存高远,目标远大;有鸿鹄之志,不甘平庸。

2. 重视训训练,理论与实践相结合

戚继光是练兵大师,他招兵严格,刻苦训练,赏罚分明,是一个特别重视军事技能训练的将领,《纪效新书》里说:“平时各兵须学趋跑,一气跑一里,不气喘才好。”这是更倾向于短跑了,但一口气跑一里地,还不能急喘气,而且每一个士兵都要做到。在这个标准下,士兵的训练强度可想而知。

除了基本的体能训练之外,戚继光尤其重视士兵的武器技能训练。他自己就是个武术大行家,十八般兵器,样样精通,所以对士兵的要求也特别严格。比如说,他特别注重让士兵练投枪,他在《纪效新书》里称之为标枪练法。戚继光选用的标枪比宋代的标枪要短,差不多六七十厘米长。按戚继光的要求,在三十步开外,挂三个铜钱,然后一人连续掷三把标枪,枪尖要求必须掷进三个铜钱的钱眼里,否则就算考试不过关。
大明战神戚继光带给程序员的启示
而计算机也是一门实践性很强的学科,特别是对于计算机应用编程来讲,实际的编写和操练至关重要,如果仅仅停留在概念和原理上而不实践,那无异于缘木求鱼,水中捞月。比如,《java编程思想》你都看了吗,书后的习题有没有上机操作?23种设计模式,在实际的编程中你用到了几种?高可用、高并发的技术栈你掌握了哪些?毕竟,就像英语谚语说的:practice makes perfect.

3. 工欲善其事,必先利其器

戚继光发明和改良了很多武器,这些武器作为戚家军的常规武器,经过训练和作战,士兵熟悉了以后,每一次作战都能以死伤不过百人的代价重创数以千计的倭寇,创造了冷兵器时代战场上的神话。

戚氏军刀: 戚继光率领其部队戚家军,在东南沿海抵御倭寇的扰袭数十年,最终成功击退了倭寇。其实他初到这里备战时,所率领的部队是打不过倭寇的,倭寇借着自己身体强壮,而且熟练使用倭刀和重箭,在作战中经常被倭寇将军队所用的刀砍断。戚继光在作战中分析敌我差距,细心研究倭刀,于是他对中国军刀进行改良,充分吸取倭刀的精髓,大刀阔斧的对军刀进行改造,这次改良军刀,使部队在以后作战中倭寇的倭刀占据不了优势。

狼筅(音xiǎn): 狼筅原是明朝矿工起义军发明,后为戚继光抵抗倭寇时所操练“鸳鸯阵”的武器配置之一。以前明兵在与倭寇交战的时候,将士们都非常害怕倭寇的倭刀,因而惊慌失措。戚继光在长一丈六尺,粗两尺的多节毛竹顶端转配上铁质的枪头,两边的支刺用火烤制成有直有勾的,相互交错,在擦摸上毒药。狼筅上的顶端非常茂盛,还可以掩护士兵,拼杀时既能自保,又具有非常大的杀伤力,重创倭寇的同时也给戚家军带来了战争上的优势。

火炮: 在明朝时期,朝廷非常重视火炮的使用,当时的火炮主要有两种:一种是鸟铳,另一种是弗朗机。在与倭寇交战时,倭寇的机动性非常强,弗朗机虽然杀伤力大,但是不便于携带,非常笨重;鸟铳虽然轻便但是杀伤力不够,所以都不能将倭寇置于死地。于是,戚继光结合弗朗机和鸟铳的各自有点,发明了“虎蹲炮”,不但杀伤力大,还便于携带,并大量制造装配军队。
大明战神戚继光带给程序员的启示
同样,在程序员的日常工作中,天天都会接触各种各样的工具,以java工程师为例,会用到idea或者eclipse这样的IDE工具,navicat或者MySQL Workbench这样的数据库管理工具,visio或者Star UML这样的建模工具,包括使用的框架,像spring boot、mybatis等等也算是一种工具,那么,在使用这些工具的时候,我们就需要掌握这些工具的用法和优缺点,并且根据实际工作情况进而对这些工具进行改良,甚至自行开发创造新的工具。比如现有的分布式配置中心不满足你的需求,是不是可以考虑进行改进?单点登录的功能你觉得不好用、不够酷,自己是不是创造一个新的轮子?

磨刀不误砍柴功,必须把作战工具打造精良,才能攻无不克,战无不胜。这是戚将军给我们的另一个启示。

4. 虚怀若谷,采众家之长

唐顺之是嘉靖年间的文武全才,“倚马成文,上马杀贼”。有一次,唐顺之到浙江监督军务,戚继光听说了就去拜访。他之所以去结交唐顺之这样一个文人,不仅因为唐顺之是一个非常有名的爱国志士,曾经在抗倭斗争中立过奇功,而且还听说他有一项深藏不露的绝技,那就是他的枪法。戚继光提出切磋枪法,经过一番比试,竟然输给了文人唐顺之,原来,唐顺之在一个偶然的机会,跟宋代杨家枪的传人杨松学习杨家枪法,短短几天时问,竟将杨家枪法的精髓完全掌握,由此练就了一身的好枪法。戚继光虚心请教,唐顺之也倾囊相授,最后创出了闻名于世的戚家枪法。

俞大猷是明代一位卓有建树的武术家和杰出的军事家,他剑法高超,钩刀枪钯洋样精通,尤以棍法称著于世,并对棍法理论作过精辟的研究。《剑经》是俞大猷写成的有关棍法理论和技艺的专著,是武术遗产宝库中著名经典著作之一。戚继光的棍法就曾受过大猷的指点和传授。

谭纶也是明朝的抗倭名将,他是进士出身,却武艺高强,精通剑法,戚继光向他学习了剑法。

正是向各名家虚心学习,才造就了戚继光高超的武艺,在战场上叱咤风云,以一敌百,战无不胜。
大明战神戚继光带给程序员的启示
回到现实的编程世界中,也莫不如此,连Java语言本身,在发展演进过程中,也是逐步吸收了其他语言和编程思想的精华,从而变得越来越强大,长期占据最受欢迎编程语言排行榜的第一名。比如,Java中约定大于配置,就来源于Ruby的ROR框架;Java8才支持的Lambda表达式,Python等语言早就已经支持。

作为程序员,更应该放低姿态,向各路大神学习,不断获取养分充实自己。三人行,必有我师,在现实世界中,在虚拟网络世界中,都有值得我们学习和效仿的优秀人才和完善资料。

5. 注重沟通,把握微妙的人际关系

戚继光能取得如此巨大的成就,除了打铁还需自身硬的实力外,领导的支持也是必不可少的,其中比较重要的就是明朝首辅张居正。戚继光跟张居正在政治上是最为紧密的同盟,甚至在当时,戚继光也被看作万历首辅张居正最为亲密的心腹。张居正倚重戚继光,为他的万历新政打造了一个稳定的变革环境,他会为为戚继光清理各方面的障碍。《明史》说张居正“有欲为难继光者,辄徙之去”(《明史.戚继光传》)。就是谁跟戚继光不和就把谁调走,后来索性把蓟州官员大换血,派戚继光的好友谭纶和自己的得意门生梁梦龙去和戚继光搭班子。这下,两个人对戚继光那是大开绿灯,有求必应。所以戚继光意气风发,誓死报国,把北部边防守得固若金汤。

空有一腔热血和抱负还不够,必须得有相应的支持才能一展才能。程序员的日常工作虽然主要是面对机器,但需要与人进行沟通交流的场景也不少,包括产品经理、测试同事、上级领导等,有时候还会与其他产品线,比如销售和售前甚至是客户打交道。如果我们的工作得不到周边的支持,特别是领导的肯定,那工作也是很难开展下去的。

6. 总结

作为明朝的战神,戚继光身上还有很多其它方面值得我们学习和效仿,包括他有自己的理论体系,非常注重知识的梳理与传承,写了很多的书,象《纪效新书》、《练兵纪实》等。虽然领域不尽相同,一个是真正的战场,一个是面对机器的编程领域,同时时代也相隔了几百年,但这些都不影响我们向战神学习,这些启示能够跨越时代,跨越空间局限,几个世纪之后依然让人击节称叹。

主要参考资料:

[1] 郦波.大明战神:郦波评说戚继光.北京:中国工人出版社,2016.

文中部分图片和文字来自网络,如有侵权请联系删除。

欢迎关注微信公众号【互联网全栈架构】,获取更多信息。
大明战神戚继光带给程序员的启示

;