你缺的不是天赋,而是亲和度

2020-07-25 17:48:46 浏览数 (1)

对我而言,写技术博客,做公众号,拉技术群,最大的收获,是有机会遇到各个阶段形形色色的前端从业者。

应届生、转行的、培训机构的、刚进入新团队的、纠结离职的、失业的、小团队的、大公司的等等。

幸得大家信任,一些朋友愿意把内心最担忧的顾虑分享给我,让我能够知道大家在各个阶段的所感所想。

我们在遇到一些变故与挫折时,想到最多的就是:是不是适合在前端这条路上一直走下去?是不是被天赋所限,未来成就有限?

很少有人,认为自己是天赋选手,即使许多朋友,在这个行业已经立足

换成以前,在跟大家聊天赋时,我还是不会强调天赋到底有多重要,但我会试图去了解你是否足够努力。

有一句话在知乎很出名:以大多数人的努力程度之低,根本轮不到拼天赋

我曾有一段时间非常相信这句话传达的含义。可是后来经历多一些之后,越来越不愿意去强调努力二字。

一个是因为如果给自己打上努力的标签,总感觉苦哈哈的在博取同情。二是因为,大多数人并非不愿意努力。特别是向我求助的那些小伙伴,如何只是努力就能解决问题,那我们还有什么疑问呢?

以前我没有看透这一点,总会劝人努力,尽管凭借强大的鸡汤能力,让别人相信了自己确实还不够努力,但是真实的情况,并非如此。

下决心要努力学习,很简单,但是,怎么学习?这就很难!

我们真正的问题是,当我们心态调整好之后,什么样的实践方式,能够支撑我们这样的心态,持续保持下去?

这才是问题的根本所在。

所以后来我写文章,最主要想要传递的东西,就不再是知识点,而是学习方法。只不过,只有少部分在群里跟大家经常沟通的人能够感受到。更多的朋友只会觉得,我的文章,好像更容易读懂一点,仅此而已。

如果能进一步思考,为什么我的文章会更易懂一点,你会有意外的收获。

关于天赋的问题,我觉得没必要过多的纠结,因为这个词,很宽泛。有很多天赋能力都能够帮助我们学习得更好。更强的记忆能力、更强的专注力、更强的学习总结能力等等。

如果你完全没有这些天赋,那么很抱歉,你学任何东西,结果都会一样。

而这些东西,其实每个人都是具备的,可学习培养的。例如,只要每天睡得好吃得香,记忆能力一定更强。所以天赋这个东西,所有人都是不缺的。

这篇文章,我更想跟大家分享的是,亲和度,这个词。

1

前端圈有一个很常见,但是很不正常的现象:

许多工作好几年的人,不敢说自己是一名合格的前端工程师,也不知道自己如何进阶。虽然能够顺利的完成工作任务,但是内心跟前端工程师这个标签之间,总有一种很诡异的隔离感。

对,就是一种诡异的隔离感!

如果哪一天,离了这个项目,离了这堆代码,coding能力会急剧下降。

例如轮播图人人都会用,因为网上有大量的相关组件。如果有一天这些组件全部消失了,还能懂得如何使用轮播图的,恐怕要锐减一半。

为什么会这样?

许多人在总结原因的时候,往往会归结于,自己不懂原理。

这是正确的表象!!

可更深层的现象是,当大多数人,在想到自己要必须去懂原理才能更进一步时,心生畏惧和自我怀疑。

这个原理太复杂!我真的能搞懂原理吗?

极端的甚至会觉得,这个精力投入与时间花费,毫无价值。

于是,轮播图用了5年,仍然不懂实现原理。

你看,这很少有人能意识到,却普遍存在的深层次原因,才是问题的根本所在。

正如标题所言,我们缺乏的,其实是亲和度,而非天赋。

2

亲和度这个词,最早给我留下深刻印象的,是一部网络玄幻小说。这部小说里有一个职业:魔法师,小说设定魔法师的天赋与对天地元素的亲和度息息相关。你对水元素的亲和度更高,那么你就更容易成为一名水系魔法师。

其实前端,或者说其他任何方向的学习,都跟亲和度息息相关。

一个很简单的例子大家就能明白我说的:许多后端也号称自己会写前端。但是!但是!一个普遍的现象是,他们所谓的会前端,大多数情况下,是借助一些工具,例如最早的 easyUI,jQuery,现在的angular,React等等实现一些后台管理功能。一旦涉及到样式,布局,响应式,交互,等等一些更重视C端体验的需求时,他们歇菜的概率极大。

