Skip to content

Latest commit

 

History

History
254 lines (150 loc) · 11.1 KB

备战大厂的心路历程,别再盲目刷题了.md

File metadata and controls

254 lines (150 loc) · 11.1 KB

你以为走的是捷径,其实走的是弯路

备战大厂 8 个月,将自己完整的心路历程、思考与收获记录下来
希望对和我有相似经历的人,能起到一点点的借鉴;对像我一样迷茫的朋友,有一点点的启发

面试情况

  • 字节 2 次,一面挂
  • 阿里 3 次,1 次一面挂,2 次是 hr 面挂
  • 美团 1 次,hr 面挂
  • 京东 1 次:拿 offer,但裁员影响停止了招聘
  • 小米 1 次:拿 offer
  • 网易 1 次:拿 offer

面的岗位都是技术砖家岗,说技术砖家并不是为了凸显自己的技术怎么样

是因为大厂有隐形的年龄限制,30 岁再去面普通开发岗,可能面试的机会都不会给,认为此人“成长性不足”

不同年限的不同要求

黄金期: 1-3 年
青铜期: 5 年以上

注:这里年限指的是毕业年限,比如一个人前端干了 2 年,但毕业 5 年,大概率只能去面砖家岗了

权重比

1-3 年: 70%的基础知识+30%的项目经验

5 年左右: 20%基础知识+80%的项目经验

我身边所有进大厂的朋友,几乎都是 3 年内进的大厂,超过 3 年难度不知要上升多少倍

前 3 年容易进大厂,还有一个非常重要的原因,就是高学历

5 年左右,学历也很重要,但比重在下降,更看重的是你的项目经验,解决问题的能力

所以前 3 年的黄金期,一定要把握住,切不可 亡羊补牢 为时已晚

抱歉,没有捷径

我以为找到了捷径,其实是一个“死胡同”

拒绝盲目刷题

我曾经以为多刷一些面试题,多看一些别人的面试文章,就找到了成功的捷径。其实这是非常错误的想法,白白浪费了大把时间

刷题得到的是问题的表,得不到问题的里,缺失了自我学习能力,缺少对问题的探究与分析能力

盲目刷题,面试时,也根本架不住面试官刨根问底的问
面试官问一个问题,大概率会引出更多的问题,想了解你的深度或广度

说一个我遇到的尴尬情况:

  • 面试官: 从输入 url 到页面加载发生了什么?
  • 我:
    1)浏览器查找当前 URL 是否存在缓存,并比较缓存是否过期
    2)DNS 解析 URL 对应的 IP
    3)根据 IP 建立 TCP 连接
    4)5) ……
  • 面试官接着问:缓存有哪些?协商缓存请求的流程? 如何利用缓存? 缓存的请求头有哪些标识? etag 比 last-modified 哪个优先级更高? 当同时存在 Expires 和 max-age 时,哪个优先级高?

第一问我很流畅就回答上来了,第二问就卡壳了

面试官说的很直接:看来这个问题你刷过了,也只是刷过而已……

更要拒绝 PUA、拒绝各种所谓的面试宝典,打开宝典,水印都是某某教育

total.png

teach1.png

拒绝盲目加群

我曾经有一段时间,疯狂加群,各种打听有没有备战大厂的大佬,希望大佬带带我

其实也是找捷径的想法,结果自然是没有

学习是长期的事情,别人在关键时刻能给你指导就已经很感激了

你需要找到适合自己的路

项目经验

为什么 5 年左右,项目经验要占到 80%的比重?

因为面试官需要从项目经验中看到你的优势

如果学历、能力、经验都一般,也没有发表有质量的文章或做过开源项目时,你做过的项目可能就是最能挖掘你优势的地方

小伙伴:我做的项目都很普通,没啥亮点……

确实,大多数项目都是这样,但平常的项目里也有很多可以挖掘的地方

下面几个问题和你探讨一下

  • 你对当前项目的架构非常了解吗,其中的技术难点都吃透了吗?
  • 项目用到了哪些插件,这些插件的作用是什么?
  • 了解你的页面性能吗?如果让你优化它,你觉得有哪些方面可以去优化的
  • 项目打包后的体积有多少?如何让体积变得更小,如何让页面加载的更快?
  • 看过项目里其他人的代码吗?他们有哪些难点或写的好的地方
  • 如果觉得你的项目没有难点,让你成为项目的负责人,你能做的更好吗?

世界上最好的项目,就是现在在做的项目

所以,建议简历第一条,就写个人优势,这是面试官最想看到,也是最能吸引眼球的东西

写技能? 我会 vue、会 react、会 webpack
写做过多少个项目? pc、h5、小程序、跨端的混合开发都做过
抱歉,这些大家都会……

系统性学习

direct.png

