25

写在前面的话

笔者从17年的2月份开始准备春招,其中遇到不少坑,也意识到自己走过的弯路。故写了这篇文章总结一番,本文适合主动学习的,对自己要学的课程不明确的,对面试有恐惧症的...等将来打算从事技术岗位的同学们。

正文开始

为什么要准备校招?社招不一样能够进入大公司吗?对于一些不懂校招这个概念的人来说,经常会问这个问题。同时,大公司的校招薪水一般比工作2年经验社招的人还高,为什么企业会给一个没经验的应届毕业生这么高的薪水?理由何在?理清这些问题之前,我们先来看看校招是一个什么概念?

校园招聘是企业直接从学校招聘各类各层次应届毕业生。校招每年时间比较固定,即春季校招(三四月份)和秋季秋招(九到十二月份)。在原则上,春季校招大部分岗位是面向大三与研二(研三毕业)的同学,对这部分的同学提供实习的岗位。少部分企业由于秋招签约率不高或者业务剧增,会针对大四与研三的同学进行补招。

而秋季秋招主要针对大四与研三的同学(这里以每年的九月份来分隔年级),对这部分同学提供的是毕业之后的正职工作。拿到秋招offer的同学,如确定入职需与用人单位签署三方协议,以保证双方的利益不受损失。

有校招需求的企业一般是发展规模较为成型的企业,不论是成熟运作的传统企业,或年轻但已然庞大的互联网公司。在较为成熟的企业管理下,分工细致,完善地各种福利补贴制度,以及专业的导师制培养人才的策略,这些因素无疑能带给应届生们更好的成长。

同时,应届生在校空闲时间多,能学的东西更多,工作之后业务繁多能真正挤出来自主学习的时间太少,计算机基础的课程篇幅过多,出来工作之后就没时间、没精力学了。

而这些计算机基础课程却是成为业界大牛的必经之路,没学这种基础知识,很多东西的底层原理我们是没办法摸透的,这也是为什么互联网BAT大厂重视计算机基础的一个原因。

基础扎实工作之后很多东西很快就可以上手,所以很多互联网大厂宁愿把招聘精力放在校招,而不是社招;其二,应届生作为新鲜血液一般还没有成家,固然能为公司做更大的贡献。

如何准备校招?

既然校招这么重要,那我们应该怎么准备校招呢?

要想在校招中取胜,笔者觉得有几个方面是比较重要的:视野+专注+方法论+心态

1.视野

视野的开阔指对一件事物认知的广度,要对业界有一定的了解,才能明确我们的求知方向;否则一味地蛮干,最后只会南辕北辙。举个例子:对于非一本学校的某些同学来说,可能都不知道校招是怎么一回事,身边的老师也没有跟同学们灌输这些思想,不关注技术社区的同学可能就不知道。导致的后果就是不清楚大厂注重的是哪方面的知识(大厂考察的知识一般来说对技术发展很有意义),水平停滞不前,最后毕业去了家不太理想的公司。

很多东西都是这样,身边的人不可能全部传授给你,需要你带着一份热情不断地去挖掘。我们可以在空闲的时间里,去各种技术社区以及一些问答平台上刷刷动态从而不断地开阔我们的视野,比如说:在知乎平台上我们可以看到某些前辈的回答,一般这种回答都具有建设性意义,有时候抛开一些现成的观念,去接受一些新观念何妨不是一件好事呢?

同时,我们可以在社交平台上结交一些应届生“大佬”,询问他们各种学习方法,一般“大佬”都会很热情的帮助你。混熟了以后,可以跟“大佬”交流下面试心得、学习心得等等的东西,不得不说与同类型的人交流是成长最快的一种方式。

2.专注

专注是指在技术方面投入的时间成本。我们都不是圣人,只有不断地去学习与训练才能更大程度地去提升自我。当我们对一件事物有热情时,我们都愿意把所有时间花在它上面。就如我们看上了一个漂亮的女生,对她产生好感了,我们会想尽一切办法去讨好她。

