【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

月影:别更新了,学不动了?千万别有这样的心态

  • 2020-12-30
  • 本文字数:3301 字

    阅读完需:约 11 分钟

月影:别更新了,学不动了?千万别有这样的心态

“别更新了,学不动了”、“前端十八个月难度翻一番”、“Deno、TypeScript 等新轮子层出不穷,我到底该不该学”,这是前端工程师平时在工作场景中,最常提到的玩梗。


是的,前端圈子变化确实挺快,React 还没学明白,Vue 就来了。Vue 2.0 还没搞清楚,3.0 就发布了。作为一名本来工作就很忙的前端工程师,你自然需要思考,到底我还需要投入多少时间去追那些新的技术?如果追,到底该怎么追?


对于这些问题,近期加入字节跳动的前 360 高级技术总监、奇舞团团长吴亮,也就是我们熟知的月影,之前曾经聊过自己的想法,他说,如果一个行业的新东西层出不穷,说明这个行业一直在高速发展,这本身对于从业者来说是一个非常好的事情,因为这说明这个行业中有更多的机会和成长空间。


至于怎么学,以及技术焦虑的问题,他也有自己的见解。他认为,如果你不盲目地去追求所谓的“时髦”技术,不去刻意担心自己是否落伍,而是去多观察这个行业,找到技术发展内在的规律和脉络,那么你就知道该如何前进,不会有任何恐慌。


12 月 6 日,在极客时间组织的主题为“前端人,咱别盲目追求新技术”的开放日活动上,知名技术专家月影分享了自己的观点。以下内容根据其演讲速记整理而成。


技术更新带来发展红利


首先我们得承认一点,前端行业发展得很快,各种新的技术不断出现。有人说今天学了一个 Gulp,明天又学一个 Grunt,后天再学一个 webpack,感觉好像永远也学不完这些东西。


为什么新技术层出不穷呢?


是因为现在的需求、使用场景和我们 5~10 年前是不一样的。用户对我们有更高的要求,并且应用场景和系统更加复杂了,所以我们才会用这些更加强大的工具,去解决那些遗留下来的问题。


比如,过去我们基本不会去想项目复杂化、代码工程化这样的问题,但现在这样的诉求却越来越多了,所以我们的技术是需要不断更新迭代的。只有这样,我们才能跟得上行业的发展。


当你在一个技术飞速更新的行业里面,你不要觉得害怕,你不要觉得自己很有压力,反过来,你应该要庆幸自己选择了一个快速发展的行业。因为这个行业在快速发展的时候,它是有红利的,你我作为从业者,就能从中受益。


因此,你要想一下,如果这些技术不断更新的话,你手里面的工具会变得更好,你会有更好用的东西,而不是说这些技术更新了,我还得去学,学不动了怎么办,千万别有这样的想法。我们应该更聪明地去看待这个问题,我们要仔细想想应该去学什么,以及投入时间到哪些方面。


我们要去学习前端基础知识


在前端行业里面,我们应该从整体来看待我们要去学习的东西,我们要去思考一下在前端这个行业里面,它的知识是怎么分类的。


就前端工程师来说,本质上还是软件工程师,所以我们其实还是在做软件开发的事情。在软件开发领域,其实有很多的基础知识,比如说数据结构与算法、数学基础。我写的极客时间专栏《跟月影学可视化》,里边其实有很多的篇幅在讲解基础的数学知识,那为什么要讲解这些基础知识呢?是因为我们在做可视化图形渲染的时候,没有数学理论你就很难理解渲染模型。


除了数学知识,还有很多计算机科学领域的理论基础,也是我们需要花一些时间去学习的。


这些知识往往是比较成熟的,相对来说不会有太大的变化。因此,我们还是需要花费一些功夫,好好地学习基础知识,把这些基础给打牢。


我们要去学习前端领域知识


除了基础知识之外,还有一类知识叫领域知识,领域知识里面又分成两类,一类叫做通用领域知识,另外一类是专用领域知识。


