由于种种原因,Jerry最近加入了SAP成都研究院的一个演讲俱乐部,这个俱乐部主要是提高大家的英语演讲能力。

说来Jerry也是大一下期和大二上期一次性高分通过四六级考试的,但是当毕业进入SAP成都研究院后,通过和同事比较才知道自己口语有多烂。在SAP成都研究院,我能听到同事们地道的伦敦腔,纽约腔,曼彻斯特腔,当然还有Jerry的成都腔。

本文是我参加最近一期演讲俱乐部的演讲稿。下面是正文。


目录

  • 搭环境

  • 找教程

  • 跟着视频学

  • Jerry对双截棍表演动作的理解

  • 程序猿用的开发工具和双截棍爱好者用的双截棍

  • 如何快速上手一门编程语言/双截棍

  • 双截棍对SAP开发有什么帮助?

Jerry为什么会接触到双截棍这项运动呢?在Jerry对游泳上瘾之前,我并没有什么爱好的运动。足球,篮球,羽毛球,网球。。。我统统不感兴趣。2012年我的孩子出生了,是个男孩。我想:我现在这么宅,以后没法给我儿子树立一个好的榜样,得练点什么。于是在2012年时,我选择了双截棍,其中原因也包括了我非常喜欢的歌手周杰伦,那一首火遍大江南北的《双截棍》。我在接触双截棍很久之后,通过网络上双截棍爱好者写的周杰伦《双截棍》MV里的动作分解,才知道周杰伦当时为了拍这首歌的MV,也曾请名师学过双截棍。

网络上对于双截棍最早源自中国还是外国一直争论不休,因为这个器械的历史实在是太悠久了,以致无法考证。对于一个对双截棍一窍不通的程序猿来说,从哪里开始自学呢?作为一个时刻都得学习新知识的SAP从业人员来说,我觉得这难不倒我。

搭环境

自学双截棍其实和程序猿自学一门新的编程语言差不多,首先是搭环境。我从淘宝上买了一根不锈钢制成的双截棍,我还记得价格,30多块钱。

找教程

环境搭好后,然后是网上找教程。我当时到百度贴吧的双截棍贴吧里一看,发现里面很热闹,从业余界的顶尖高手到菜鸟都有。很多朋友都上传了自己的练习视频到贴吧里,其中不乏一些女子爱好者。我想:既然他们能学会,我为什么不能?于是,我兴致勃勃地投入了自学中。

我阅读了百度贴吧精华区的新手指南贴,知道了国内双截棍界有一位很厉害的高手——剑舞狂沙,他出了很多面向新手的双截棍教学视频。

下图是百度百科里对剑舞狂沙的介绍。

下面是剑舞狂沙2012年珠海市棍道交流会表演的视频,只有1分多钟。

https://v.youku.com/v_show/id_XMzg2NDQ2MjQ0.html?spm=a2h0k.11417342.soresults.dtitle

和游泳视频一样,Jerry曾经在网络上观看了大量的双截棍教学视频,绝大多数都是业余爱好者录的,视频里的动作确实非常炫目,然而缺少一些力量。打开上面我提到的剑舞狂沙的表演视频,您会发现视频里的动作确实完美阐述了百度百科这句对他的评价:

"在轻盈灵动基础上明显增加了力量和刚硬的风格。 刚柔达到了新统一,这在中国甚至世界双节棍界都是一个了不起的成就。"

视频里第45秒开始的螺旋花转棍算是轻盈灵动的代表动作,而第51秒迅速衔接成了劈棍。

这种短时间内化刚为柔的急剧转折,另一位高手张无忌在把乾坤大挪移练到level 7后才能办到,有书为证:

灭绝师太好容易反宾为主,长剑颤动,直刺他后心。张无忌听到背后风声,

只得回刀挥出,当的一响,手中宝刀又断去了半截。灭绝师太的长剑跟着刺到,张

无忌反手运劲,掷出半截宝刀,这一下使上了九成力。灭绝师太登时气息一窒,不

敢举剑撩削,伏地闪避。半截宝刀从她头顶掠过,劲风只刮得她满脸生疼。张无忌

眼见有机可乘,不及放下周芷若,随即抢身而进,右手前探,挥掌拍出。灭绝师太

右膝跪地,举剑削他手腕,张无忌变拍为拿,反手勾处,已将倚天剑轻轻巧巧的夺

了过来。

这般于一刹那间化刚为柔的急剧转折,已属乾坤大挪移心法的第七层神功,灭

绝师太武功虽高,但于对方刚猛掌力袭体之际,再也难以拆解他转折轻柔的擒拿手

法。

Jerry后来螺旋花转棍练熟以后,也想模仿剑舞狂沙这种转棍->劈棍的转换,但马上就发现完全控制不住棍的运行轨迹——从初始状态开始劈棍和从转棍状态开始劈棍发力的方式完全不同。