在技术方面也是这样的,对于我们不感兴趣的方向我们从不会主动地去学习,保持对技术的热情才能达到持续的产出。有一句话说的好:时间花在哪里,成就就在哪里。A同学在课后每天都花8小时专研技术,而B同学每天只在课堂上学习。很明显这两人的差距只会越来越大,放心地去努力吧,付出了肯定会有回报的,回报未到只是时候未到。

专注还指对某一领域的专注程度。我们应该对自己以后想从事的职位有一个大概的方向,从而对这个方向应具备的技能进行钻研。有时候看到部分同学既写前端代码,又写PHP后端代码,又写一点硬件底层C语言代码,精力太分散了到最后很难做到每样东西都精通。大厂对应届生的要求还不至于做到全栈工程师的程度,能做到熟悉一领域的开发已经很不错了,当然懂的越多是一个加分项(但非必备)。

反观大厂对应届生的要求是熟悉计算机专业的必修课,诸如:数据库原理、操作系统原理、数据结构与算法、计算机网络等,这类知识可能比较枯燥学起来没什么劲,但却是必备的,其能为以后工作发展铺路。当然每个岗位所要求的侧重点不同,但却百变不离其宗。对这种基础知识要学到哪种程度呢?

是不是考试考到80分以上就代表这门课掌握得不错呢?不是这样的,考试的考点是有局限性的,我们应该通过看一些巨献读物来全面学习。看完之后我们可以通过看别人的面试经历(后面简称“面经”)来检测自己是否掌握这些知识点。

对于不会的知识点,建议大家可以过一遍书本的内容,书本讲的内容一般比较详细。不建议通过搜索引擎查询这种与理论相关的内容,因为大部分搜出来的结果都是摘抄书本的文字。面试服务端开发时,经常会被问到数据库索引的底层实现原理。很多同学可能会问:“为什么要搞懂这些原理性的东西?我会怎么用不就行了吗?”。只懂使用API的人永远是搬运工,工程师最大的使命是去创造,研究原理的时候我们能了解到先人的设计初衷,从而能更快速地在线上出现性能问题的时候根据原理排查问题。

3.方法论

要想达成某个目标都有其特定的方法论,学习技术也不例外,掌握适当的学习方法才能事半功倍。
我们需要形成一个完整的知识体系,强烈建议大家读一些巨献读物,其讲的内容很详细,不会漏掉某些知识点。
读完一章节后建议大家可以做做笔记,坚持读完一本书你会发现受益匪浅,以下是一些巨献读物的推荐:

JavaScript

  • JavaScript高级程序设计(入门前端必读读物)
  • 你不知道的JavaScript系列(带你探索JavaScript的黑魔法)
  • JavaScript设计模式与开发实践(让你的代码锦上添花)

计算机网络

  • 图解HTTP(Web开发必会)
  • 计算机网络(第五版)作者:谢希仁

数据结构

  • 网易云课堂浙大的数据结构课程(推荐,基础视频,每节课的配套题目必须独立完成)
  • 大话数据结构(推荐,但是感觉不如浙大的视频讲解)
  • 算法4(推荐,书籍代码是Java语言,不影响理解)

算法

  • 剑指offer(看完之后你会发现面试会遇到原题)
  • 程序员代码面试指南(作者:左程云,里面讲的比剑指深入一点)
  • LeetCode(看完剑指可以进阶算法)

数据库:

  • 数据库概论(基础,重在了解概念)
  • MySQL必知必会
  • 高性能MySQL

在准备面试的时候可以上牛客网的讨论区看看面经,了解一下面试可能会被问到的问题,对于不会的问题要查漏补缺。当你看完好几篇面经你会发现面试很多问题都是重复的,也就是说这些问题是必须掌握的。同时,可以不断地向更深的层次学习,比如看看源码的实现等等,这些深层次的东西是面试的加分项。

平时的积累也很重要,做项目或者学习知识点的时候可以把心得分享到博客上,一个好处是可以重新梳理知识点,在这个过程中你会对这些知识点印象更加深刻,同时也会给面试加分,面试官看了你的博客之后可以看出你是一个持续学习的人,这将会加大你面试的通过率。

另个好处是在分享的过程中,可以提升自身的表达能力,毕竟把事情讲清楚与心里懂事情是怎么回事是两码事,这也为之后公司的内部分享会奠定基础。