甚至第一反应就是心生抵触!太麻烦,太难!这样样式你们前端能不能帮忙调一下?

这真的是因为,css很难掌握吗?

当然不是。css 要成为资深的专业比较难,但是应付一些日常需求很简单。不然为什么所有人都会觉得前端更好入门呢?

许多转行到前端的同学,对于算法,对于设计模式,会有一种神奇的疏离感。

因为这种疏离感,我们在学习这些知识的时候,常常会产生一些自我欺骗性的想法:

算法这么难,我能掌握好吗?

这真的是前端需要掌握的东西吗?好像平时也没怎么用过,不用学也没关系吧!

于是,刚工作时不懂设计模式,工作5年仍然不懂设计模式。

但我们自己也承认,掌握了设计模式自己会更牛逼,不过这种欺骗性想法就是一直会存在,就是会一直阻碍我们更进一步。

其实根本的原因,就是我们缺乏亲和度。

3

那亲和度到底是什么?一个简单的栗子。

React hooks 出来之前,我们公司的项目,全部用 class 语法来实现 React 组件,大概长这个样子

class组件

然后我们公司的Java程序员,看到组件长这样,咦!跟我们的代码长得差不多。

你们前端掌握起来也不难嘛。

自信心爆棚。倍儿有感觉

确实长得差不多

还真别说,class 语法,他们上手还真的挺快,应付一些简单的后台管理功能鼓捣鼓捣也能勉强弄出来。

我一想,这不行啊。这不是给了他们后端BB我们前端的机会么。于是,hooks出来之后,公司所有前端项目必须全部重构。即使付出惨重的代价。

后来我们的组件长这样

hooks 语法组件

函数组件?这啥玩意儿啊?

切断了他们的亲和度,前端从此变得高深莫测。

让他们学懂很简单,让他们学不懂,也不难!

所以亲和度,其实就是感觉!没有亲和度,就是没找到感觉。

一个值得高兴的事情是,亲和度,并非天生具备的,而是后天培养出来的。

4

那么,如何培养技术学习的亲和度?

如果你有一个好的老师,或者好 Leader,你不需要担心这个问题,因为他肯定第一件要做的事情,就是帮助你找到学习的感觉。而其他的情况呢?

肯定有许多同学,在这方面有了许多成功实践,欢迎大家在评论里,跟所有朋友分享自己的经验。

我以 canvas 学习来简单分享一下。

每当我们在群里聊到 canvas 时,许多朋友第一反应就是觉得 canvas 高大上,不是自己能够轻易掌握的知识点。

我还有印象的是,前不久有朋友在群里问一个曲线效果如何实现,我说你去找找贝塞尔曲线的相关知识,然后用 canvas 画出来就好啦。

简单聊了几句,他觉得我回答得好敷衍!

说了等于没说!

而我觉得,我的解答已经非常到位了。他有这样的感觉,就在于自己没有系统的学习过 canvas,甚至没有动手尝试过。大概也是发自内心的觉得 canvas 是需要经过很大的精力才能掌握的知识点。所以他更热衷于去寻找一个一步到位的组件。

可是关于贝塞尔曲线,在 canvas 中,是一个非常基础的点,网上随便搜索一篇文章,只需要花10分钟就能够学习到。

贝塞尔曲线

代码也不算复杂

代码语言:javascript复制
function draw(){
    var canvas = document.getElementById('tutorial');
    if (!canvas.getContext) return;
    var ctx = canvas.getContext("2d");
    ctx.beginPath();
    ctx.moveTo(40, 200); //起始点
    var cp1x = 20, cp1y = 100;  //控制点1
    var cp2x = 100, cp2y = 120;  //控制点2
    var x = 200, y = 200; // 结束点
    //绘制二次贝塞尔曲线
    ctx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
    ctx.stroke();
 
    ctx.beginPath();
    ctx.rect(40, 200, 10, 10);
    ctx.rect(cp1x, cp1y, 10, 10);
    ctx.rect(cp2x, cp2y, 10, 10);
    ctx.rect(x, y, 10, 10);
    ctx.fill();
 
}
draw();

核心的绘制曲线的代码就只有一句。

我想,阅读到这里的朋友,之后去学习 canvas 一定不会有多难了。

所以你看,当有人引导,告诉你这个东西很简单,或者用简单的方式让你理解,亲和度自然就有了,而你动手尝试过后,发现确实并不难,那你的自信心自然而然就建立了。

未来,你就不会再去顾虑,自己在前端学习上,是否存在天赋欠缺的问题!

0 人点赞