秋招的经验分享

前言

楼主双非本,秋招运气好运气好拿了几个大厂的offer,回馈牛客和各位牛友分享一些自己的看法,希望能够有所帮助!

关于项目

​ 项目是自我介绍以及被提问的过程容易反复提及的点,其实面试官也知道校招生的项目都是经不起推敲的,不会一直怼着你(kpi和压力面另说,后面会讲)。面试官问项目的主体原因,还是想要找到一个技术的切入点,和你进行一下深入的探讨,因为相比较于空泛的探讨基础知识,比如计算机网络,操作系统,大部分面试官会更喜欢在面试中探讨离他工作比较近的东西,比如某某功能的实现是怎么考虑的,为什么用选用这样的技术栈之类的。比较经典的提问就是:
做项目过程当中有哪些点做的好?
做项目过程当中有哪些困难?
其实都是想让你详细说说项目当中你最熟悉的一部分,然后和你探讨这一部分,来摸索你的技术边界

所以面对项目的探讨,个人有几个小建议:

  1. 心态放平,就是探讨技术,之后的工作当中会有无数次这样的场景(楼主有朋友被问到项目就发怵)

  2. 做项目不一定要做全,但一定要做精;

    解释一下这句话:对于大部分没有实习经历的牛友来说,项目多是个人项目。楼主认为在这些个人项目当中,再细分两类:

    1. 为了面试而准备的项目:如果只是作为面试的时候和面试官探讨的项目,不需要做的很大很全,找一些能做的稍微深入的点做深入,考虑几个实现方案,为什么选择现在这个方案,现在的方案有什么优劣势等等,其他的点随便做甚至不做都可以。把每个功能点都实现出来但是每个都是CRUD,没一个能打的,那也很难和面试官有所探讨。
    2. 之前的课设拿过来当项目:这样的项目往往功能点很全面,但没有东西可以挖掘,需要做的点就是找一个功能点,重构它或者重新考量它,在这个点做出自己的深度,作为面试的技术点和面试官探讨。
  3. 项目的亮点不需要很多,一两个点足够讨论60分钟了,楼主经常和面试官一个点讨论30分钟,都是从点讨论开始铺开,然后讨论其他的可行方案,面试官如果有心还会探讨到与之相关联的基础知识

关于基础知识(大家统称的八股文)

​ 看牛友们都喜欢管基础知识叫八股文,虽然知道大家都有调侃的意思,但个人其实并不认可这样的叫法,因为这容易导致新人牛友忽略了基础知识的重要性,觉得就像是真“八股文”一样,背一背就能够应付过去。以楼主的经验,基础知识绝对不是背一背就能糊弄过去的,尤其是比较好的团队,更会看重这些基础知识的掌握程度。

​ 举个栗子:

​ 当被问及输入"www.xxx.com"到浏览器展示界面,会经历什么?

​ 常见的答案会有:

  • DNS 解析:将域名解析成 IP 地址
  • TCP 连接:TCP 三次握手
  • 发送 HTTP 请求
  • 服务器处理请求并返回 HTTP 报文
  • 浏览器解析渲染页面
  • 断开连接:TCP 四次挥手

这样的答案不能说不对,只能说真的很”八股“,但凡遇到个深入一点问的,就容易被问倒,例如问到

DNS怎么解析?有什么方式,为什么有这样不同的方式?

得到IP地址之后,怎么找到主机?

主机的ip是内网的ip,不能在公网上跑,怎么办?


这其实只是一个例子,目的是想告诉牛友们,基础知识不是零散的知识点,背一背就可以的。每一个领域的知识都是一个集中的整体,时间允许的情况下,需要的是系统的学习和整理,有自己的理解,面对这些问题才能游刃有余。且这些基础知识,真的是作为程序员的基本素养,作为一个互联网行业的从业者,连网络怎么运转的都讲不清,连操作系统怎么运转都道不明,那么所有学到的上层技术都是空中楼阁。

楼主去年的十二月有幸受一位牛客上的大佬指导,重视基础知识的学习,重新回头看计算机网络,操作系统,Java虚拟机,MySQL存储引擎等一系列的知识,才将基础知识一点点补齐,虽然这些知识在面试时不一定会问到,甚至问项目花的时间多的时候不会被问到,但是这些都是工作之后受用无穷的。

所以个人对于基础知识,有以下几个小建议:

  1. 时间允许的情况下:能够系统的学习是最好的,注意不要钻牛角尖,有些知识很深一时半会理解不了就跳过,注意好时间的分配
  2. 时间不允许的情况下:对于之前的面试经历,复盘一下一些被问倒的知识,查漏补缺,当补起来的知识多了,就可以去考虑联系这些知识,去形成自己的体系

关于算法

​ 学习算法总体上分为两个境界:

  • 足够应付面试的手撕
  • 足够应付笔试的题目

楼主算法并不突出,应付面试的手撕还可以,笔试的题目拿不到很高的成绩,就不误人子弟了,分享一些面试手撕的经验


面试的手撕

通常面试的手撕分两种:

  1. 常规的leetcode题,多是原题。简单的有反转单链表,中等的有全排列,topK之类的,都是很常规的题型

    可以通过日常的刷刷leetcode熟悉,还是要注意系统的,分门别类的刷,比如单链表,二叉树,DFS,BFS,回溯,动归等等,刷了题之后总结总结题型,切忌不加思索的一股脑刷题。

    可以推荐一个公众号:labuladong,虽然有些争议但是就总结上来讲,东哥是最让我受用的

  2. 公司自拟的题目,以字节为代表。字节很喜欢出自己的题目,楼主秋招字节5面,面面撕算法,多是自主命题,腾讯的面试也会有自主命题。

    但其实自主命题就是将基础问题,套壳之后给你做,将题目理解之后,底层的逻辑无非也就是DFS,BFS,回溯,动归等等,将这些知识理解的透彻,面对这些就问题不大