通用领域知识:定时更新,定时学习


在前端里面什么叫通用领域知识?举个例子,在我们做图形学的时候,你学了数学知识以后,你要知道图形系统,Canvas API、WebGL,像这样一些知识它就属于通用领域知识。再比如说像前端领域里面,HTML、CSS、JavaScript 这些也属于通用领域知识。


这些知识实际上它会更新换代,不断升级。比如像 JavaScript,TC39(JavaScript 发展委员会)每年会发布一个新的 ECMAScript 标准,它也会升级,但是它的升级其实没有这么快。


你要真的去了解 JavaScript 特性的话,你每年可以等它发布的时候,花一点点时间去了解一下它的新特性就 OK 了,它不会突然有一个很大的改变,然后让你完全跟不上。所以像这样一些通用领域知识,我们还是需要去学习的,并且你学过的这些内容,是不会突然有一天要全部给废弃掉,然后再去学其他新的内容的。


专用领域知识:用到的时候再去学


还有一类知识是专用领域知识,比如说我们要去解决工程化,但不是所有的项目都需要工程化,而且不同的项目规模,不同类型的项目,工程化的方式是不一样的,我们可以在工程化当中引入各种步骤,去使用一些工具。


例如可以引入 Babel(开源的 JavaScript 编译器)的编译,我们可以去引入打包工具,然后我们可以去做一些自动的 CI/CD(持续集成和持续交付或持续部署的组合实践),可以去引入单元测试框架,这些都属于我们专用领域的知识。


在专用领域,我们解决的问题是明确的,我们可以在这个基础上开发各种各样更好的工具。但这些工具并不需要每个都掌握,有的时候我们要专注于领域本身。


比如说我们做响应式的一些设计,需要用 React、Angular,或者 Vue 这样的框架。那有些同学搞不清楚,他总觉得说要把这些框架都给学会,实际上他更应该去理解 MVVM(Model-View-ViewModel)的原理,理解这些框架为什么要这样设计,理解 React 为什么现在要用 Hooks 的方式?这些方式有什么优点,解决了什么问题?


你去研究这些问题,可能比你死记硬背接口里的 API,比你硬生生学 Vue、React 怎么使用更加重要。注意,我并不是说像这样的一些专用领域知识我们不应该花时间学它,而是说你如果真的用到了的时候,我们再去学也来得及。


我们要形成系统性的知识体系


前面讲到了这些知识该如何学习,我们再讲一些更通用的。现在互联网很发达,我们可以通过各种渠道获取信息,我发现很多同学去面试之前都喜欢去各个技术论坛和社区刷一些面试题。这些同学可能平时也会去关注各种各样的博客,或者各种各样的公众号,去看一些相对来说比较散的或者比较冷门的问题,然后发现这里有一些 CSS 的知识点,自己可能不了解,又发现那里 JavaScript 的知识点、题目,可能是我不会的,然后自己就会很恐慌。


其实我们不应该去收集这些碎片化的知识,当你发现有很多关于 JavaScript 的深入一点的题目你不会,这就说明你的 JavaScript 基础不是很好,这种情况下,你应该系统地复习一下 JavaScript。比如找本书看,提升一下你这块的能力。


这种情况下的话,如果你在工作或者准备求职的过程中,你发现自己有基础知识方面的不足,像 JavaScript、CSS 这种领域的基础知识,我们还是应该去系统性地学习一下。


总结


最后,我们总结一下,在高速发展的前端行业,我们不应为不断更新的技术感到焦虑不安,而抱怨学不动了。我们更应该持续地、有技巧地学习。我也提到了几点学习建议:


  1. 学习一些基础知识,例如数据结构与算法、基础数学等知识。

  2. 学习通用领域知识,它们更新升级较慢,我们只需定时学习即可,例如 JavaScript 语言的新特性。

  3. 学习专用领域知识,这类知识可以在实际应用到时我们再去学习,例如 Babel 编译工具等等。

  4. 学习要系统,不要东学一堆,西学一堆,要把自己的知识体系建立起来。


