今天一整天都在家学习,到了18点忍不住做了一次代码规范检查,惨不忍睹,虽然之前很多核心代码不是我写的,但是扫描出来问题也太多了,2000多个。我一直修复到现在才修复了700多个,写代码不规范的后果太严重了, 我发现有一个文件竟然有高达200个问题。
手指都敲累了,主要是修复一些注释不规范、魔法值的问题。
下午学习完k8s集群的安装之后,复习了一遍快捷键的使用,我之前已经不使用鼠标了,对于工具的熟练度和重要性我专门写了论证。以下是长篇内容,主要是针对编程人员来说的,人们常常说某某是大牛,在java还没火起来之前,C语言的程序员有两种:一种是使用鼠标的,一种是单纯使用键盘的。工作场所就会听到两种敲击的声音:键盘敲击的声音和鼠标点击的声音。我个人觉得大牛肯定是纯键盘的,而且是使用快捷键如神的。键盘的单纯敲击就像指尖的芭蕾和动听的音乐。那些思维没有卡顿的善用键盘的程序员才能写出诗意和行云流水的代码。我把使用鼠标开发的人的速度类比为自行车,把使用键盘并且用快捷键如神的人的速度类比为火箭。
快捷键增加了无数成就感和快乐,让你跟知识本源进一步连接了,你更开心的表达着自己的知识和力量。
从此你从很多简单的本源的语句中解脱出来,专注于更加深刻清晰的编程本质,专注于更实际的东西,而不是困在if else for try catch等地方,你无需为它们做更多的停留。
你有大量的时间专注于业务、核心逻辑和代码优化上面,代码的复制、移动、对比和无关的代码的生成都非常简单。那些简单的重复的代码就要想办法用快捷键的方式去解决,不要把大量时间浪费在琐碎的这些小代码上面,那样你的精力会被发散,你的效率会降低,你的思路会被打断……你一整天都浪费在了外部建筑结构上面,核心代码写得太少了。
把大脑的主要精力集中在解决重要问题上面。快捷键就是解决这些重复、常用、琐碎的问题,让大脑专注于核心业务开发,而不是困在繁琐,效率低下,惨不忍睹。
高效、简洁、优雅、卓越的代码,需要专注于核心的代码上面,而不是普通逻辑代码上面。当你从琐碎中抽身出来的时候才能感觉到自由奔放,代码的行云流水,写代码成为一种真正的创造的乐趣和酸爽的感觉,一行等于几行,或者几个字母,替代了过去几十个字母的敲写。
比如 完整的输出语句是 System.out.println("XXX"); 要敲击20几次键盘才能打出这行没有多大用处的代码,如果使用快捷键是sout 只需要属于4个字母就行了,速度快了4倍。
你在这10几秒的琐碎代码中估计核心的思路已经被打断了,这是糟糕的。
比如一个for循环,完整的语句可能是 for(int i=0;i<XXX.length;i++){}
上面也是20多次,太慢了,一分钟也没写出多少核心代码,都把时间浪费在这些重复的代码上面了。如果是快捷键只需要 fori就可以了。
思路和时间同样重要,最怕的就是你的思路被这些无关紧要的代码给卡顿住了,效率缓慢不说,没有什么效果。高效的本质的一个小时甚至可以写几百甚至一千行代码了,功能是功能,它不应该被琐碎的无用代码浪费住真正的时间,真正核心的代码没有多少。
我不禁在思考,在还没有使用快捷键的人生里,有多少浪费和不平之意啊,也许是那时候真的没有追求卓越吧,平庸的人使用工具肯定也是平庸的,因为追求卓越的人时刻都在追求改进和优化自己的效率和工作质量。不断要完善自己的能力。工欲善其事必先利其器。钝刀是很难砍柴的,磨刀不误砍柴工。
快捷键我理解为“代码加速器”,程序员的优化工具箱,也是真正高效编程的“神器”。而鼠标就是一个累赘,完全依赖键盘本身就是相当于效率提升了一倍,在借助于“快捷键”神器,我们的编程工作效率就真正进入了高速阶段,至少可以提升5倍左右,更可能提高10倍,我们少了无数敲重复字符代码和按回车、空格、删除、移位和使用鼠标大幅度移动的动作。这相当于从自行车时代变成了高铁时代甚至火箭时代,手指的灵活的舞动,完成了大量的工作,肩膀甚至一整天都不需要移动几次,变成了纯脑力的游戏和工作,效率提高到了5倍和10倍意味着什么呢?想想吧,这意味着只要我们一天一到两个小时高效的工作就能完成一天甚至两天的工作量了,这也许就是大神的由来吧。一天完成别人一周的工作任务,一周完成别人一个月的工作任务,这都是可能的。而且这是在不加班的情况下完成的。一天8个小时的产能已经相当于40到80个小时的产能了。在这种高度专注和集中和快速的开发之中,我觉得工作会是非常的享受的事情。程序员可以享受技术的乐趣和编程本身的乐趣,这是在脱离了枯燥重复之后产生的,我相信有挑战和逻辑的代码是不会乏味的。快捷键和工具给我们带来了快速反馈的快感,简单的手指的跳舞就能快速的完成所有事情,没有任何卡顿的感觉,还有比这个更快乐的吗?
如果你不会快捷键,你怎么能卓越呢?你还停留在原始社会,还停留在自行车时代,别人以火箭的速度完成了,别人有更多的时间学习、喝茶、更新自己,同时享受编程,而你只能默默的一个字符一个字符的敲着,半天写不出一段核心代码来。
如果你不会快捷键就是一个平庸的程序员,不可能成为高手大牛,你这样跟咸鱼有什么区别呢?
你真的愿意一辈子停留在自行车的速度上面吗?如果说有让你的效率提升十倍的方法,你也不愿意去背下它们吗?平庸的是方法本身,你要追求的就是高效的方法论。“快捷键”神器就是这样的,能让你提升十倍,进阶为为高手。天下武功唯快不破,不是吗?如果你的编程速度跟不上,你能力再强又有什么用呢?你根本驾驭不了,你没有办法利用好自己的能力。唯有去掉鼠标和使用快捷键才能在使用电脑和使用编程工具上面成为一个大神。知识技能会跟上的,因为你已经有了足够的累积和实践。鼠标是累赘,越用越废,多用手指,而不是手臂,手指比手臂和手腕灵活几十倍,这是手巧和高效的另一本质。
这样一弄,编程的乐趣就太大了,哪怕什么核心代码也没有写都够自己玩一阵了,这些快捷键每个都有神奇的功效,神奇本质就是好玩的惊艳的。
专注状态下使用快捷键开发的码农是可怕的,拥有可怕的战斗力和编码能力,普通功能根本不够它们开发,我们可以把功能当作需要消灭的敌人或者需要建的高楼,对于一个高效程序员来说,它们建房子的速度太快了,以至于工作本身不够用。如上面所说,一个小时或者两个小时已经是一整天的工作速度和质量了,一周已经是一个月的量了,但是工作又是有限的,它们能腾出无数时间来学习充实自己,除非是被难题或者技术点困住,不然加班是不存在的。而低效的程序员大量时间都浪费在了点击鼠标上面和一个个字母的敲写重复无用的代码上面。我突然间理解了过去看到的一句话:使用键盘敲代码的人比属于鼠标写代码的人高几个段位,工资也高很多倍。
记住,没有脱离鼠标的程序员算不上真正的高手。要摆脱鼠标的限制,要比普通程序员高效五到十倍的开发,这样,我们能享受到至高的快乐,享受到工作量比不上你消灭它们的速度,享受到高效编程的本质。你永远不会觉得时间不够用,排期紧之类的。你知道哪怕是3天的工作量对你来说也是6到8个小时就能做完的。哪怕一个月的工作量对你来说,也是一周能做完的。你会欣喜和快乐,你会永远觉得时间够用,而工作不够饱和,因为你的能力和效率太高了,它们评估工作是基于自行车时代的编程速度,而你是坐在火箭上面开发的。你是一个外挂,你自带神器,你还自己废弃了平庸的累赘工具——鼠标,完成了自己的进化,你同时觉知到了手指的奥秘。对你来说,高效状态下的两个小时足够了,足够应付所有问题,哪怕有一些意外,也不会超过一天的8个小时,不是吗?那已经相当于你处理一周的工作量的时间了,你自带神器,你太快了,别人还只盖了一层,你就已经盖了10层了,别人总是加班处理工作,总是卡顿和无法按时完成任务,但是你总是比它们快十倍。再次重申“天下武功惟快不破”,你已经成为别人眼中的大牛了。一旦你的技术和思路很厉害,再加上你的开发速度很快,那么你就是做得又高效又高质量的人,这就是大牛,你还有更多的时间学习,然后在技术上领先别人,它多么像富者越富啊!速度上面的优越感让你一开始就处于制高点上面。
平静专注的写代码的威力在于你好像看起来没有什么压力,你好像看起来没有费什么力气,外界也感知不到你的存在,甚至觉得你什么也没有做,本质上你已经比别人快5到10倍的完成任务了。你毫无压力的快速的在宁静的状态下完成了一个个功能,这也是工作的本质,你在静心的状态下而非压力的状态下才能更好的完成工作。别人之所以感知不到你在用力工作,是因为你的能量没有外放,你只有指尖和眼珠在高速的运作,你的身体看起来毫不费劲,你使用快捷键健步如飞,你没有感知到压力,也不知道压力的存在,进度永远是超前的,所以没有压力。你写代码两个小时之后,今天的工作做完了,可以看看博客学习新东西了,然后准备提交代码给别人测试,准备下班了。你没有任何的紧张和收缩,工作本身没有能力给你带来威胁感和压迫感,这就是看起来一切都毫不费力的,现实也确实如此,没有必要弄得自己精疲力竭。不静心的状态下,带着负面的情绪去做一件事是做不好的。你每天都很轻松,不管别人压力多么大,这不是项目属性赋予它的压力,而是他的能力和速度还无法驾驭这些工作,这是之前欠下的债,之前没有掌握好知识的债,它们只是在工作中偿还这些债务而已,等它们学会了,驾驭了也就从容了,现在表面上是工作给它们带来了压力,本质上是知识不足带来的压力,如果知道这些,学习补充才是王道,如果这次只是糊弄过去没有真正掌握那些知识,下次依然会卷土重来,被同样的知识限制,再一次承受巨大的压力,一切根源还是在于自己,自己的知识根基太薄弱了,以至于没有驾驭工作的能力。压力是需要学习和进化去突破和化解的。大多数人以为压力是因为工作本身的原因,为什么不想想自己怎么能够解决呢?如果把一切归咎于工作,那么意味着我们无法掌控,我们把一切都交给了命运,这就是大多数人面对工作时不断因为压力而换工作的原因,他内心认为是工作的原因,所以期待找一份完美的工作而不是努力让自己的知识和能力能胜任这份工作。后一种的提升才是把主动权交给了自己,需要什么就学习什么。人们的内心太强硬,思想信念太顽固,很难再被塑性,而大时代更新变化太快,我们又必须有与时俱进的能力,跟着进化,这是柔软的本质,也是水的特质,它能让自己适应任何器具的形状。上善若水说的只是心性吗?把你放到任何环境,你都能适应和延申自己,这就是可塑,把自己打造成适应某个时代某个环境的人,这本就是进化的思想。很多人非要强烈的打击才能打碎破旧的信念,而且有时候还是往负面的方向发展,大概很多人经过生活的毒打之后都会觉得要“狠”“拼命挣钱”,柔软的心开始穿上坚硬的壳……我想的是水并没有改变自己的本质。宇宙阴阳在于阳是奋斗和作为,而阴是内在的德行和运作环境,阴是水的特质,它是善和爱和觉知本身。心几乎每一瞬间都在塑造的状态,只不过每个人被影响的程度大小不一。
多年前看到关于谷歌公司的开发环境,当时不怎么理解:他们的环境是开放式创意性的娱乐性的,上班时间随意,下班时间随意,办公室里是天然养吧,充满了绿色植物,平均每天高效工作2到4小时就差不多了,楼下有私人电影院,找不到灵感可以先去放松一下,从二楼到一楼还可以坐旋转滑梯下来……它们的人文环境是自由、灵感、高效。就这样的公司产生的无数引领科技浪潮的产品。想象一下如果不是谷歌在2007年弄出来出安卓系统,就不会有现在移动互联网的繁荣昌盛,现在整个世界进入了移动互联网时代,它还终结了塞班手机的时代,智能手机也因此进入全民普及的时代,它也给移动支付、移动购物、美团、滴滴……打下了根基,没有这些,我们不得不停留在黑白手机的时代。时代的背后有弄潮儿,谷歌的某些创意也许就源于某个程序员的灵感。谷歌的技术创新领域也一直世界排名靠前,它们的大数据解决方案或者分布式方案很多……我们常常两国比对,比如该不该加班……是否中国人更有敬业精神,上面的问题是分领域的,对于创造性的行业工作时间多少不等同于价值。不看过程看结果,如果一个人两个小时把一件事做好,而另一个人加班甚至通宵也没有把事情做好,我们该怎么评断呢?甚至可能那个两个小时小时完成的员工的月薪是6000,而那个通宵都没有完成的员工的月薪是三万,这都是可能的。这造成了花费大量成本也没有得到预期的目标产品,这和花几万买一件假货是一样的。我们要思考付出成本是否跟价值匹配,我们还要界定能力的含义。所以不是所有加班都值得推崇和肯定的,有的加班是源于能力和效率低下而非工作本身,加班的明面原因是进度赶不上,赶不上又有无数原因,但总有一个最大原因。
很多人喜欢加班文化是为了让领导看到他们的努力而非出于真正需要,有的人为了达到加班的效果,故意让自己把事情留到下午才开始处理,有的人是真正的因为能力不够的原因,不得不为自己过去错过的知识买单,很多工作时间都被迫用来学习,不得不如此,最终真正工作的时间变少了。有一小部分人是工作狂,提前做下周下个月下一年的准备工作,就像布局。还有的人迷迷糊糊,不知道自己在做什么,一周的工作拖延到周四周五拼命赶,就像我们的寒假作业一样。
总之,能力和效率原因的加班就不要抱怨,这不是工作性质造成的,而是自己的原因造成的。