4.心态

在准备校招的过程中难免会遇到一些困难,比如:书本的内容看不懂,这时候可以从搜索引擎里搞清楚一些名词的意思,再把这些名词带入书本中反复地去理解。遇到困难的时候要保持一种愈战愈勇的心态,面试的过程也难免会失利,不要气馁。这时候的重点是把面试被问到不会的知识点搞清楚,争取下次被问到的时候能答上来。

关于简历

书写简历也是门学问,优秀的简历能在内推批次脱颖而出直通面试。

  • 能缩减的信息尽量缩减,比如一些专业必修课的课程就没有必要写上去
  • 个人信息一定要写全,如姓名,电话,邮箱,求职意向(加分项:持续产出的博客与github)
  • 项目介绍用一句话概述,着重点在于技术点的描述,建议用一些显著性的数字注明成果(经过xxx,性能提高了30%等)
  • 对于业务型的项目,不要把那些CURD的功能写出来(太low了千篇一律),这种项目在编码的时候要多思考,看看哪些卓越的技术点可以提炼出来
  • 获奖情况方面可以把一些有代表性的比赛及名次写进去,最好不超过3个

关于简历投递

简历投递有几个比较重要的阶段:提前批、正式批、补招。建议大家前期要广投各种企业,这能一定几率地增大面试的可能性。面试多了就有了面试的感觉,拿offer的几率会更大,后期我们能更好地选择offer。

1.提前批

无论是春招还是秋招,提前批都会在校招正式开始前的1~2个月开始内推,一般互联网大厂都有提前批。提前批一般需要在职人员内推,有师兄师姐在名企可以让其帮忙推荐。没有的话也无需担心,一旦有内推在牛客网讨论区总会出现各种信息,把简历投到帖子的邮箱里也可以进行内推。在提前批里只要你的简历通过了筛选就能直通面试了,这就是为什么要提前准备校招。

2.正式批

正式批需要在校园招聘的官网上申请,一般来说会比提前批多一轮线上或线下的笔试,只有笔试过了才能有面试的资格。校招招聘信息可以在梧桐果查看,里面还有宣讲会一栏,错过了提前批的同学可以找到符合自己需求的公司的宣讲会时间,某些公司在宣讲会结束后会进行当场的笔试,一般现场笔试通过后,第二天会进行现场的面试。

3.补招

由于某些“收割机”的弃坑,这时候某些岗位可能还会有几个空缺的名额。招聘的形式与提前批相似,也通过员工内部推荐,简历通过后会进行面试。

关于实习

最后说说找实习的事情,建议大家提前一年准备春招,这样拼进互联网知名大厂(百度、阿里、腾讯、滴滴、美团、京东等等)的可能性很大。实习的工作地点无非太在意,实习最重要的是镀金,有互联网知名大厂的实习经历,在秋招找工作是非常吃香的。

因为实习经历绝大多数情况下决定了你的能力,HR在筛简历时就会认为你既然能被上一家大厂所认可,你的能力肯定不会差到哪里去,就会让你无需笔试直通面试,这样在秋招提前批拿到offer的几率更大!

(注:原创内容,转载请联系获取授权。)

校招面经

以下是我的校招面经:

网易游戏雷火事业群

  • 块级元素和行内元素的区别
  • 行内块级元素是什么东西?
  • HTML语义化的理解和作用
  • 盒子模型
  • 元素的水平和垂直居中
  • 三栏布局,左右定宽,中间自适应
  • JavaScript的基本数据类型,0 == null吗?为什么?
  • AJAX实现原理
  • 跨域怎么做
  • 移动端怎么做优化?动画如何做加速?
  • 如何做首屏加速的?
  • 移动端适配的3种方案
  • 单页应用的路由内部原理怎么做的?自己实现过SPA吗?
  • 了解过canvas和WebGL吗?
  • 如果让你做IE7兼容,你怎么做?
  • 我们网易游戏要做一个交互性很强的移动端界面,你有什么思路吗?

