前端的10000个小时
- FrontEnd 扯淡
✨✨✨You can Edit this Article on Github site我又开始扯淡了
本篇文章出自原文,深有感触,有删改。
10000 小时定律
著名的 10000 小时定律,我想大家都不陌生,『要成为某个领域的专家,需要 10000 小时』,这个定律来源于《异类》的作者,格拉德威尔。
作为一个程序员,每天工作 10 小时,每周工作五天,大约 4 年就能达到 10000 小时,那是不是每个程序员认真工作,勤勤恳恳的过完 4 年他就能成为专家呢?答案是显而易见的。
首先 10000 小时只是必要条件,并非充分条件,也就是说,即使你花了这 10000 小时,可能也没什么用,再次简单的工作重复 10000 小时并不能给你带来什么提高,自然也就成不了专家
一万小时定律
并非适合所有领域,即使有很强意志力,也很难在某些领域成为世界顶级,这里只是强调在某些领域去努力、去花费很大的精力。我觉得,这需要 实力与运气共同作用的结果
简单的工作重复 10000 小时
吴军老师在《智能时代》一书中提过一个这样的观点:
在未来的智能时代,真正受益于技术进步的个人可能不超过人口的 2%。
之后他又补充了一句:
坦率的讲,仅仅会写几行 JavaScript 的人不属于我说的 2%的行列,这些人恰恰在未来是要被计算机淘汰的。
当时看到这里,我其实十分不解,吴军老师是不是太久没撸码了,现在 JavaScript
这么火,Node
那么牛掰,什么 React Native
,Grunt
,Gulp
,Webpack
,Vue
,Weex
,微信小程序等等,这些都是风生水起啊,怎么 JavaScript
就跪了呢?还有,我们高大上的前端工作怎么就挤不进这 2% 呢?
后来仔细想想,这里定义的是『仅仅会写几行 JavaScript 』,事实上,如果 10000 小时都花在改界面,修改 DOM,改个色值,切个图,替换下图标这种简单重复的工作里面,当然挤不进这 2% 。事实上,要学的东西远远不够,前端要有危机意识。
再来看,前端工作怎么就挤不进 2% 的人呢? 2% 看起来还挺多,可是想想,每种职业都有其 2% , 搬砖的有搬砖的 2%,写程序的有些程序的 2%,总不可能写程序的去抢搬砖的活儿吧。能不能挤进这 2% 要看是否善于使用智能工具,很不幸,我发现一些热门的技术的发起都和前端没啥关系,什么数字化,VR/AR,基因测序,大数据,机器学习,人工智能……
说到这里,智能手机的飞速发展带起了移动互联网,但是这波红利被终端开发给占了一大半,直到近两年,手机性能提升才让前端开始发力。为什么 PhoneGap
(现已改名 Cordova)搞了那么久没什么人用,React Native
才出了没多久就已经炙手可热。除了 React Native
师出名门,还因为它的出现是为了解决终端开发效率低以及更新审核慢的问题。
好吧,前端不那么容易称为 2%,那我们还是继续付出 10000 小时,争取做个专家吧。
那么简单的重复不足以称为专家,那对于前端来说应该要怎么做呢?我的想法是『跨界』,不满足于做前端,而是去更多的学习终端,学习后端的知识,带来思维的转变和编程能力的提高。
当然也可以去阅读那些框架的源码,比如
React
,Koa
等等,去思考和借鉴一下它们的架构和内部实现,去看看算法方面的内容来提高自己的逻辑思维能力
跨界
看看现在非常热门的 JavaScript
编译器 Babel
,其作者 Sebastian McKenzie
写出这样一个编译器,必须具有很强的编程能力和熟悉编译原理、AST。这样一个人虽然写的是 JavaScript
,但是已经不是一个前端了,而是大神。
上文中说到的 React Native
虽然写的也是 JavaScript
,但是学了一段时间,你就会发现需要用到非常非常多的终端知识,包括封装原生控件,做和终端混合的应用,这个时候你必须去了解终端开发,去看 Java
和 OC
,去学习终端知识。
当然,首先要做好本职工作,也就是把前端做好,毕竟这是让你养家糊口的根本。
在做好本职工作的前提下:不要守着这一点东西进行低水平的重复(我一直对切图方向的前端很不感冒),在工作中积累一定的分析问题解决问题的能力,同时跨界的时候不要像一张白纸,而是要能复用之前做前端的时候的知识,能力,这样才是一个好的跨界。
跨界,更多的是思维的转变和能力的提高
前段时间有很严重的学习焦虑症,每天没看书就懊恼不已,以至于叫我干什么与看书学习无关的事情我都会觉得浪费时间,而且人也会很焦虑。读了一些文章,调整了心态,勤奋学习和享受生活并不是对立的,而是互为补充的。
有了良好的身体素质和健康的生活方式,才能沉下心来认真学习来补充自己。
10000 小时只是一场长跑,唯一的对手是你自己。
额外的话
想起刚毕业的时候在第一家公司实习的时候学习过 Python
,后来专职前端方向,在业余时间用Express
,Koa
都写过这套完整的博客,确实从中学习到了很多后端方向的内容,这也算是跨界吧
大厂要求对某一方面熟悉甚至精通,小厂需要多元。
对于我这种无限向往大厂的人来说,还是继续在前端方向努力吧:
- 主要吃饭的家伙,继续定期整理知识、消化、理解并以博客(当然我在扯淡)的形式来记录下来来提高自己。
- 跨界方面多看看
koa
,flask
源码来作为提升、以及算法方面(毕竟为了面试)的内容。