小齐说:面试
这篇文章来自读者冰红茶,他刚结束了秋招,拿了不少家 offer。算法
和他聊完以后,我以为他的备考思路也彻底适用于美国的面试,只是分值要调整一下,可是具体每一块的内容,地球村通用。因此分享给你们一块儿学习一下~sql
长达一年的实习、秋招之路终于落下了尾声,我最终收获了快手、百度、网易等互联网大厂的开发岗offer。缓存
大学我学的专业是通讯工程,也算是半个非科班出身,一路走就像是打怪升级的过程,不断地纠错尝试,一点经验分享给准备参加秋招的你。网络
大学时候每次期末考试咱们都会等老师划重点,目的就是想确认考试的范围和形式以及各部分出题的分值,作到内心有数、合理分配时间。并发
我认为其实秋招面试的本质和平时期末考试是一回事。秋招考什么(考试范围)、秋招有哪些题型(考试形式)、以及各部分出题分值(考试各部分比重)?高并发
我本身经常把秋招面试考察范围划分为三个部分,算法题、基础知识题、过硬的项目或实习经历。工具
以我熟悉的开发岗位来讲,对于大厂面试,我以为算法题占了40分。学习
这个分数很微妙,你会发现再须要20分就能够及格了,能勉强经过此次考试。可是若是40分彻底丢掉那么靠其余方面力挽狂澜就会很是吃力。测试
特别是对于字节跳动这种业界内对算法题出了名重视的公司,撕出算法题是对话的基础。
我我的也认为考察算法题,是一个相对比较公平的考察形式。没有撕出算法题不表明你没有能力,可是能撕出算法题起码能证实你要么是天赋型选手,要么是努力型选手(刷了够多的题,作了准备),面试官筛选人的目的已经达到了。
若是是线下面试,会直接给你一张白纸,写伪代码或者是所有。
今年由于疫情影响不少面试搬到了线上,我以为之后线上面试会变得愈来愈常见。国内不少大厂用的都是牛客网做为平台,整个屏幕分为两块,一块是代码考察区,一块是和面试官视频交流区。面试官给出题目后,你写代码的过程会实时在面试官屏幕前同步,这个就要求你想清楚了再动手。
通常来讲整个考察过程是这样的,从面试官给出题目起。
首先,看了题目以后你先不要着急动手,进行短暂思考后。务必要和面试官进行交流,获得面试官的赞成后再动手写代码。
常见的交流内容就是你解题思路的时间复杂度、空间复杂度,获得面试官首肯以后就能够进行代码书写。最后一步,代码写完后可能会让你跑测试用例看看是否经过,或者跟面试官解释你是如何组织代码的。
算法题的考察,除了考察你的写题能力外,更多的也是展现你的沟通表达能力,一个题目每每只是提供了一个大概。你应当去提问,某些极端边界条件下题目的输出会是什么?或者根据面试官的提示,去改进本身解题思路的时间、空间复杂度。
这部分我参考了齐姐以前的几篇文章,对我帮助很是大:
点击这里👉:从 LRU Cache 带你看面试的本质
点击这里👉:有关 HashMap 面试会问的一切
点击这里👉:这才是面试官想听的:详解「递归」正确的打开方式
我我的感受,对于秋招来讲,算法题通常在力扣刷200道左右的简单、中等题目就足够了。
刷题的顺序我以为能够先从《剑指offer》入手,上面大概有六十道左右的经典算法题,并且教材的做者也从面试官角度指出了咱们可能会犯的错误和一些沟通的思路,一道算法题就是一个案例。若是历来没有接触过算法题的同窗,这里可能会花两个月左右的时间。
若是你能把这本书刷完,接下来我建议是去刷高频考点题目。
如何能获知什么是高频考点题目呢?
另外要多注意复盘和总结。一道题每每有多种解题思路,一种思路每每能够解多道题目。不少题目的解题思路是大同小异的,只要坚持练习,最后绝大多数题目你都能作到快速反应。练习和复盘是一体两面的,相辅相成的,你既要知晓各类各样的解题思路,也要加强动手能力。这是我力扣复盘时候对题目的一些分类收藏。
一开始有些同窗以为会很难,各类题目想不出来,我建议是直接看答案。只有你了解了足够多的解题思路以后才能有所输出,就像咱们作乘除以前,先要学点加减法同样。
具体基础知识要求,每一个岗位的侧重点会有所误差,以开发为例,常见的考察内容有:Linux、Mysql、Redis、计算机网络、操做系统、语言自己特性等。因为这部分问的问题因面试官而异,因此本身仍是要多准备,尽量的去覆盖。这部分每每回旋的余地比较大,只要你能把面试官的问题答个七八成,再加上算法题撕出来基本上就能经过本轮面试。
你学过计算机网络,可是并非全部问题都会问到,本身私下钻研怎么深刻都不过度。可是对于秋招来讲,你须要的是抓住核心考点。全部的考点前人都已经用血泪教训给你总结好了,牛客网上的面经专栏有大把的内容。你只须要关注其中高频的,有扩展性的考点就行。
面试时候,面试官每每抛出的问题有两种。
一种相对比较死板,好比讲一讲快速排序的原理,只要你对各个细节掌握的够清楚,能跟面试官讲明白,这题就算过了。
另外一种,是一些扩展类题目,好比很经典的从输入一个URL到出现页面这个过程发生了什么?
这个问题根本没有所谓的准确答案,只有相对符合面试官胃口的答案。好比我通常就是,先从宏观上讲整个过程发生了什么,细节一笔带过。而后再跟面试官交流,我以为哪块比较重要,能够展开聊一聊,或者您以为哪块比较重要,我能够跟您展开说一说。面试是交流的过程,你要注意面试官的反应,看看是否要继续仍是点到为止。不要本身像背做文同样,只顾背诵。一言以蔽之就是你要足够清晰的思路向面试官证实你确实懂这个东西,但讲多少,讲到什么程度要跟面试官交流。
针对不一样的基础问题,能够上网搜不一样类型的回答,而后本身总结一套答题的模板。这个不是让你跟面试官照本宣科,而是做为你面试答题的基本依据。咱们面试时候其实都或多或少有点紧张是正常的,你内心有个大纲,阐述起来时候清晰不少。
有几个常见的面试技巧,一个是若是题目你一点都不懂,千万别和面试官含含糊糊。这会让面试官觉得你懂一点,可是讲不清楚或者不懂装懂,这很减分。你能够大方的说,很差意思,这一块我并不太了解。面试官通常来讲就会换个话题,他没有必要跟你谈论一些你不懂的问题。面试官目的就是考察你知识的广度和深度。
另外就是,不少同窗常见误区是觉得,简历上写的东西越多越好,这实际上是个误区。面试官面试你以前基本上就是花几分钟看你的简历,提问的基本上就是简历上的内容,若是你写了不少精通某某,一问三不知就很减分了。
要学会引导面试官去问你颇有把握、很熟悉的内容。
面试时间是有限的,面试官不可能全部的知识点都问一遍。因此有限的时间里面,谈论你会的,基本上就能给面试官留下很好的印象。好比我我的就对Mysql这块了解的不少。因此每次自我介绍的时候,我都会故意说,我我的对Mysql、计算机网络方面了解的相对比较多一些,主动给面试官一些引导。
或者在聊别的话题时候,适当时候你也能够跟面试官说哪块我用的比较多,天然而然的让面试官跟着你的思路走。
我是强烈建议你们秋招以前去找一份与岗位相关的实习,若是能拿到大厂实习,秋招时候就是如虎添翼。虽然对于校招生来讲,在面试官眼里都是白纸一张,可是若是你具有一些实践经验,绝对是加分项,团队培养你和融合成本就低不少。
基本上不少面试官都会主动的问你的项目或者实习经历,无非是问这些问题:实习时候你作了什么?用了什么技术?解决了什么样的问题?你以为你解决的最难的问题是什么?面试官问这些问题的目的就是发掘你的知识深度怎么样,好比最难的问题,你遇到的究竟是什么样的问题?能够看出你知识接触的深度。你是怎么解决的?考察你解决问题的思路手段。
在面对实习经历和项目的考察时候。我建议是本身要想明白本身项目中的亮点是什么?
本身先作一个提炼,好比说我以为我项目中两点一是引入了缓存下降响应时间,二是作了高并发的处理…最好这些亮点是和你的基础知识紧密结合的,并且要想清楚你为何要这么作。好比你说引入了缓存下降响应耗时,那面试官就能够问Redis的相关基础知识,或者问你为何要引入换成在这个项目里,用别的手段能够吗?引入缓存会有什么危害呢?如何解决带来的负面效应呢?这些东西都是咱们平常实践时候也应该思考的东西。就是工具你不只知道怎么用,还要知道为何这么用?知其然,也只因此然。
有些同窗会说,确实没有过硬的项目经历或者实习经历怎么办。我建议是去Github上找点跟岗位相关项目作一作,改一改,看看能不能提炼出一点什么。其次,最后仍是没有的话,能够跟面试官如实的说,其实通常来讲面试官也不是要求非得有实习项目经历。可是你的基础知识就要准备扎实,由于面试官能跟你聊的就只有这些了。
以上内容只是从面试知识考察层面作了一些介绍。除此以外咱们还须要作的是,有良好的心态,准备好从刚开始面试时候的忐忑不安到后来的游刃有余,给本身犯错成长的机会。
其实准备面试不管校招仍是社招思路都大同小异,分值略微不一样,多在群里和你们交流、利用各类资源去学习,拿几个 offer 仍是没问题的~
好了,以上就是本文的全部内容了,若是你也有想和你们分享的经历和经验,欢迎到后台来找我,有稿费的那种~
我是小齐,纽约程序媛,咱们下期见!