有赞

  • 介绍项目,技术难点
  • 性能优化
  • 图片懒加载怎么做的(getBoundingClientRect)
  • 懒加载的滚动如何做优化(函数节流)
  • cookie除了key与value还有哪些参数
  • 做过后端吧?如何判断区分一个用户的身份?
  • session的生成规则?sessionid的生成规则?

CVTE

  • 介绍项目
  • 项目用REM布局吧?REM如何做自适应的?
  • 知道哪5种设计模式吗?
  • Vue双向绑定的原理
  • AMD是什么?解决什么问题?了解AMD,CMD,UMD吗?AMD与CMD的区别?啥叫依赖前置?
  • BootStrap的栅格系统实现原理?
  • 什么是原型链
  • 三栏布局,左右定宽,中间自适应(说了5种)
  • 性能优化
  • 为什么选择做前端
  • 介绍项目
  • 为什么要用Vue框架?他问有比较其他框架吗?
  • 题1(说递归前要先判断是否是引用类型,是的话直接return x1 == x2,个人觉得意义不大)
    //对比两个参数是否相等,
    
    diff(1, 1) // true
    diff(1, '1') // false
    diff({name: 'cvte'}, {name:'cvte'}) // true
    diff({name: 'cvte'}, {name:'seewo'}) //false
    
    function diff(){
     
    }
  • 题2(实现了功能,他说setTimeout有延迟,要根据播放器的时间来计算,坑,题目根本没有播放器这个变量)
    // 设计一个数据结构来存储  歌词和对应的时间,
    // 并实现一个function run ,执行run之后,在对应的时间输出对应的歌词
  • setTimeout执行机制(eventLoop)
  • 接下来将会学习哪方面(我说刷算法,因为算法这东西工作后就学不到了)
  • 了解WEB安全吗(XSS、CSRF)
  • 项目中有针对WEB安全做防御吗?
  • 最近有面哪些公司?面到哪个阶段了?有其他公司的offer吗?
  • 毕业后最期望加入哪些企业?为什么?
  • 对上班时间的看法
  • 说说你家庭的情况?性格,职业,对你的影响
  • 说说你未来的人生规划
  • 你赚钱是为了什么?
  • 说说对你最有影响力的人
  • 什么情况下会拒绝CVTE的offer
  • 什么情况下会离开CVTE
  • 描述一下你最近觉得比较压抑的事情?你是如何调整自己的状态的
  • 对上两面给自己的表现打分,为什么打这个分?你觉得自己哪些地方做的不够好
  • 说说你实习的经历。为什么会离开实习那家公司。
  • 你期望的毕业入职薪资是多少?为什么?
  • 你目前会关注哪些企业?
  • 你对工作地点有什么看法?

百度-网页搜索部

  • 自我介绍
  • 项目都用Vue是吧,说说Vue的MVVM如何交互的?
  • 知道Vue监测变量如何实现的吗?
  • VueRouter用哪些API实现的?改变hash参数会引起视图的更新吗?
  • 说说你项目中实现的Dialog组件?提供了哪些API?如何设计这些API的?
  • 用过AJAX吧?说说AJAX是干什么用的?如何实现AJAX?
  • 说说你了解的垃圾回收机制
  • 绑定事件有哪几种方式?addEventListener有哪些参数?冒泡跟捕获有什么区别?
  • 来道算法题吧,在一个数组中求连续最大的累加和
  • 居中可以使用哪几个属性?不定宽度与定宽度如何居中?
  • position有哪些属性,都是何意思?
  • 啥是闭包?用来干嘛的?
  • CSS有了解过如何做动画吗?animation有哪些参数?
  • HTTP状态码
  • HTTP缓存
  • Git常用操作?mergerebase有什么区别?
  • 了解过linux吗?
  • 看你是广东人啊,能接受到京城工作吗?我说,听说你们百度深圳也有研发中心,能帮我调配到深圳吗?他说可以。
  • 跨域
  • 数据库有哪些引擎
  • 数据库如何实现回滚
  • HTTP缓存
  • 平时如何学习Vue底层原理的
  • 说一种你觉得牛逼的设计模式
  • 知道Promise是用来干嘛的吗?Promise底层如何实现的?为什么要用setTimeout去模拟

