暴力破解怎样应用在成长中?

8 minute read

生活中我们有时会听到一些大牛说,他经过暴力破解解决了个人成长中的一些问题,比如学英语、学编程、考证书等等。事实上,我们并不完全知道他们说的“暴力破解”是什么意思,因而无法在听到他们说了之后去应用它。今天,就来揭开这层面纱。

什么是暴力破解?

暴力破解,并不是你所想象的,用很大的力气、用手去撕、用牙齿咬,最终打开锁。

暴力破解原来的英文名称是 Brute force attack,中文又翻译为穷举攻击。这其实是计算机中安全领域其中的密码分析里的一种方法。说的是将密码逐个尝试,直到找出真正的密码才结束。比如你有个小金库里面装了 100 万人民币,并挂上了一个四位数全部由阿拉伯数字组成的密码锁,但是因为时间过去很久,你忘记了密码。怎么办?你不想让人知道,不想损坏箱子,除开开锁匠和把金库砸开的方法,还有什么办法呢?

没错,就是一个一个密码地输入尝试。四位数,每个数字都是 0-9,因此总共也就 10000 种可能性,最多尝试 9999 次也就找到正确密码了。这个过程,便是我们现在常听说的暴力破解。而在计算机中,还有一些方法可以增加尝试的效率,比如字典攻击,就能缩小密码的组合范围。当然这个是后话了。今天我们来讲讲运用这个思路怎样来指导自己去做一些事、学会一些技能。

学编程中的暴力破解

就以学编程为例。0 基础的同学请看过来,你们学编程是怎么开始学的呢?读一本书?读官方文档?听网上老师视频讲课?自己感兴趣尝试写代码?还是因为工作需要参加线下培训班学习呢?

641 (1)

这些方法都有可能,但那一个才是让你真正学会编程的呢?你可能读的第一本关于编程的书是《黑客与画家》亦或者《浪潮之巅》,这些书激发了你对技术的好奇和学习热情。而你第一本接触的编程书可能是《C++ Primer Plus》亦或者《Java 编程思想》,拿到书的时候还很有热情地把介绍部分都读完,可刚开始读第一章,无聊、乏味、说的都是什么等等厌学的情绪向你涌来。算了,看来我是学不会编程了。

某天,当你听说某个程序员朋友的月薪时,不仅羡慕,还在内心呐喊到自己一定要学会,也要找份高薪工作。于是开始在网上找一些零零散散的视频课去学。跟着网课老师一起,一步一步地安装语言环境,安装编译器,最后在编辑器中写下你的第一段代码,然后运行编译器输出了 “Hello World”。你发现原来编程也没有那么难,自己还是能够学会的。于是带着这种热情继续学习了一段时间。

可你还是发现,如果脱离老师的代码,想要自己去写程序,还是很难的,还是很难找一份编程的工作,怎么办?不如报一个编程培训班吧!里面的内容相当丰富、技术都是自己没听说过的,好像都很高大上的样子。于是你花了一两万参加培训。可是呢,中途你还是觉得老师讲的太细了,很枯燥乏味,落下了一节课。在之后的课就一直处于,我上节课还没听完、没听懂,这节课先不听了吧,反正听不懂,于是就又放弃了一节课。

直到最后,老师开始上项目课了,你发现自己的基础不够扎实,项目无法上手,很多地方都不懂。怎么办?既然是培训机构,会宣传他们能够保就业,因此也希望学员都能找到工作帮他们提高声誉,他们怎么办?没学会编程,你想的是还想从头开始学习基础,培训机构想的是没事我们还会开第二期培训班,保证第二期能够让你学会。就这样,你又开始了二进宫。

终于某天,你发现,跟着老师一步一步地操作,学会了看文档,学会了通过搜索自己解决问题。你好像突然就会编程了。让你写个九九乘法表很轻松,让你写个斐波那契数列的递归函数你也能够写出来,你也知道在工程项目当中怎么样去使用框架更高效地完成一系列功能了。

你学会了吗?

以上,举了学编程的例子,虽然不是很恰当,不过将暴力破解应用在个人成长中的精髓点了出来:如果没学会就换一种方式继续学,直到学会

所以,如果你还在问 0 基础怎么学编程,看哪本书更好等问题。我建议你想怎么学就怎么学,直接上手去学,如果觉得不合适就换一种方式学,在亲自对比之中选择更适合于自己的方法,在反复学习的过程中逐步加深理解,最终你便学会了。

最后,引用 Scalers 的话结束今天的讨论:

暴力破解就是从来不怕走错路、走弯路,把弯路走直了,把错路走对了,那就是答案了。