特别是转行做前端的朋友,可以解决大片的知识盲区

  • 可以同时满足知识深度与广度的要求
  • 钻研能力,是从深挖一个个小的知识点积累起来的
  • 学以致用,提高解决实际问题的能力
  • 做好笔记,自己总结的才是最好的

个人学习路线

内容 时间
前端知识体系 前后花了 3 个月,读了超过 300 篇文章
练习手写 js 半个月时间
算法 2 个月时间

前端知识体系

2021 年前端面试必读文章【超三百篇文章/赠复习导图】
写给初中级前端的高级进阶指南

练习手写 js

一个合格的中级前端工程师需要掌握的 28 个 JavaScript 技巧
最全的手写 JS 面试题

算法必不可少

算法题 95% 的算法都是基于这 6 种算法思想
前端该如何准备数据结构和算法?
目前我看到的最系统的算法题库

算法是我最痛苦,也是最纠结的地方。花费时间长,效果还很差
但是在两个月的算法练习中,我第一次体会到:编程不仅仅是技术,还是艺术

收获

通过系统性的学习,到最后会发现那些大厂的面试题,你整理的笔记上几乎都有(这是我写了 10w 字笔记后最大的感触)

借助外力克服惰性

物理惰性是指:人体由静止到运动必须克服惯性

外力让你从静止开始动起来

为什么要借助外力?

说说我的经历,刚开始备战大厂的时候,我老想着找个备战大厂的群,找几个大佬带带我
结果自然是找不到,最后没办法,硬着头皮自己建了群,当了群主……

face.jpg

不出意外的话,意外很快就来了,很快这个群就变成了聊天群,再然后就死掉了

有心栽花花不发 无心插柳柳成荫

但是这个群却意外成为了我的外力,每每学不动的时候,就打开这个群看几眼,咬咬牙,继续造

如果自己都不做到,又怎么要求别人做到

2020 年 12 月 10 日到 2021 年 4 月, 群只存活了 5 个月

微信图片_20220906145739.jpg

微信图片_20220906225401.jpg

特别是刚起步的时候,一定要找到自己的外力,逼自己坚持下去

做自己不敢做的事

  • 比如建一个学历群,成为群主
  • 比如成为一个项目或小团队的负责人,带领大家学习
  • 比如坚持写学习笔记
  • 比如发一篇技术文章
  • 比如给大家做一次技术分享

把自己抛出去,丢人的事我来,有压力的事我抗住,做自己不敢做的事

让这些“丢人”的事,变成自己的外力,逼自己前进

你不妨大胆一些,再大胆一些

从工作中谋求成长

并不是学的东西越多,成长越快

所学的东西,要能落地,运用到实际项目中才是最关键的

举几个我学到,并用到项目中的小知识点

  • 看了webworker的文章知道前端可以开启多线程,解决了项目中前端 10w 条数据的运算问题
  • 看了如何分析页面的内存,通过分析JS Heap图去优化代码,解决了客户电脑配置低,页面经常崩溃的问题
  • 通过React Fiber才知道了 requestIdleCallback 这个 api,在做前端监控项目时,可以利用在浏览器空闲的时候上报性能数据

后面的路

还是选择工作中可能会用到的方向,或者说可以落地的方向去研究

提供几个方向,作为参考:

工程化,是个人最感兴趣,也是相对容易上手的方向

打造自己的组件库? 自定义脚手架? 前端监控? 前端性能与内存分析与优化方案?
自定义 loader、plugin、babel 或 npm 插件? 代码检查规范 eslint? 全局埋点等等

低代码,公司有自研的代码平台,但是性能与扩展性较差

市面的低代码有哪些,为啥大厂都在自己的低代码发力?
如何基于公司的业务,打造自己的低代码平台?
看看阿里开源的 LowCodeEngine 低代码引擎和成熟的画布插件?
其中的性能问题如何解决,如何让后端渲染?

可视化,echarts、d3.js、canvas

还没有做过可视化的东西,还是个黑盒,目前组件库有个需求,要搞个关系图谱,玩一玩 d3?

源码解读,暂时还是 vue 为主,react 为辅

中小型公司大多是 vue 为主,react 为辅;而大厂都是 react 为主,vue 为辅,好气……

建议:react 和 vue 要对比的去看,去学习,没有谁好谁坏之分

结语

一句话:多写,多练习

看十篇讲 webpack 的文章,可能不如跟着手写一个简易的 webpack 来的透彻

以上所有观点仅是我个人的一些经验之谈,仅供参考,欢迎一起学习交流

10w 字笔记推荐

「历时 8 个月」10 万字前端知识体系总结(基础知识篇)

「历时 8 个月」10 万字前端知识体系总结(算法篇)

「历时 8 个月」10 万字前端知识体系总结(工程化篇)

「历时 8 个月」10 万字前端知识体系总结(前端框架+浏览器原理篇)