跟着视频学

视频找好后,终于可以开始照着视频编写第一行代码,哦不,进行第一次有棍练习了。

我非常尊敬剑舞狂沙的一点是,尽管他在双截棍上的造诣已经是国内顶尖的了,然而他的入门教学视频,却能够放下大师的身段,从最最基本的手法开始教。

有多基本?Jerry打个比方,有个前端开发的教学视频,视频里教你如何打开IE下载Chrome,如何安装Chrome,如何在电脑上新建一个txt文件,重命名成html,如何在html里编写代码,如何用Chrome打开这个html文件查看效果。剑舞狂沙的教学视频就是这种风格,造福了众多像我这样的双截棍门外汉。

他的教学视频完全是免费的,包含了文字讲解和动作示范。

文字讲解:

动作示范有正常速度和放慢30%的动作示范,然而Jerry一开始学的时候,放慢30%在我眼中仍然快了,我是用播放器放慢50%来学习的。

Jerry对双截棍表演动作的理解

双截棍的实战和表演性质的动作练法完全不同,本文只讨论后者。

Jerry自己对双截棍表演动作的理解:任何外行的朋友们看起来很酷炫的动作,最终都可以分解成舞花和转棍两种基本动作。如果说程序=算法+数据结构,那么Jerry认为,面向新手的双截棍表演动作=舞花+转棍

剑舞狂沙的教学视频里,把通过铁链连接的两根棍分别标记成A和B棍。作为一个程序猿,我喜欢把单手握住的棍称为支撑棍, 用程序猿的术语就是local stick,由铁链链接的另一根棍称为游离棍:remote stick

  • 舞花:单手始终握住支撑棍,手腕发力,这股力由铁链传递到游离棍,产生各种圆周运动轨迹。

  • 转棍:单手给支撑棍一个初速度,利用惯性,支撑棍和游离棍以手为圆心,通过连接的铁链绕手旋转一周。

下面是剑舞狂沙写的周杰伦《双截棍》MV里动作解析,可以看到周杰伦的动作主要也是以舞花为主。

①“岩烧店的烟味弥漫”(斗室中Jay在空中挥舞二节棍作右手前舞花) 

②“从小就耳濡目染,什么刀枪跟棍棒,我都耍得有模有样”(搏斗中,Jay一记右扫棍击中对手,然后棍舞至身前,一个右手侧舞花) 

③“飞檐走壁莫奇怪,去去就来”(Jay在斗室中前舞花) 

④“干什么,干什么,我打开任督二脉”(Jay左手托棍于右腋下,右手握棍于左肩前,向右扫击接侧舞花) 

⑤“东亚病夫的招牌,已被我一脚踢开”(Jay在斗室中跳下,右手前舞花) 

⑥“如果我有轻功”(Jay双手持棍在胸前转来转去做假动作) 

⑦“快使用双截棍”(Jay在黑色背景下作前舞花) 

⑧“什么刀枪跟棍棒”(Jay在黑色背景下作右手舞花) 

⑨“学少林跟武当”(Jay在斗室中右手前舞花) 

(附:Jay的右手舞花全解—— 

ⅰ、棍在体前8字横舞一周 

ⅱ、转腕,棍在右侧转一周 

ⅲ、棍摆至左侧转二周 

ⅳ、棍摆至右侧,向上向前向下,腋下收棍 ) 

舞花和转棍两个动作练熟后,就可以按照视频里前人总结出来的各种套路,或者自己发明一些新套路,把各种角度进行的舞花和转棍衔接起来。

作为一个程序猿,日常工作少不了和设计模式打交道。如果说设计模式是通过前人的经验千锤百炼总结下来,每种设计模式描述了某一特定场景下设计的最佳实践,那么双截棍表演动作的套路,Jerry把它们理解成和编程中的设计模式起到同样的作用:比如小螺旋花转棍,可以说每个双截棍表演视频里都会出现,就像单例和工厂模式,稍稍复杂点的项目里都会用到。双截棍的套路和设计模式当然也有区别,比如即使再复杂的项目,也很难出现用到全部23种设计模式的情况,然而双截棍的很多表演视频,出于展示目的,很多朋友都倾向于把尽可能多的套路放进去。

另一个区别就是,和编程设计模式那些干巴巴的名称不同,双截棍的招式套路极富美感:

流星赶月:

狂龙乱舞:

雪花盖顶:

白蛇吐信:

双截棍爱好者们光听这些招式的名称就能想象出棍的运行轨迹和速度感,仿佛置身于金庸笔下的江湖中。

程序猿用的开发工具和双截棍爱好者用的双截棍