总的来说,前端是一个发展非常快的行业,我也很幸运地一直在这个行业里面,未来的话我们一定会走得更远,并且我们也要一起努力让这个行业变得更好。


我们不用去害怕,也不用去恐慌,觉得自己学不过来,而要更加信心满满地去看待这个行业,然后去参与到这个行业的建设中去。


月影邀你加入字节跳动


目前,字节跳动各部门正在火热招聘前端开发工程师。


字节跳动鼓励坦诚清晰表达的工程师文化,欢迎内驱、始终创业的优秀技术人才。


扫描二维码,即可投递简历,诚邀你加入👇



学习推荐


如月影所说,很多同学都觉得应该要把所有框架学会,但其实更重要的是理解这些框架为什么要这样设计。


现在有一门课程,帮你掌握 Vue 框架的原理和实现方式,带你亲自动手实现一个 ToyVue


框架,推荐你来学习一下。


主讲老师是前手机淘宝前端负责人 winter,学完后你可以获得:


  • 了解一个 ToyVue 框架搭建的全过程

  • 掌握 Vue 框架背后的原理及实现方式

  • 掌握 Vue 中的组件化思想

  • 亲自实现一个 ToyVue 框架


扫码下方二维码回复【vue】即可免费领取👇



2020-12-30 09:452779

评论

发布
暂无评论
发现更多内容

Redis分布式锁的最佳实践 - Redisson

xcbeyond

redis 分布式锁 28天写作 12月日更

OKR的一种实践

wood

OKR 28天写作 组织建设

知犀思维导图

IT蜗壳-Tango

28天写作 12月日更

11. 《重学JAVA》--字符串

杨鹏Geek

Java 25 周年 28天写作 12月日更

Musical.ly 创始人:打造用户社区的三板斧

石云升

28天写作 12月日更 社区打造

架构实战营模块六拆分电商平台为微服务

Geek_99eefd

架构实战营 「架构实战营」

2021 年的认知和感悟

卢卡多多

年终总结 28天写作 12月日更

秒杀系统架构

人工智能~~~

LeSS- 大规模敏捷开发框架实践心路

RingCentral铃盛

Scrum框架下玩转敏捷实践

RingCentral铃盛

模块六

侠客行

「架构实战营」

三步搞定现场意外

将军-技术演讲力教练

人少一半,活照样干?(12/28)

赵新龙

28天写作

架构训练营毕业设计

看,有只猪

架构训练营毕业总结

看,有只猪

Rust 元宇宙 17 —— 聊天和表情

Miracle

rust 元宇宙

第六模块总结

张靖

「架构实战营」

42 K8S之调度器

穿过生命散发芬芳

k8s 28天写作 12月日更

与2宝的“有效”沟通经验 1

搬砖的周狮傅

沟通

模块六作业

Geek_1d37ea

架构实战营

CSS之选择器(四)

Augus

CSS 12月日更

【Three.js】WEB3D项目开发中实用工具推荐

devpoint

WebGL three.js 元宇宙 12月日更

最可怕的黑客攻击:APT攻击

喀拉峻

网络安全 安全

架构实战营-模块六

随风King

「架构实战营」

证书、证书链、CA的那些事

RingCentral铃盛

尝鲜Go 1.18中范型版本的map和slice

Robert Lu

Go 语言 范型

Eureka分区集群部署

李子捌

微服务 28天写作 12月日更

商场里的4S店

张老蔫

28天写作

架构实战毕业总结

人工智能~~~

数据大体系(三)——指标

圣迪

大数据 数据 指标体系 指标 数据分层

2021的科技卦象·离·烈火烹油造车热

脑极体

月影:别更新了,学不动了?千万别有这样的心态_大前端_极客大学_InfoQ精选文章