京东

  • 为什么选前端?
  • 介绍一个你觉得做的最好的项目
  • 在做项目遇到过什么问题
  • 怎么解决click 300ms的问题
  • fastclick内部实现
  • 1px border的问题?为什么会产生?怎么解决?还有什么解决方案
  • touch有哪些事件?tap是原生事件吗?
  • HTTP状态码
  • 304缓存
  • eTag跟哪个字段一起用?
  • 闭包的定义与作用
  • 闭包会产生什么问题?我说内存泄露,他问还有吗
  • 原生Ajax的过程
  • readyState有哪几种值,分别代表什么
  • es6如何发异步请求? fetch与ajax有啥区别
  • Promise与setTimeout哪个先执行?为什么
  • 性能优化方式
  • 跨域有哪些方式?window.name有什么问题?
  • Get与Post有啥区别?哪个更快?
  • 不定宽高3种垂直水平居中。
  • 盒子模型
  • position取值,啥是stickty

网易游戏互娱事业群

  • 两个栈实现一个队列
  • 快排思想,手写快排
  • 数组里有N个偶数个相同的数,只有一个奇数个相同的数,找出这个数
  • 数组中的项是1-100连续的数,把任意一个数变为-1,找出这个数
  • 有三个柜子,每个抽屉都有两个球,第一个抽屉是2个黑球;第二个抽屉是2个白球;第三个是1个白球和1个黑球。求一个抽屉拿到黑球的情况下,另一个球是白球的概率
  • 假设一对夫妻生小孩的观念是这样的,如果第一次生到的是男孩,则不继续生了;如果第二次生到的是女孩,继续生到有男孩为止。求世界男女比例
  • 什么是原型链
  • 看代码说输出结果,并说原因。
    var F = function () {}
    var f = new F()
    console.log(f.__proto__)
    console.log(f.__proto__.__proto__)
    console.log(f.__proto__.__proto__.__proto__)
  • 说说有哪些请求方法,越多越好
  • GET与POST有啥区别
  • 介绍一个你觉得做的最好的项目
  • 为什么离开了实习的公司?
  • 为什么会投网易游戏的前端
  • 实习中各人员怎么分工的
  • 对于产品改动需求有遇到过吗?怎么解决这个问题?有收到成效吗?
  • 玩过什么游戏?这游戏怎么样的?你玩到哪个程度?充了多少钱?
  • 大学真的一点游戏都没玩吗?为什么?
  • 介绍一个你觉得最有难度的项目
  • 为什么用Vue不用其他框架
  • 用Vue的原因
  • 说说Vue的优势
  • 看过源码是吧?说说你对Vue哪种机制最熟悉?并说说其源码实现过程
  • 会测试岗位怎么看,如果调剂你到测试岗位,你愿意吗?
  • 对其他开发岗位怎么看?
  • 你期望年薪是多少?

微众银行

  • 除了前端方向,我们还有大数据和JAVA方向,你对哪个有意向?
  • Vue2有哪些新特性?双向绑定如何实现?
  • 项目有遇到什么问题?我说1px border在retina屏幕中会加粗,被打断了
  • 设计一个微信服务器与开发者的交互,判断是否有权限操作

