不知道从什么时候开始起,应该是很久很久之前了,我喜欢上鼓捣电脑上的新鲜玩意。 起初从折腾 windows 上各种有趣的玩意,到大学正式踏入技术的大门之后,开始鼓捣 IT 上的各种玩意。 从 linux 到各种 IT 工具,各种编程语言和库,乐此不疲。
突然有一天,因为各种原因,我一段日子里停止了碰技术。之前我想当然的认为,折腾可能上浪费时间又没多少收益的事情, 但是这段时间的感受突然使我意识到,“折腾”两字,其含义远远比我想象的多丰富的多。
1. 好奇心和成就感
人从很小的时候起就喜欢鼓捣各种小玩意。 小时候我经常拆各种收音机,闹钟,之后在组装回去。当然,基本没有一次不把东西给搞坏的。 等到我掌握了一点儿电路知识后,就从废弃电器里收集灯泡和各种元器件,买电池来鼓捣。 印象比较深的有次我听说把线绕起来通电就能当吸铁石用,我赶紧找机会鼓捣了下,结果一通电立刻感到捏住的电线发烫。
似乎人类有着一种探究事物背后运行规律的天性,尤其是在孩童时期。 那时,对一切未知事物的好奇心,那种孜孜不倦的精神,还有那种搞完之后的巨大成就感, 则是小时候鼓捣各种玩意的动力来源。
现在,如果一个大学时期的年轻人热衷于“折腾”各种玩意, 那我想,他一定会从中得到点什么心理上的满足,其中最主要的,就是满足了他的好奇心,并且收获了巨大的成就感。
2. 自己的小世界
高中的时候,一开始我喜欢鼓捣电脑上的软件。 为什么呢?起初我只是对这种现代科技产物表示惊叹,当得知计算机底层仅仅处理 01 比特的时候我有一种数学美的感觉,仿佛窥探到了真理的一角。 很多软件很神奇,比如能把两张图片上的人物合并到一起,比如能够把文字隐藏到一张图片里去,等等。 之后我也只是想掌握各种神奇软件的使用, 就像一个魔法师一样。
可是到后来,我感觉在虚拟世界中找到什么。 我很渴望把系统装到我的 U 盘里去,因为这个 U 盘是真正属于我的,一个像世界一样的操作系统被塞到了 U 盘里, 我可以自己亲自设计这个世界,设计它的背景图片,里面物品的摆放设计,可以随意添置各种我喜欢的家具。 携带着这个 U 盘,我就将自己的世界带在了身边,我就获得了真正的安全感。 虽然我现在能轻松的找一些 live 系统并且把它安装到 U 盘里去,可是非常可惜是,当时我尝试了各种教程都是以失败告终。
幸运的是,后来我还是不死心,找了另一种方法。有一天我发现有种东西叫绿色软件,我收藏了很多,摆放在了我的 U 盘里。 我还知道有种非常厉害的软件,能够彻底加密我的 U 盘,这样,除了我自己,没有人能够窥探到我的世界。 这是一个真正属于我的世界。
上了大学后,我才得知有款游戏叫做 Minecraft。或许,那时的我更需要这款游戏吧。
对于我而言,这可能是比较特殊的动力之一,它推动着我鼓捣各种系统安装和运维上的事情。
3. 理性,时间和收益
上大学以来,表面上,“折腾”给我带来了最大的收获,是学会了 linux,学会了 vim 和 spacemacs,了解了各种好玩的工具和库而已。
可是仔细一想,如果以后不从事 linux 运维相关的事情,折腾 linux 似乎没有任何收益。 想要好好的编程,使用 windows 可以让你安安心心的编程。 可能你花了一上午的时间解决了某个包的安装问题,但是用 windows 这些时间你都能够写好多好多代码出来了。 “折腾”浪费的时间太多,但是得到的收益有限。
于是你选择了不折腾,虽然简单粗暴,但是似乎是个能解决问题的方案。
逐渐的你发现,渐渐的,你变得更功利,好像一切都是为了学习而学习。 你不再抱着一腔热情去思考些深入的东西,只是浅尝则止,把目的达到就行。 学习,忽然间变得索然无味,没有什么意思了。
当发现事实和我预想的不一样之后,我发现,因为弄 A 导致了缺点 B,但是想解决问题 B,杜绝 A 不一定是好的方案。 因为,真正导致 B 的是 A 和环境中、性格中、习惯中等等各种隐藏因素综合导致的,真正的幕后黑手可能就藏在里面。 上面那种粗暴的思路虽然能帮助你节约一些时间,但是却带来更多的损失。它没有找到真正的原因。
4. 值得折腾的点
假设我在折腾 vim。现在遇到一个问题:我喜欢让 vim 高亮自定义的 C 语言关键字,但是它做不到。 于是就尝试去找配置,甚至自己深入到了 vim 的高亮配置里面寻找线索。
你肯定会发现,vim 的高亮配置是用正则表达式定义高亮规则。但是你会注意到这条吗?或许你会一头扎进去就是想把这个功能做到,结果浪费了时间。
如果在发现这点就给它一些注意的话,很轻松的就会发现,正则表达式只是在做简单的匹配,无法理解 C 语言语义。因此,前面这个功能很难很难做到。 明智一点的话,应该尽快放弃这个折腾的点。
vim 同时也是被吹成了神的编辑器。但是只要学习了 vim 配置一段时间,你很容易发现 vimscript 有很多很多的不足这一事实。 但是如果一味的相信网上的吹捧而不自己梳理下事实进行思考,我们就不会注意到由这些不足带来的折腾的点。 进而一旦我们对这些折腾的点进行折腾,就浪费了很多时间。
5. 全神贯注,动脑思考
上面我提出了解决浪费时间的一种方案:不去折腾那些无意义的点。 虽然说起来很轻松一句话几个字,但是关键在于:你是如何判断一个点有无意义的?
在开始折腾的时候,我们对这个领域一无所知。但是渐渐的,随着初期的折腾,你会得到很多宝贵的亲身体验的 经验 。 无论何时,都要全神贯注的动脑子思考,通过这些 经验 进一步加深脑子里对这个东西的理解。 你知道这个东西的设计是怎么样的,它的设计目标是什么,有哪些缺陷等等。随之根据自己的理解你能得出一些有价值的结论。 这些结论,就能够初步指导的判断一个点有无折腾的意义。就像我之前举的例子一样。
这样,我们的效率就提高了。之后会得到更多的经验,从而更好的加深理解,更好的把握住关键,良性的迭代下去。
上面的步骤,无时无刻都不在 动脑思考 。 反之,如果你发现 折腾 的时候大脑昏昏沉沉,不知道手头的这个玩意到底是什么, 你只是凭感觉做各种尝试。(就像程序出了 bug,你没理解试图真正理解这个函数,只是随便逮到一个语句随便改改参数什么的碰碰运气), 那你最好停下来,好好想一想。
想一想,你会发现你目前阻碍你折腾的可能因素:
- 没精神,不愿动脑。(解决这个就是另外一个和技术无关的大话题了。)
- 非常非常非常想做到某个功能。(看看之前那个例子,最好要理智一点,放下执念吧。)
- 这个问题我知道没法靠自己解决。(去社区逛逛问问,去上 google,google,google 找找中文和 英文 资料)
6. 能力提升
从另一角度想一想,上面说的其实是一种在不熟悉一件事物的情况下,找出其关键点的过程。 这个过程,好好锻炼,很显然,对提升个人解决问题的能力很有帮助,这是一个潜在的收益。
同时,“折腾”其实是一种自学,特别是 IT 这个高速发展的领域里,自学能力非常重要。 指望学校教的那些 vc6,那些 8086 汇编,C++和 java,是远远不够的。
再者,对不熟悉事物的折腾,即使失败了,至少也能提高你对它的理解,无形中拓宽了个人的知识面。
总而言之,“折腾”对人的帮助是非常大的,不过前面也说了,你要时时刻刻明确自己在干什么,对手头的这个对象有着相对应的关注和理解。 否则,会浪费了大量时间却得不到什么收益。
7. 玩具的成长
其实仔细想一想,在技术领域的折腾,其实和小时候鼓捣各种新奇玩意,倒是非常非常的相似。
联想倒技术之外的很多人,有的人对手动挡车情有独钟,每次开车都是一种把玩的享受; 有的人是耳机发烧友,喜爱收藏研究各种耳机; 有的人酷爱骑行,对自行车非常非常在意,一点点儿的提升都能令他开心不已; 有的人……
男人一直都是小孩子,只是玩具长大了。