你们好,我是鱼皮,最近秋招快到了,我就想着给你们找一些优秀的程序员面经分享。但愿能够帮助准备求职的同窗更稳地上岸,同时帮助学编程的小伙伴们更好地明确学习路线和方法。php
今天要分享的呢,是一位 双非非科班 同窗小黑的励志故事,我也会补充一些我的见解,锦上添花。css
芜湖起飞!前端
面经已获得原做者受权vue
做者:牛客 Matthew_blacknode
你们好,我是小黑,双非非科班出身,大四下才开始自学计算机,毕业后在 4399 作前端,base 广州。react
说是作前端,其实我干的事情很是杂,常常要本身写后端接口和数据库,部门经理也打算让我走后端的路,因此满一年后,我打算找下家专一前端。jquery
鱼皮:双非非科班,大四才开始自学计算机,就找到了一份前端工做,说明确定是下了很大功夫的。而在工做以后,依然能够坚持本身的学习方向,有明确的目标,这点难能难得。webpack
校招简历能够不带项目或者实习,有的公司甚至 985 科班就能够进,但社招相对比较侧重技术和业务维度,若是你是业务巨人,也能够弥补技术的不足,考量的维度会比校招更多维。所以简历做为第一关,是相当重要的一环,在开始求职前先好好准备一份简历吧~git
鱼皮:对于名校同窗来讲,校招简历也许能够没项目或实习经历。但对于更多普通学校的同窗,建议你们多作项目、尽早去找实习,不然简历上根本没有亮点!分享下我本身的写简历技巧和模板,公众号【程序员鱼皮】后台回复 ”简历“ 获取。程序员
算法主要就是刷 LeetCode,能够不会写 Middle 题,但不能没有经常使用算法的思惟。面试季让本身保持算法的思惟很是重要,不止体如今写算法题上,在和面试官交流到一些源码思想的时候也能够帮助本身更流利地表达和讲述。
楼主的复习思路(菜鸡的思路)是好记性不如烂笔头,一道题 7 天以内必定要再写一次,才不会被遗忘曲线影响。对于一些较难理解的常考题目,建议多写几回记住思路。写题目时不必定要在一道题上死磕,作不出来就多看看相似题目,学学算法思想、理清思路再作,必定要找到作题的感受。
小黑同窗也提到了,好记性不如烂笔头,学算法必定要多写,不只写代码,还能够写题解,有助于本身强化记忆和复习。
关于我学算法的方法,能够阅读这篇文章:刷了 1000 多道算法题,一点心得
由于主要的求职目标是前端,因此复习前端为主,但也复习了部分后端的知识。
前端:计网( http、tcp、响应头请求头等),前端三剑客(HTML、CSS、JavaScript),Vue 框架(源码),Webpack(常见优化思路),微前端(架构及发展趋势),node(Koa 框架),设计模式(主要是 MVVM 和 MVC)。
后端:数据库,Redis,Linux 系统,Nginx 等。
再撸几十篇牛客面经,就万事俱备了。
复习的资料和时间安排以下:
四月的时候侧重基础,查漏补缺,直接找总结好的博客或者 Github 项目,推荐我男朋友(不是)的日记:
他的博客总结的很齐全,分类也很完善,复习基础的时候基本天天看个四五个小时,对于我这种基础不扎实的菜鸡很是友好,建议你们去看看。
五月份的复习侧重框架和业务优化,组织了几场模拟面试,发现本身对 Vue 彻底不熟练,因此把 Vue 文档和源码分析从头至尾 看了几遍 ,渐渐理解了一些面试官的问题。
对于业务优化方面,要总结好本身在平常业务遇到的坑和优化点,如优化了首屏加载。能够从多个维度去讲,组织语言的时候尽可能从各点出发,不要杂糅成一团,不然即便说对了也会让面试官以为你思路很乱。
五月的时间我基本用来复习框架和看一些进阶的常考点如 ES6 和 Webpack 等,而算法是贯穿整个求职周期的,因此在这个月也简单复习下。
Vue 源码分析:vue-js.com/learn-vue/
更细的知识点以前收藏了一篇大佬写的文章,上中篇基本涵盖了所有前端 Js 知识点,给有兴趣的同窗指路:
复习小点总结:
鱼皮认为这是一个很是好的复习路线。先打基础,再由浅入深地看框架,而且结合项目和工做实践去分析框架(中间件)的做用,在整个过程当中持续复习算法、阅读面经。
对于想学习前端的朋友,也推荐看看我梳理的 前端学习路线,帮助你快速了解前端的重点知识。
看一些好书能帮助理清一些枯燥的知识点,好比计网和 JS 一些概念性的东西(做用域等),这里推几本好书,在面试季前能够多翻翻,有助于复习理解:
《你所不知道的 JS 上中下卷》
推荐理由:挺不错的一本书,把js口语化,语言风格诙谐,示例更多,更易理解
《JavaScript 高级程序设计》(也叫红宝书)
推荐理由:入门级的教科书,新手菜鸡常备
《Tcp / Ip 协议簇》
推荐理由:被大佬安利的一本好书,把 Tcp 握手和挥手描述的特别细,若是你在面试时也能够这么描述,也许能博得面试官丢丢好感。
《深刻浅出 Node》
推荐理由:Node 文档仍是偏运用层面,有用到才去查,生啃有点吃力,因此能够经过这本书入门。
《深刻浅出 Webpack》(暂未开卷,打算近期启动)
《ES6 入门教程》
推荐理由:阮老师著做,看就完了,很少述
另外的,本身还找了一些课程来看,偏向计网的一些课程,如 B 站一些老师的网课,讲的也很不错。
指路:www.bilibili.com/video/BV1c4…
这几 P 帮我在百度二面讲网络的时候帮了很大的忙,面试官也比较满意这一点。
鱼皮:都是前端方向比较经典的书籍,在编程导航(www.code-nav.cn)能够免费下载。
接下来是我参与的几轮大厂面试的经验分享,包括腾讯、阿里、百度。
我当时正处于刚开始复习的阶段,虽然问的东西很是简单,但真的被虐的很惨 ==
自我介绍
介绍一个满意的项目,亮点(模块化思想)
react会吗(答不会,没学过)
其余技术栈(react,angularJs,jquery,vue3掌握状况)
vue掌握程度(答掌握工具,知悉其中一两个)
vuex介绍,工做原理(答得很差,复习的很少)
eventBus介绍,和vuex对比,优缺点
若是没有vuex,会有什么问题?(组件传值;避免频繁请求)
后台频繁请求有压力,有什么方法能够避免?
回答:1. 防抖,限流 2. 本地缓存或 sessionStorage
又问:不能用缓存保存有什么方法?答:Node 中间件,不接受请求
又问:没有 vuex 怎么缓存?答:那使用全局变量?
又问:必定要使用全局变量么? 答:否,但不知道还有啥。。。
组件传值方式(8 种,详见朝阳日记)
EventBus 介绍,使用业务场景,和 vuex 对比,优缺点,对 EventBus 熟悉吗?(答:不熟,这部分挺致命,抠得很细)
子组件如何修改父组件的值(经过 v-model 或者 $emit)
不能用 v-model(等同于问 v-model 实现原理)
v-model: 语法糖,本质是双向绑定,@input(onInput事件)
vue的双向绑定缺点,defineProperties缺点(顺便答了vue3优化)
vue3了解吗(不了解,还没开始学)为何是用.value读值
跨域常见缘由,同源策略做用,没有跨域会作什么(答了XSS攻击,CSRF攻击会更容易)
XSS 攻击和 CSRF 攻击
为何说CSRF攻击是利用网页利用浏览器信任?
答 cookie,面试官不满意,还有别的吗?答了同个域,回到跨域,同源信任,感受仍是不对
跨域方式(JSONP,设置请求头)
JSONP缺点
设置多个跨域请求头的方法(数组) 回到前端响应头是以什么样的形式(答了源,面试官说大致没错)
前端到后端请求的详细过程(301,302,304…)
options预检请求做用(白给…彻底不熟悉)
函数式编程与面向对象的区别,优缺点(再次白给…)
闭包是函数式编程吗?(是)
补充项目(多线程压缩gif,web worker)
避免二次请求,once函数(答了防抖和http2.0限制进程,面试官说没到后者那么深)
反问评价(面试官答他们技术栈用的是react,vue用的较少,评价候选人vue基础并不深,须要好好巩固,不过只有一年经验也足够,要好好沉淀)
面试结果可想而知,几天后显示挂了,收到感谢信。
鱼皮:能把面试的题目和本身的回答记录的那么详细清楚,说明是面试完马上复盘了,这是一个很好的习惯,面试完后必定要积极总结,每一轮的问题都有可能在以后的面试中再次遇到。
面试官居然就是个人内推人,仍是部门 Leader,感受气场很强,不过仍是专一撕逼,没被镇住。
自我介绍
疯狂问公司项目和业务,你遇到过的问题,怎么提高运营留存率balabala(撕了半小时业务)
压测过机器吗,大概读或者写是多少(答十几万,读写综合)
实现累充充值接口的思路,如何保证明时性?
看你项目写了 vue,问点 vue 吧(终于正常问了),v-if 和 v-show 的区别(就这,没了)
osi 七层模型(面试前没看,面试官嘲笑我是否是忘了)
webpack
公司架构如何?
公司数据库如何部署的?(分布式部署,一台作源机作映射)
反问(业务,架构)
整个面试体验不好,感受全程在套方案,不像面试,也许这就是大佬的面试吧。面试结束后,面试官和我说会再找一个候选人横向对比(指养鱼),6 月 7 日下午收到二面通知,于 6 月 8 日晚上二面。
在群里认识一个网盘小伙伴,说正好网盘在扩招,叫我去试试,不得不说,百度的招聘系统虽然不是很 nice(常常被一些 hr 实习生乱推),但面试体验是很是好的,和面试官也聊得很来,点个赞!
自我介绍
在学校自学了什么课程?数据结构讲几个?栈和队列的区别
css 垂直居中
flex 布局
grid 布局
移动端布局,移动端适配
介绍下 ES6(自嗨了十几分钟,讲了weakMap weakSet,promise等等)
promise 源码介绍,面试官很自豪的说其实我写过
学习方式,看什么书(balabala),红宝书好看吗,讲下感觉
项目难题
文件断点续传思路
node、koa 框架,开始撕业务
反问
一面聊的比较随心,面试官对个人项目比较感兴趣,也和我沟通了一些业务,面试体验挺好,更像技术交流而不是面试。
鱼皮:这轮面试就是典型的一面风格,侧重基础知识的考察,也会问一些业务场景问题,因此基础仍是要打好。
看了别的小伙伴的面经,觉得二面偏业务,没想到被背刺了(哭哭)。
自我介绍
状态码 304怎么作 Cache-control有几个属性?
tcp与udp区别
tcp如何保证数据稳定?(讲了三次握手,滑动窗口,慢开始,拥塞控制,超时重传,快重传)
cdn原理,cdn回源怎么作(一脸懵逼,由于cdn我司分给了运维层作)
扫码登陆怎么作,手机端和PC端都要创建长链接吗?
sso单点登陆
小程序作过吗(大学时作过),和h5区别在哪里,为何没有dom操做,js加载和页面同时进行吗?
webpack 介绍下tree-shaking css-treeshaking plugin和loader区别,手写过plugin吗?
进程与线程区别,线程间通讯方式
流的概念,node stream流
如何用node读取20g文件
node和php的区别
vue-if与v-show
vue的模板渲染(源码)
父子组件的挂载
公司项目亮点(答了前端共享进程池)
什么时候能来上班?对新公司有什么期待?
反问环节
毫无疑问,这一仗被打的遍体鳞伤,虽然二面过了,可是一些原理性的东西面试官挖的很深,业务场景题也没少问,看来仍是要好好读术~
面试的时候环境很嘈杂,有几回没听清面试官讲了什么,当时家里网络也不是很稳定,但总归聊的还行,涉及一些开放性的论述题目,这个自由发挥,合理真实便可。
自我介绍
描述下你的优缺点
描述下你作过最难的项目思路
为何想跳槽?
技术栈不一样,有想太重构吗?难点在哪?
对本身的团队定位
遇到的业务沟通问题有什么解决方案
假如你要从百度离开,你想获得什么技能
职业规划
理想的新公司资源
如何造成自有体系的业务方法论
对百度网盘产品有什么使用建议?
对加班的见解
反问(部门架构,技术分享周期,带团队的方法)
和部门经理聊了会,发现部门经理是比较看重我的职业发展的,整个部门是偏技术交流多一点,技术氛围很是浓厚,用人也会如千里马,此刻个人心只想为百度跳动。
主要是了解一些我的资料、年薪待遇,以及去北京的意向等等,比较常规。
6 月 7 日晚上,收到了百度 offer call,同期还有阿里在面因此 argue 了下薪资,大几率是去北京百度了(乡下人进城),小菜鸡的第一次社招之旅到此画上句号。分享好运,祝各位秋招顺利!
以上就是小黑同窗的分享,双非非科班,自学半年找到前端 4399 公司工做,工做 1 年就获得了多家大厂的面试机会,而且顺利拿到百度 offer。这些经历看似行云流水,但从他的面经以及我和他后续的交流中,我发现小黑有不少优秀的特质,好比:
虽然进大厂也讲究天时地利人和,但正如我所说的,运气也是实力的一部分,小黑同窗正是经过努力才一步步走到风口浪尖,而后顺势而为、主动出击,才拿到了使人心动的 offer。瑞思拜!
最后再送你们一些 帮助我拿到大厂 offer 的学习资料:
欢迎阅读 我从 0 自学进入腾讯的编程学习、求职、考证、写书经历,再也不迷茫!
我是鱼皮,以为本文不错的话,但愿朋友们能 点赞 支持下 ❤️