迅雷

  • 介绍一个最近做的一个项目
  • 做项目的时候遇到过什么问题
  • 闭包,如何防止IE下的内存泄露
  • undefinednull的区别。举个用到undefinednull的例子
  • 介绍一下HTTP协议与HTTP Ruquest
  • HTTP缓存
  • Last-Modified的时间如何生成的
  • GET与POST的区别
  • 我说到POST会发送两次数据包的时候,反问我,你这个是从哪里看的?确定是官方说的?如果POST的数据量很少的时候呢?也会分两次发吗?为什么?
  • 我说到GET参数暴露到url上不安全,而POST更安全,他反问你不会装包吗?都能装到包为什么还安全?GET与POST的区别到底在哪里,为何这两者要区分开。如何防止数据被抓包
  • 我说到GET的传输数据包的体积与POST的不同,反问我,你确定GET只能传4K?有什么办法使GET能传输与POST一样大小的数据包容量?
  • HTTP2有什么新特性?多路复用中,HTTP2能兼容HTTP1.1的请求吗?比如:会请求多个域名服务器,有些请求是HTTP1的有些请求是HTTP2的?这样子合法吗?
  • 性能优化
  • 数组去重,说出哈希表法的时间复杂度与空间复杂度。hash表查找的过程时间复杂度是多少,为什么?
  • 如何防止非本地域名脚本的恶性注入?
  • 如何防范CSRF攻击
  • MVC、MVVM的交互流程
  • typeof有哪些返回值
  • 跨域方式
  • 继承的6种方法
  • cookie与Web Storge的区别?如何在IE下存储4M的数据
  • 说输出结果题1
    console.log(typeof ('a' - 1))
  • 说输出结果题2
    for (var i = 0;i < 3;i++) {
        setTimeout(function () {
            console.log(i++)
        }, 0)
        console.log(i)
    }
  • 说输出结果题3
    function bar() {
        return foo
        foo = 2
        function foo() {}
        var foo
        foo = 'string'
    }
    console.log(bar())
  • restful
  • 交换排序与堆排序的时间复杂度是多少
  • 1~100000个连续的数,随机取出两个数。不能用特定的数据结构,不能用数组方法找出这两个数

WPS

  • 介绍项目
  • 介绍BFPRT算法
  • null是什么?与undefined的区别
  • 说出结果,null > 0,null >= 0,null == 0。并说出原因
  • 写出匹配IP的正则表达式
  • 写出观察者模式,如果要删除某个依赖呢
  • new运算符做了什么?写出代码
  • new中的this是何时生成的
  • 实现一个类
  • 实现继承,如何处理重复生成了两个相同的实例属性
  • Object.create()内部做了什么?
  • 什么是函数?函数为什么可以当参数传递
  • 写一个开头不能连续出现abc的正则,不区分大小写
  • 线程与进程的区别
  • 磁盘读取速度为什么比内存读取速度慢
  • tcp三次握手
  • DNS如何找IP
  • HTTP借用了TCP的哪些优点
  • HTTP的Content-Type可能取的值?设置哪个值是以json的格式去传输
  • AJAX实现过程

美团

  • 如何做出五角星并居中
  • 使用Math.random()的点怎样才能等概率地落到等边三角形中
  • 实现这样一个功能:
    sum(2, 3) // 5
    sum(2)(3) // 5
  • 0.068如何转化成6.8%,这其中有什么坑?要怎么处理?
  • 说说JavaScript的数据类型
  • 如何判断是否是Array
  • 如何判断是NaN
  • 如何实现一个手表,如果是实现一个计秒器呢?
  • setTimeout发生在什么时刻,如何避免延迟?
  • 说说项目的难点以及遇到的问题
  • 说说v-model的实现原理
  • 如何实现v-model的单向绑定
  • 如何实现跨组件的通信,比如点击一个按钮,要使另一个组件中背景色改变
  • 如何实现跨页面的通信,需求同上
  • 如何实现跨域页面的通信,需求同上
  • 如何实现跨iframe且跨域页面的通信?
  • 字符串反转不能用辅助API
  • 两个有序数组合并成一个有序数组
  • 两个无序数组合并成一个有序数组的两种方式,并说说这两种方式最优的时间复杂度是多少,过程是如何求出来的?
  • http构成
  • https原理
  • 为啥要用非对称加密
  • 客户端是如何验证证书的合法性的?
  • 浏览器如何渲染界面
  • 什么是reflow与repaint?哪个性能消耗大
  • 如何避免reflow?
  • 看《JavaScript高级程序设计》的时候觉得哪块最难理解?讲一下
  • 讲解你项目中遇到的难点?
  • 你博客主要写什么内容?发个地址来看看
  • 对什么排序熟悉?我说快排。那来道非递归的快排吧
  • 看你博客写了TCP的内容,说说TCP与UDP的区别
  • TCP如何实现拥塞控制的?一发生网络堵塞,为什么把拥塞窗口重新设置为1。设置为1,这个发送流量不是很小了吗,这不是前后矛盾了吗?
  • 智力题:有N个物品,其中有一个是很轻的,有一个天平,用最少的次数找出这个轻的物品

富途

  • 说说原型
  • 以下代码中FfF.prototype与它们之间是什么关系