注:图论的算法容易被大家忽略,但其实像并查集,单源最短路,多源最短路之类的还是要会的,尤其是并查集

笔试的题目

笔试的题目就比较玄学了,看公司和场次,同一公司的不同场次的笔试难度可能天差地别,题目涉及的知识点也会变得很广,从基础的算法到KMP到有限状态机到...,楼主没有什么ACM经验,算法的学习也不深入,做起笔试题属实有点捉襟见肘,通常5分的笔试题,得分都是2.5以下的,就没有什么好分享的了。硬要说一点的话就是回溯可以骗到一些分,因为本质是穷举,但是很容易超时

关于leetcode

楼主本人的经验,分类别的刷题,可以先从二叉树刷起,刷题之后多思考,多融会贯通,楼主觉得200题左右就差不多可以应付大多数的面试手撕了(前提是有思考,而不是一味地刷),楼主后面会打打周赛,其实就和做笔试题差不多,找找感觉。

推荐路线:

leetbook 二叉树

leetbook xxx(选自己想学的)

剑指offer 整本(有一些不太常见,可以不钻牛角尖)

leetcode 编号1-100

再次提醒:注意总结和思考!!!

关于面试

首先认清一点,面试偶然性很大,一次面试通过不代表你行了,一次面试不通过也不代表你不行了

转载半佛仙人的话:

面试官可能今天心情不好,把你刷了

面试官可能今天心情太好,把你刷了助助兴

面试官可能觉得你长得像ta初恋,让你过了

面试官可能觉得你长得像ta初恋,把你刷了

面试被刷没什么,面试过了也不代表什么,所以摆正心态是第一位,自己几斤几两心里有数就行

普通面试

​ 正常来讲面试就是和面试官做一些简单的交流,包括技术的和非技术的,可能会讲讲人生,说说未来的规划等等,礼貌一定是首位的,面试官正常的聊天,说到最后能够谈笑风生了,那面试基本就拿捏了

压力面

一种面试官态度比较强硬的面试风格,会打断你的发言和对你的观点提出质疑

楼主就经历过几场,面试官从开始就皱着眉头,只能看得到眉头和眼睛,语气冰冷,喜欢怼着你不会的问

其实就是想要试探你的技术边界,以及试探你的掌握程度,就比如有的面试官会明知到你说的是对的,也会反驳你,问你确定是这样吗?

映射上文的基础知识,如果是单纯的背诵,可能被这么一怼就怂了,因为你没有其他的知识对这个点做支撑

如果是比较系统的整理了,那么你的知识体系很牢固,各个点之间相互映射,他怼你你就能理直气壮地怼回去,就是这样的。

如果面试官再坚持他的想法,你就能够将与这个点相关联的点抛出来,证明面试官的想法是错误的,那么碰撞就以你的胜利结束了。

不过一般来讲当你能够坚持你的想法,面试官就不会再追问

最后楼主把面试官紧锁的眉头打开,聊聊天什么的,一场压力面就过去了

kpi面

这样的面试就没有进行的必要了,比较经典的判断方式就是面试官不尊重人,之前在网上看过,有人在面试的时候,发现面试官在买橘子。。。这种建议直接挂掉电话,不过一般来讲都不会出现这种情况,有一些是觉得自己面的还不错,被刷掉了,认为是kpi面,有这个可能,但这也是一种练习,或者参考上面面试官可能是因为心情不好,把你刷了。。。

总之,不管是怎么样的面试,不要看的太重,相信一个点:

能力到了,offer总会有的!

提升自己才是拿offer最正确的方式

关于岗位和方向

没有最好的岗位,只有最适合的岗位

喜欢什么就去做什么,适合自己的才是好的,很多平台上有很多极端言论,今天劝退这个,明天劝退那个,今天说这个门槛低谁都能做,明天说那个上限低,做几年就摸到天花板了。但凡他们真的能摸到行业天花板,他们就不会劝退了

总结一句:

你选择什么样的工作轮不到别人对你指指点点,自己喜欢能做下去就可以了!

写在最后

以上所有观点,都只是个人的愚见

如果你觉得有道理,能够对你有所帮助,我就心满意足了

如果你觉得写的什么玩意啊,那就当图一乐,看看就完事了

如果有什么想争辩的,也不用发出来了,因为都是你对

最后再写一句,秋招就像高考,只是开始,拿到了大厂offer不代表前途光明,拿不到大厂offer也不代表前途暗淡,路还很长,共勉!

#经验分享##学习路径#
全部评论
好棒!楼主有博客吗?想关注!
点赞 回复 分享
发布于 2021-11-25 14:05
labuladong,yyds!
点赞 回复 分享
发布于 2021-12-31 18:09

相关推荐

鼠鼠理解的 redis 的单线程:   是指Redis的网络IO和键值对读写是由一个线程来完成的 诸如持久化,异步操作,集群同步都是多线程 是这样吗,牛油们求指教 ave mujica 镇楼
ssp到手了的小白很想退休:针对响应客户端请求的过程是单线程完成,但Redis本身并不是单线程且在后续版本引入了多线程处理IO请求,特别是写请求
点赞 评论 收藏
分享
11 24 评论
分享
牛客网
牛客企业服务