1、工作原因,经常需要给团队内部做培训。于是,有的同学就跑过来问我,你准备讲啥啊?Vue?Node.js?React?Flutter?NPM?我笑着说,这些都不讲,整个过程中,就只算是提到这些名词,大概也不超过五次。

2、你应该能想象到那位同学的表情,大概率和你现在一样,要么觉得我在装,要么是真懵圈了。于是,你肯定会再追问,老周,那你不讲这些,从用户角度,你让我学什么?

3、好问题啊!学什么呢?我记得在豌豆荚的时候,有参与一些招聘的工作。老实说,作为架构师,招聘工作通常不是在第一轮,大概会是到第二、三轮的时候,才会轮到我上场。也就是说,我需要面试的,大抵都是其他“面试官”认为“这家伙还有点料”的。

4、有一次,我的一个面试结束得比较快,在内部的 HR 系统中填写评论的时候,正经才写了四个字,便被其他面试官打断了,他嚷嚷着,几乎快要被整个公司都听到了,说:“爱民老师,人家十几年的一线开发,大型系统都做过那么多,经验很丰富的!你怎么这么点评呢?”

5、嗯,我在 HR 系统中写评论,起头里的四个字是:水平一般。

6、我想了想,停下写评论,给这个面试官聊聊开头这四个字。我说,我其实不太常用这种措辞来评论候选人,但这个也算是例外了。为什么呢?因为这个人真的是能力很强,下手很快,做的产品和项目也多,经验非常丰富,但是他确实就是水平一般。

7、我去,什么叫“水平一般”呢?

8、emmmm,因为他学的东西,别人也都学;会的东西,别人也都会;他强的东西,别人一样也强。即使别人今天不如他学得多、会得多,又或者不比他强多少,但是只要花点时间、下点功夫,也就一样儿也不会比他差。他十几年的一线开发,把自己做成了熟手、熟练工,东西会得再多,技巧再熟练,也不过是卖油翁的“但手熟尔”。

9、我在面试里面,确实问了他几个偏向核心的问题,他也确实知道,很清晰、很准确。但再进一步问原理时,他却是一无所知。所以,我又引导、设问,说:“如果现在让你来考虑这个问题,你会从哪儿入手呢?”那位候选人想了好几个招数,中规中矩,然而无一可用。

10、这就是关键所在。

11、“核心原理”不是一些招数技法,不是拿来多练多用就行了的。而是说你要悟,你要在事上琢磨。这时候你理解了吧,我所谓的“一般”,不是指能力一般,而是指你眼界一般、思想一般,对你面前这个事物的理解程度,也是一般。

12、拿 JavaScript 举个例子吧,不然你不服。

13、JavaScript 是脚本代码,在引擎层面看来,首先就是一段文本。在性质上,装载 a.js 执行与 eval(’…’) 执行并没有区别,它们的执行对象都被理解为一个“字符串”,也就是字符串这一概念本身所表示的、所谓的“字符序列”。

14、在字符序列这个层面上,最简单和最经济的处理逻辑是正向遍历,这也是为什么“语句解析器”的开发者总是希望“语言的设计者”能让他们“一次性地、不需要回归地”解析代码的原因。

在前端领域混了这几年,总结了一套前端学习的精讲视频和学习路线,如果有对前端开发感兴趣的伙伴,不管你是想转行,或是大学生,还有工作中想提升自己能力的web前端党,欢迎大家的加入我的前端开发交流群:603985993 希望大家诚心交流!,与企业需求同步。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!也可以关注我的微信公众号:【前端留学生】 每天更新最新技术文章干货。

15、回归(也就是查看之前“被 parser 过的代码”)就意味着解析器需要暂存旧数据,无法将解析器做得足够简洁,进而无法将解析器放在小存储的环境中。根本上来说,JavaScript 解析引擎是“逐字符”地处理代码文本的。

16、JavaScript 从“逐字符处理”得到的引擎可以理解的对象,称为记号(Tokens)。一个记号是没有语义的,记号既可以是语言能识别的,也可以是语言不能识别的。唯有把这二者同时纳入语言范畴,那么这个语言才能识别所谓的“语法错误”。

17、你看,这样再理解,你是不是就顺很多了?

18、再比如,引用(References)是静态语言与引擎之间的桥梁,它是 ECMAScript 规范中最大的一个挑战,你理解了“规范层面的引用(References)”,也就基本上理解了 ECMAScript 规范整个的叙述框架。这个框架的核心在于——ECMAScript 的目的是描述“引擎如何实现”,而不是“描述语言是什么”。

18、规范层面中的引用与引擎的核心设计有关。

19、在 JavaScript 语言层面,它希望引擎是一个执行器,更具体的描述是:引擎的核心是一个表达式计算的、连续的执行过程。表达式计算是整个 JavaScript 语言中最核心的预设,一旦超出这个预设,JavaScript 语言的结构体系就崩溃了。所以,本质上来说,JavaScript 的所谓“语句能执行”也是一个或一组表达式计算过程,而且所有的计算都必须能描述成一个基本的模式:opCode -> opData,也就是用操作符去处理操作数。