function F() {}
var f = new F()
  • f.constuctor是什么?f自身存在constuctor吗?为什么?
  • JavaScript如何实现继承
  • 继承之后的child.constuctor是什么值
  • console.log(f.prototype)的结果是什么
  • 两个升序的数组,判断一个数组中是否包含另一个数组的所有项?还有更优的解决方案吗?原来的时间复杂度是多少,现在的复杂度是多少?
  • 以下代码怎么输出?为什么会这样?如何改善?setTimeout为什么在最后输出?
for (var i = 0; i < 3; i++)
    setTimeout(function () {
        console.log(i)
    }, 0)
  • 说说HTTP缓存
  • 浏览器怎么判断是否是强缓存过期,整个过程是怎么样的?协商缓存具体整个过程?
  • 返回200状态码后,还会重新发送一次请求来获取文件吗?
  • Web安全
  • TCP与UDP有什么区别?
  • HTTP与HTTPS有啥区别?HTTPS握手过程?HTTPS都是怎么加密的?具体点哪里对称加密哪里非对称加密
  • 状态码301与302有啥区别?
  • 说说cookie与session
  • cookie与离线存储的区别
  • 求第n大的数?时间复杂度多少?
  • 雅虎的N条军规你知道吗?
  • 什么是跨域?怎么解决跨域问题?
  • 为什么要把资源文件放在另一个服务器中?除了服务器压力的问题呢?还有没有其他?

    1. 实现对cookie的分离,像淘宝cookie很多,把资源文件放在另一个域名中,可以减少主服务器的cookie
    2. 优化下载,HTTP协议对同一个域名的下载线程数有限制
    3. 实现了动静分离。当多个域名引入同一个静态资源时可以统一引用静态资源服务器
  • 如何破解验证码?
  • 有一堆猴子与一堆桃子,若这些猴子每人分3个桃子,最后剩下59个桃子。若每人分5个桃子,最后一个猴子分到<5个桃子,求有多少个猴子与桃子
  • 服务器突然很卡你会怎么排查?如果看日志看不出问题呢?如果看内存看不出问题呢
  • 怎么设计分页接口的参数?若以id为自增唯一索引,有什么缺陷?那用什么当唯一索引比较好?

    1. 使用uuid生成唯一值做索引
  • 一个Room类里面有Door,一个User类,只有主人才能开这个door。问这个开door的函数是放在Room类?还是放在User类?
  • C语言结构体题,补空写程序
  • 有什么爱好?
  • 形容下自己的性格
  • 说说你对富途的了解
  • 有哪些offer?拒了哪些offer?他们薪资是多少?

荔枝FM

  • 说出输入
function fn() {
    return function () {
        return inner
        var inner = 3
        inner = 'a'
        function inner() {}
    }
}
  • 写出Function.prototype.bind的polyfill
  • 输出z-index属性的元素排布,层叠上下文,还有什么属性可以使z-index生效
  • 有四个接口/a/b/c/d。找出一个相应时间最快的接口,并返回这个时间
  • 写个弹窗组件,有title,body,cancelText,confirmText参数。可以通过on来绑定回调,与及通过off解绑。
var dialog = new Dialog()
dialog.on('show', function () {
    console.log('showing')
})
dialog.on('hide', function () {
    console.log('hideing')
})

dialog.show() // showing
dialog.hide() // hideing
  • 两栏布局一边定宽一边自适应的多种方法
  • 介绍BFC
  • 如何解决跨域问题
  • 服务器如何监测是否跨域
  • 我不想每次进来都重新加载这个文件,有什么办法
  • Vue父子组件如何通信,跨级组件呢,不用Vuex呢?
  • 如何与后端协作?在后端没有做出接口的时候,怎么套数据?在线上有接口的时候,怎么套数据?

追一科技

  • 聊了1个半钟与技术项目相关的宏观问题
  • 如何实现微信电脑端登录的功能?
  • 一个猴子,一共有100根香蕉,每次最多能拿50根,回家有50m,每走1m需要消耗1根香蕉。问最多带多少根香蕉回家?

frehk
73 声望2 粉丝

To be a excellent man.