我知道有些朋友能在Mac下不用IDE进行Java开发,我很佩服。可我做不到,我在SAP成都研究院的编程工作还是在各种各样的IDE里完成的,详情见我这篇文章:Jerry和您聊聊Chrome开发者工具

而双截棍爱好者们,也有各种类型的双截棍可供选择。

淘宝上除了不锈钢制成的双截棍之外,还有海绵棍和木棍。有的店家打的广告是这些海绵棍(就是上图最左边那根)专门用于双截棍初学者的练习。Jerry也买过一根,然而很快发现对我这个初学者没什么用,因为海绵棍几乎没有重量,初学者用它来做舞花和转棍练习根本无法控制棍的运行轨迹。

那么木棍和不锈钢棍比起来有何区别?Jerry的答案,对新手来说没啥区别。就像我觉得Eclipse和IntelliJ IDEA区别不大一样。编程大师们很少会拘泥于某种IDE,而剑舞狂沙,用两本《读者》卷起来作为棍体,用一张报纸卷起来作为绳索连接两根棍,用这种自制棍也能舞出双截棍的精气神出来。

如何快速上手一门编程语言/双截棍

关于如何快速上手一门编程语言或者框架,Jerry的经验是,除了多练以外,还要做好随时受打击的心理准备,即按照教程上介绍的步骤,一步步做下来,最后得不到期望的结果。此时要有足够的耐心去分析问题。

同样,双截棍贴吧里有新人发了一些请教贴 : "如何快速学会双截棍”?一些老司机的回答:多练,多挨打。Jerry的学习经验就是,正如希望不呛水就能学会游泳是一件不现实的事情一样,双截棍的初学者也免不了被舞花或转棍时不听指挥的双截棍所误伤。我的一个窍门是,在练习一些很危险的动作,比如双截棍距离头部很近的转棍动作时,我会拿毛巾提前把头部包起来,带上口罩以免把门牙打落,最后再戴上帽子。

下面是我的双截棍练习专用帽。

双截棍对SAP开发有什么帮助?

付出这些代价,我们能从练习双截棍中得到什么好处呢?SAP开发人员的职业病,像鼠标手、键盘手、颈椎病、腰椎病、肩周炎这些,都可以通过双截棍来防治,当然游泳也行。

英国大脑基金会总裁,英国记忆力之父---东尼博赞说:每个人都是天才,都具有巨大的潜能等待自己去开发和利用,特别是右脑的潜能90%都没有被利用,就需要锻炼我们的左手和左脚,从而开发我们的右脑,激发我们的潜能

我相信每位SAP开发人员身上都有巨大的潜能尚未开发出来,而坚持用左手练习双截棍,也是一个很好的激发潜能的方式。

在我第一次尝试用左手做出各种右手能轻松做出的舞花和转棍动作时,我发现非常困难。大家如果想体验,可以尝试在日常工作中用左手使用鼠标,如果不是天生的左撇子,一定都会觉得很别扭。但是左手使棍也是能通过努力练习而熟练的。经过一段时间的练习,我已经能做到,右手能够做出的动作,左手一样能熟练做出来。

对于一个SAP开发人员来说,左右手均能熟练使棍还有一个象征意义。SAP公司本身也在进行云转型,SAP越来越多的云产品的标准开发采取的是和传统的Netweaver上On-Premise开发完全不同的技术和架构。对于一个有追求有抱负的SAP开发人员来说,除了追求右手熟练地掌握传统地基于Netweaver平台的On-Premise开发技术外,也要提高自己左手在SAP云平台上进行Cloud开发的能力。

作为一个SAP开发人员,不断学习新的开发知识和技术是必须的,自学过程中总是挫折感和成就感并存。当学习一个新的知识点,在实践中发现不能按照自己期望的情形工作时,是就此放弃,还是和问题死磕到底?同样,在新手学习双截棍时,挫折感是不可避免的,尤其是看到视频里的双截棍,在一些高手使来仿佛成为他们身体的一部分那样熟练,而到了自己手里,只会在自己身上增加伤痕,这真是情何以堪。如何把这种挫折感转换为坚持学习的动力,是每个SAP开发人员和双截棍爱好者需要终生修炼的能力。

Jerry今天的演讲就到这里。大家如果听了之后对双截棍产生了兴趣,可以试着按照剑舞狂沙的教学视频,去开始您的双截棍学习之路。感谢阅读。

更多阅读

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

