大厂的前端面试难吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大厂的前端面试难吗相关的知识,希望对你有一定的参考价值。

参考技术A

分享给你一些面试题

一面

小米的面试官给人的感觉很亲切很真诚,是一个体验很不错的面试。

    css 实现图片自适应宽高

    讲 flex,手写出 flex 常用的属性,并且讲出作用

    BFC 是什么

    项目里面的前端鉴权是怎么实现的?

    vue 里面的虚拟 dom 是怎么回事?

    vue 双向绑定讲一讲

    手写函数防抖和函数节流

    讲讲常用的 es6 语法,比如 let、promise、class 等等

    浏览器渲染过程,回流重绘等等,load、DOMContentLoaded 等等事件的触发顺序

    从小米应用商店里面随便找了一个需求让我现场实现,写伪代码

    二面

    讲项目里面的鉴权和图片懒加载怎么实现的

    讲 vue-lazyloader 的原理,手写伪代码

    讲 express 框架的设计思想

    线上日志是如何处理的

    讲事件循环

    讲 nodejs 的 eventEmitter 的实现

    三面

    讲项目里面做的事情

    讲 vue 的响应式原理、依赖收集、监听数组、虚拟 dom 等等

    讲 express 的中间件系统是如何设计的

    现场从小米应用商店中找出一个需求现场实现,说思路,写关键的代码

    四面

    讲 vue-lazyloader 源码以及设计

    使用 es5 实现 es6 的 class

    websocket 握手过程

    浏览器的事件循环和 nodejs 事件循环的区别

    百思编程(过)

    这个公司是猎头推荐的,CEO 比较强势,也算比较有趣。

    一面

    跨域以及解决办法

    手写一段小算法

    javascript 的 sort 方法内部使用的什么排序?

    二面

    这一面是 CEO 面,主要问了我的职业规划等等问题,在我没有表现出很强的要去该公司的意愿后,直接给我送走了…

    ponyAI-基础架构(过)

    一面

    讲项目里面干了啥

    vue-lazyloader 怎么实现的

    vue 的响应式系统、虚拟 dom

    函数式编程

    手写了一个算法题

    二面

    这轮面试时从美国打电话过来的,事后才知道是 Google 的前端…

    讲讲项目里面做了什么

    vue 原理,和 react 的区别(其实我没怎么用过 react)

    JavaScript 异步的处理方式,现场出了一个问题,使用 promise 实现

    三面

    讲项目模块规划、项目如何部署、如何优化等等

    手写函数的防抖

    手写一道算法题

    四面

    讲讲项目

    手写一道算法题

    洋钱罐(过)

    一面

    讲项目

    前端持久化的方式、区别

    vue-lazyloader 的原理

    怎么配 webpack

    手写 vue 双向绑定

    讲 es6 的一些特性,并且现场出了几个代码片段,说结果

    手写一道算法题

    http 状态码

    二面

    讲项目

    vue-router 的原理

    项目中怎么用的 webpack,怎么优化

    讲 express 的设计原理

    手写一道算法题

    创新奇智(过)

    一面

    讲项目

    手动实现 parseInt

    二面

    这一面居然遇到了前同事…写了一些笔试题,问了一些问题!

    三面

    讲 tcp/ip 网络层、三次握手,为什么不能两次握手

    讲 vue 原理

    手写一道算法题

    猿辅导(跪)

    猿辅导好像总共就一面,期间一些实现方式和面试官有争议(没有冲突)。

    一面

    手写 vue 的 mixin 方法

    手写 promise 的 all 方法

    现场出了一个移动端的小需求

    搜狐-垂直媒体部门(过)

    一面

    讲项目

    项目里面用 nodejs 做了啥

    抽取了哪些 vue 组件

    二面

    讲项目

    手写实现 promise

    腾讯-地图(跪)

    腾讯两个部门面试都会先做一套笔试题,笔试题基本就是一些常见的前端问题以及算法题

    三面

    讲项目,对项目提了一些问题

    怎么判断一个点是否在圆形内、正方形内

    对笔试题

    腾讯-天天快报(跪)

    也是先做了一套笔试题,但是令人尴尬的是,面试官觉得我快排写错了,然而我只是在原地快排没有申请额外空间…

    笔试题

    没了

    百度-百度云(过)

    这个部门今年据说升为一级部门了,好像还挺不错的~

    一面

    讲项目

    vue 响应式原理,什么是 mvvm

    es6 使用过的特性

    flex 常见的属性

    css 选择器的优先级

    抽取过哪些 vue 组件

    二面

    讲项目

    express 设计原理,面试官对动态路由匹配一直追问下去,但是这里的源码设计我确实是忘了,一路讨论下去扯到了字符串的前缀树…

    实现一个事件发布订阅类,其实就是 eventEmitter

    三面

    三面是山大老学长,聊了一些业务上的事情~

    搜狗-手机搜狗(过)

    搜狗一面的体验比较差,面试官给人的感觉不太好…

    一面

    讲项目

    事件循环

    回调函数的坏处

    vue 里面哪儿不会用到双向绑定

    二面

    忘了…

    快手-商业化(过)

    一面

    讲项目

    如何抽取公共组件的

    vue 的响应式原理

    如何实现一个可设置过期时间的 localStorage

    实现一个发布订阅系统,包括 on、emit、off 等等

    二面

    一道智力题

    软件工程思想、设计模式等等

    async/await 代码片段,说输出结果

    今日头条-广告系统(过)

    一面

    讲项目

    讲 lazyloader 实现

    用 docker 做了什么

    用 webpack 做了什么

    手写一个算法题

    讲 flex

    vue 响应式原理

    es6

    二面

    JavaScript 异步

    优化项目

    vue 原理,包括计算属性、依赖收集等等

    用 JavaScript 的异步实现 sleep 函数

    算法题

    三面

    手写快排,时间复杂度,优化

    手写实现 jsonp

    项目部署,线上问题等等

    websocket 握手过程

    四面

    对 vuex 的理解,单向数据流

    设计一个单点登录的系统,类似阿里系那种

    手写一个算法

    五面

    实现一个联想搜索组件

    手写函数防抖和节流

    OPPO 成都研发中心(过)

    一面

    讲项目

    讲 vue 的 响应式系统,讲了好久,从渲染 watcher 到虚拟 dom,面试官还跟我讨论了好久

    忘了

    二面

    讲项目

    忘了

    百词斩(跪)

    首先会在线做一道算法题,挺简单的,百词斩感觉挂的稀里糊涂的…

    一面

    websocket 握手过程

    tcp/ip 网络层,http 的特点

    http 强行使用 udp 能实现吗?

    vue 原理

    webpack 热更新原理,使用过的插件

    原型、闭包、跨域

    手写了一道算法题

    为什么面这么多公司

    因为我是实习直接转正的,也没参加过秋招,所以对自己在市场上是个怎样的实力没有一个清晰的了解,而且我也想多了解一下其他公司在做什么,于是就尽量的多面,不过说实话面试确实挺累的。