20、这个相信你也明白了,这回到了我们计算理论最初的原点,是我们学习计算机这门课程最初的那个设定:计算实现的就是“计算求解”的过程。它的另一个公式化的表达就是著名的“算法 + 数据结构 = 程序”。

21、这个话题接下去还能聊很久,我前面先卖个关子。如果你感兴趣,下周三晚上,可以来我的直播间,我和你聊聊怎么学习 JavaScript 这门语言。我吹个牛,我想和你聊聊,怎么学 JS,你才能“通”。如果你信的话。

我觉得吧,这么学JavaScript,你才能通相关推荐

  1. 怎么学JavaScript?

    作者:小不了 链接:https://zhuanlan.zhihu.com/p/23265155 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信 ...

  2. 老姚浅谈:怎么学JavaScript?

    大家好,我是若川.当初我就是看本文深受启发,开始看书读源码.所以现在联系了作者@老姚 授权转载分享给大家.我按照文中的做法敲完了<JavaScript语言精粹 修订版>,在2017年7月2 ...

  3. 你不知道的javascript_为什么前端要学JavaScript?JS都有哪些逆天的功能?

    相信每一个想要学习前端的人对于前端三剑客html+css+js都不会陌生,这些可以说是一个前端的标配,而在前端的世界里,没有什么是JavaScript实现不了的,你真的了解js吗? 关于JS有一句话: ...

  4. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  5. 前端战五渣学JavaScript——call、apply以及bind

    写这篇博客之前,我想先说下今天(2019年3月28日)一直关注的一件事吧(出于凑热闹的心情--尴尬).在昨天,全球最大交友网站Github上悄然出现一个名为996.ICU的文档项目,整个项目没有代码, ...

  6. 统一回复《怎么学JavaScript?》

    作者:小不了 链接:https://zhuanlan.zhihu.com/p/23265155 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 鉴于时不时,有同学私信 ...

  7. 如何学JavaScript?前辈的经验之谈

    这篇文章主要介绍了如何学JavaScript?前辈的经验之谈,也就是怎么学前端的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 正题开始,前端怎么学,应该因人而异,别人的方法未必适合自己. 就 ...

  8. 重学JavaScript系列——(六)集合引用类型

    重学JavaScript系列--(六)集合引用类型 博主以扎实JavaScript基础为目的,以<JavaScript高级程序设计(第四版)>为核心参考资料,以一个"复习者&qu ...

  9. 什么是大数据口子_大数据分析师年薪几十万,学什么专业才能从事大数据?

    近几年,大数据为各个领域带来了全新的变革,大数据的重要性越来越被企业和国家所看到,大数据工作者的需求再次被无限放大,他们的薪资和社会地位也在不断上涨.马云在演讲中就提到,未来的时代将不是IT时代,而是 ...

最新文章

  1. 你还在为了进高校做教师而读博吗?
  2. 使用NPOI导入导出标准Excel
  3. Angular中实现路由跳转并通过get方式传递参数
  4. IDEA Error:java: Compilation failed: internal java compiler error
  5. c语言心形告白代码实现
  6. pos机未能连接服务器,pos 机链接不了服务器
  7. 这些年,NLP常见的预训练模型剖析
  8. Python项目实践:基本统计值计算
  9. 加密后变成乱码解密_个人磁盘加密软件,使用VeraCrypt进行整盘加密介绍
  10. 介绍一份数据分析报告
  11. LeetCode刷题(50)--Word Search
  12. CentOS 6.5 x64 Redis 安装
  13. (转)拿到软银44亿美金巨资后,WeWork要这样布局中国市场
  14. 数据仓库建设 —— 数据质量管理
  15. 目标检测算法——YOLOv5/YOLOv7改进之结合CBAM
  16. 金融去杠杆环境下,请聆听麦子金服财富投资者给出的答案
  17. java延迟1秒_java 等待一秒方法
  18. 问题 B: 零基础学C/C++25——判断某整数是正整数、负整数还是零
  19. 每日10行代码82:网上购物活动满减凑单计算器
  20. pip 如何设置代理

热门文章

  1. 阿里巴巴开源技术汇总:115个软件(二)
  2. Git学习总结(9)——如何构建你自己的 Git 服务器
  3. 中修改环境变量_系统小技巧:彻底弄懂Windows 10环境变量
  4. linux挂载磁盘没有权限,linux肿么知道哪个盘没有被挂载
  5. vue 多点触控手势_手写 Vue 手势组件__Vue.js
  6. PHP套入表格公式,单元格公式引用的方法
  7. FOI冬令营 Day2
  8. 互联网人必读 | 大数据思维的十大核心原理
  9. 原来,我们的时间这样被科技巨头们瓜分(转)
  10. 运行mvc项目报错 %@ Application Codebehind=Global.asax.cs Inherits=NHAPPAPI.MvcApplication Language=C...