一个SAP开发人员的双截棍之路的更多相关文章

  1. 一个SAP开发人员的2018年终总结

    我是SAP成都研究院的Jerry Wang,我喂自己袋盐. 时间过得真快,2017年发生的事情还历历在目,一转眼,2018年又马上要结束了. Jerry惊恐地发现,随着年龄的增长,时光流逝的速度仿佛有 ...

  2. 一个SAP开发人员的2017总结

    今年的生活如此丰富多彩,不写一点什么怎么对得起这过去的一年? 就当记流水账,若干年之后回来看一定很有意思. 1月 有幸成为SAP Community上2位来自China的SAP mentor之一: 3 ...

  3. 一个SAP开发人员的养蚕流水帐

    Jerry打算以此文来给汪子熙全家进行了一个多月的养蚕经历画上一个圆满的句号. 南方长大的80后,对蚕应该不会太陌生.大家还记得你们小时候学过的课文<蚕姑娘>么?课文开头是这样的: 春天天 ...

  4. 作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的

    前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的”每个程序员必知之WEB开发”. 原文: http://programme ...

  5. 怎样才能提交一个让开发人员拍手叫好的bug单

    怎样才能提交一个让开发人员拍手叫好的bug单 软件测试人员写得最多的文档就是测试用例和BUG,现在测试用例和BUG都没有标准的模板,每个公司使用的缺陷管理工具都有可能不一样,如果你换了一家公司就有可能 ...

  6. [译]作为一个web开发人员,哪些技术细节是在发布站点前你需要考虑到的

    前日在cnblogs上看到一遍文章<每个程序员都必读的12篇文章>,其中大多数是E文的. 先译其中一篇web相关的”每个程序员必知之WEB开发”. 原文: http://programme ...

  7. 仅以一个前端开发人员的角度看微信小程序

    看了几天的小程序(当然也包括了上手书写),才有了这篇博文,非技术贴,只是发表下个人观点,仅以个人技术能力来看小程序. 首先说下优点: 调试工具:官方的工具还是做了很多工作,包括监听文件变动自动刷新,编 ...

  8. 一个工作13年的SAP开发人员的回忆:电子科技大学2000级新生入学指南

    让我们跟着Jerry的文章,一起回到本世纪初那个单纯美好的年代. 2000年9月,Jerry告别了自己的高中时代,进入到自己心目中的电子游戏大学,开始了四年的本科生活.每个新生,都拿到了这样一本薄薄的 ...

  9. 从一个非开发人员转行silverlight满一年的工作总结(第一次发帖)

    自2013年3月进入公司到现在已整整一年.这一年,让我从一个大学毕业就去参军并且专业还不对口的大学生步入了软件开发这个高门槛行业.说实话,我真的很庆幸,庆幸遇到了两位赏识自己的领导从很多专业对口.能力 ...

随机推荐

  1. Windows 上 GitHub Desktop 的操作

    目 录 第1章 上传开源代码至GitHub    1 1.1 git Windows 客户端    1 1.2 注册GitHub账户    2 1.3 登录    2 1.4 创建本地代码仓库     ...

  2. maven(二)创建一个maven的web项目中解决Cannot change version of project facet Dynamic web module to 2.5

    我们用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servlet还是2.3的,而一 ...

  3. 【Codeforces 762A】 k-th divisor

    [题目链接] 点击打开链接 [算法] 我们知道,一个数的因子是成对出现的,一半小于等于sqrt(N),一半大于sqrt(N),因此,我们可以从 2..sqrt(N)枚举因子 [代码] #include ...

  4. Python Web开发最难懂的WSGI协议,到底包含哪些内容?

    原文出处: PythonScientists 我想大部分Python开发者最先接触到的方向是WEB方向(因为总是有开发者希望马上给自己做个博客出来,例如我),既然是WEB,免不了接触到一些WEB框架, ...

  5. JAVA Synchronized (二)

    一,介绍 本文介绍JAVA多线程中的synchronized关键字作为对象锁的一些知识点. 所谓对象锁,就是就是synchronized 给某个对象 加锁.关于 对象锁 可参考:这篇文章 二,分析 s ...

  6. 使用FPDF输出中文

    ① 下载FPDF相关资料=>https://github.com/DCgithub21/cd_FPDF ② 查看目录文件  注:ttf2pt1.zip为字体转换程序 ③ 运行example.ph ...

  7. 2.28 MapReduce在实际应用中常见的优化

    一.优化的点 Reduce Task Number Map Task输出压缩 Shuffle Phase 参数 map.reduce分配的虚拟CPU 二.Reduce Task Number Redu ...

  8. easyui 动态添加标签页,总结

    步骤 1:创建 Tabs <div style="margin-bottom:10px"> <a href="#" class="e ...

  9. 如何用GO实现一个tail -f功能以及相应的思维发散

    此文已由作者杨望暑授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 背景 在服务端查看log会经常使用到tail -f命令实时跟踪文件变化. 那么问题来了, 如果自己写一个同样 ...

  10. HDOJ5020【几何】

    题意: 给你n个点,问有几对三个点在一条直线上 思路: 目前为止很少写的几何题- 一开始两层for没有判断重复. 然后看了一些题解说排序一下,然后枚举每个点,求一个同一斜率的个数k,ans+=(k-1 ...