字节跳动的Android岗面试难吗?应该如何应对?

个人觉得搞开发,年轻的时候一定要进大厂拼一把。大厂的优势有很多,很多好处都是小厂给不了的:
更大的平台;
更好的薪资;
更多的福利;
更完善的体制;
更多的发展机会;
更多的学习机会;
……

比如字节:工作环境好,技术氛围也好,官僚风气弱,年轻人多有活力,沟通没障碍,薪资待遇好(这是最主要的),也取消了大小周。

字节难进吗?面试难吗?怎样进字节?下文针对这些问题会一一作答。
(PS:文章比较长,大家可以收藏慢慢看。)

字节安卓岗面试难吗?

这是一个朋友的真实经历:

一句话总结:进字节的总体感觉不难,已拿offer。


下面是邀请他做的分享。

这位朋友是21届硕,去年秋招拿了字节跳动offer。

当时面了两个组(共见了 8 个面试官),其中有一个组的 HR 表示双方期望没有聊好,每面多久就拒绝了(也可能只是 HR 找个理由婉拒)。然后当天又被另一个组捞起来了,直接面完,几天后就收到 offer 了。

说一下他的面试过程和一些经验分享吧。

字节跳动面试最大的特点就是爱考算法题。你随便翻几篇字节跳动面经就会发现考的算法题一般都是Leetcode原题,只是有的时候,你没刷过,不知道那道题是Leetcode上的原题。

比如下面这道题:

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表

没错,是Leetcode 25. K 个一组翻转链表这道题其实是字节跳动算法高频榜位列第2,数据来自CodeTop高频榜

再比如这道题

给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [nums l, nums l+1, …, nums r-1, nums r] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。

这也是Leetcode原题, 209. 长度最小的子数组

字节跳动教育、飞书、商业化、视频架构等部门考察过,共计19次。

下面讲一下大家最关心的问题。

怎样进字节?

第一点:心态

首先一个,心态要好,要相信自己,稳住不要慌。

第二点:基础知识

初级所需要的知识

掌握Android 四大组件知识,深入了解相关生命周期,对于Application、Fragment、Intent常见的开发知识也必须掌握。
掌握Android 基本布局和控件的属性和使用,常用布局有LinearLayout、RelativeLayout、ConstraintLayout等,控件有TextView、ImageView、RecyclerView、ScrollView等。
对Android的资源访问使用有基本了解,了解Android针对不同国家、语言、屏幕、API的适配原理。
掌握android系统服务和工具类的使用,对网络访问和数据库操作有基本认知。
熟练掌握研发工具,如IDE、模拟器、网络代理、日志等。

中级所需要的知识

熟悉SOLID基础设计原则,掌握23种设计模式。
对于研发语言特性java/kotlin有深入理解,如反射、动态代理、apt等。
对Android架构有基础了解,对apk结构和打包原理有深入了解。
对于Android各个版本特性有基本了解,如MD设计、权限管理、doze模式等。
熟练掌握各种研发调试工具,如git、gradle、mat、layout inspector等。
掌握Handler\\AsyncTask原理,熟悉多线程开发。
对绘页面制原理有初步理解,能够实现一个复杂自定义控件。
能够熟练掌握开源库的使用,如图片库(Glide\\Fresco)、网络库(Volley\\okhttp\\Retrofit)、工具(Dagger\\RxJava\\EventBus)等,能够对这些常用的库进行二次封装。
熟悉应用常见的优化方法,避免编写内存泄漏的代码。

高级所需要的知识

掌握java高级特性,如JUC、线程池、NIO\\BIO等;掌握jvm虚拟机知识,如内存模型、GC原理、类加载机制、线程模型等。
对Android运行环境有深入理解,理解Android沙盒机制,掌握AIDL原理及Binder通信原理,了解app和activity启动原理。
掌握热修复原理,各大厂商方案的优缺点。
对于Android事件分发有深入理解,重点掌握触摸事件机制。
深入理解Android绘制原理,理解VSYNC和surface机制和窗口原理。
深入理解Android动画原理,包括补间动画和属性动画。
对于Android安全机制有基本认知,理解Android安全原理。
深入理解端上设计范式思想,如mvc\\mvp\\mvvm\\clean-arch等。
理解架构演进,有良好的分层和拆分思路,掌握模块化、插件化、动态部署等。
对新技术敏感,理解掌握下一代架构dynamic feature等。

这里把字节跳动等大厂经常问的那些题目进行了综合性的搜集整理(含答案解析)。

整理目录

整理内容(部分截图)

第一章Android 相关

第二章 性能优化

第三章 Java 相关

第四章 Kotlin 相关

第五章 网络相关

第六章 插件化&热修复&模块化&组件化&增量更新&Gradle

第七章.图片相关

第八章 Flutter 相关

大家可以扫码找我免费获取,希望这份资料对大家的学习和工作有所帮助。帮助大家进行知识的查漏补缺。
↓↓↓↓↓

第三点:算法

前面也说过,字节跳动面试最大的特点就是爱考算法题。

作为一个过来人提醒大家:想要从事计算机技术岗位,在大学本科阶段一定要早早的刷题,打好扎实的算法与数据结构基础。

时间充足的朋友建议在刷题之前看一些书

《漫画算法之旅》

如果你之前没有任何算法基础,这边书很适合你,可以补充数据结构和算法的基础知识,像什么是时间复杂度空间复杂度、查找、排序等。
如果你有了一定基础了,建议你直接跳到最后面的算法实战部分。

《剑指 offer》

非常经典的一本书,学算法的人必刷。但是要注意了,这边书里面的题目是用 C++写的,如果你是 Java 开发人员可能会有点影响。但是要记住学习算法最关键的还是解题思路和方法,用什么语言实现是其次的,如果你时间比较多我是建议你用 Java 语言再实现一遍。

《labuladong的算法小抄》

非常推荐!这是一本很新的书,写书前作者在 Github 开源了一个项目,主要讲解 LeetCode 解题套路,Start 总数排名前40。在书的开头讲解了学习算法的基本思维和套路,建议看这边书的同时再配合 leetcode 刷题,疗效非常棒!

《算法导论》

要是不推荐这本书是不是显得我有点 low 了,这是一本科班出身的同学必看必学的经典大部头。国外大佬写的,国内翻译的经典之作,虽然是经典但是不建议刚入门算法的同学看,因为看了这本书你可能要放弃算法了,比较难看懂。建议有了一定基础再入手这边书。

如果你觉得看书比较枯燥,可以推荐你看一些极客时间的专栏,不过是收费,但是质量非常高。
《数据结构与算法之美》

这个专栏是文字+语音,作者是王争,前 Google 工程师。他采用最适合工程师的学习方式,不拘泥于某一特定编程语言,从实际开发场景出发,由浅入深教你学习数据结构与算法的方法,帮你搞懂基本概念和核心理论,深入理解算法精髓,帮你提升使用数据结构和算法思维解决问题的能力。

《算法面试通关40讲》

这个专栏是视频,作者是覃超,前Facebook工程师。作者会用白板带你一步一步解题,层层深入一环扣一环,每一题还会用多种解题方法。我基本看完了,收获颇多。

leetcode、书和极客专栏可以并行,学练结合,不要光看不练。

时间比较急的朋友可以直接根据这份资料刷题

时间比较紧张的朋友,这边整理了一份《算法刷题宝典》,当时重金购买的,这里免费分享给大家。

PS:这份刷题资料里面整理的都是重中之重,建议时间充足的朋友也看看。

有需要的朋友可以直接扫【下方的二维码】找我免费获取全套资料。
↓↓↓↓↓

以上是关于大厂的前端面试难吗的主要内容,如果未能解决你的问题,请参考以下文章

2022 校招面试 | 400+ 前端大厂面试真题,看完 offer 稳了

2022 校招面试 | 400+ 前端大厂面试真题,看完 offer 稳了

决战秋招的前端面试,前端大厂面试手册必不可少

决战秋招的前端面试,前端大厂面试手册必不可少

决战秋招的前端面试,前端大厂面试手册必不可少

大厂面试题