企业求职讲究颇多,其中不少的信息差亦只能由在网上冲浪时零零散散地收集而得,因此本文特此将本人知道的各种信息差整合到一起,希望能为同学们节省些许时间。

就国内的互联网企业而言,大多数都会按照以下的模式进行面试,而特别是较有名气的大厂基本都会遵从这一套。就是 八股文 + 项目经历 + 算法题。

其中又分为 HR 面和技术面,技术面也可能有一面二面三面,由部门里面架构决定,通常领导级别呈递增关系。

  • 八股文:通常会问你一些较为复杂、深入且和你的应聘的岗位相关的技术问题,之所以称之为八股文,是因为在个人开发时难以遇到此类需求,比如说大厂开发的软件,通常会有高并发需求,因此就需要对诸多并发问题做处理以及优化。然而这类问题如果只是自己开发个小网站的话,是完全用不上的,并且初期进入企业后,可能也只是接触一些比较繁琐的工作(业内称之为“拧螺丝”),不需要处理此类进阶需求,因此大家常说,“面试造火箭,进场打螺丝”。 就 Web 后端为例,面试官通常会问你此类问题:语言本身、通用八股文(计算机网络比较多)、数据库、并发问题/微服务设计,MQ 的一些机制、有机会会考一点基础运维(比如 Linux / Docker)

    • 语言本身的话,线程协程还有锁的这类问题会比较多,比如问你 Java 线程池、synchronized 锁的相关机制、Go 的 GMP 模型、sync.Mutex 的一些机制等等。

    • 通用八股文,在各个技术岗位都会问,无论是 Web 前后端、客户端或是算法岗等,问的内容就是你在学校科班课程学到的一些内容了,计算机网络是常考点,比如三次握手四次挥手的机制等。

    • 数据库的话主要会围绕 MySQL 以及 Redis 进行提问,事务、加锁、Redis 里的一些数据结构的特性、MYSQL 的 binlog 或者 Redis 的 AOP 等数据库的底层机制都会涉及。

    • 微服务的话也会问一些比如说注册中心、服务发现等机制,主要是考验你在架构设计上的一些概念。

    • 并发问题其实会贯穿整个八股文环节,因为很多问题本身就是由并发带来的,或是需要处理高并发量才会有这么些问题。

    • 对于八股文环节的学习的话,大家可以参考【牛客】这个软件上的【面经】部分,看不懂的词就问 ai

  • 项目经验 :

    • 很多人在不了解行情时看到这个"项目经验"可能就会有点却步,认为自己没有这个机会去接触相关的项目。但其实大多数人的项目经历都不是一个"真的"项目经历,並沒有一个企业/机构/外包实际委托他们一些具体的需求去做。而是他们根据普遍的一些项目自己复现出来了一个项目,通过做这个项目的过程,去学习到其中的技术。更有甚者,根本没有做过这个项目,因为面试过程中只要保证技术官问你的问题你都能回答出来那其实面试就没问题了。
    • 对于项目经历的方向的话,我建议可以参考网上黑马程序员的的黑马点评项目,其实不少人在简历上都会写这个项目,有的人甚至把"黑马点评"换成"牛马点评"就照搬上去了。但这个项目相对来说,涉及到/能学习的技术栈都是比较前沿的,且本身也是一个完整的系统,你可以自己根据 Github 上搜"黑马点评"找到源码直接配合 ai 学习(效率更高,哪里不懂直接问大模型就好了),也可以看他们官方在 B 站上的教程。
    • 项目经历的讲究就是你得用到一些常用的组件,解决一些比较复杂的需求,真正的做一个能迎合企业需求的系统。当然,你如果有机会去接触一些真实的项目,也可以写上去,配合 Github 以及公网部署,或者这个项目本身的背景,你可以有一个更好的背书。
  • 算法题:

    • 对于很多科班基础不错的同学,或者有接触过一些竞赛的同学,算法题其实对于你来说已经是不需要准备的了。
    • 通常来说,无论是日常实习/暑假实习/秋招春招(有一个好一点的教育背景的话),确保自己能刷过 Leetcode hot 100 或者 top 150 就可以了,都是非常典中典的纯板子题,不过,我个人听说过最难的题,是手写 3d 接雨水或者手搓红黑树,这种通常是面试官不想让你过故意刁难你才出的题,通常来说,题目大多都是 Medium 级别的难度(当然,也不是 medium 里面比较简单那些)。
    • 实习和秋招春招难度有区别,实习的话难度会比秋招春招稍简单一些,并且暑假实习是比日常实习更难的(因为能转正)
    • 面试流程的话,就是让你投屏电脑,可以用自己的 ide 做,通常不会限制语言不过用你所面试的的岗位指定的语言会好一点,面试官会一直看着你做,比较友好的面试官会跟你讨论思路,错了的话可能会给提示等等。
    • 互联网的技术岗(包括算法岗)的工作内容其实和你在 Leetcode 上面刷的算法题并不是很相关,这其实只是企业的一种筛选方式,用于快速考核你的代码能力(毕竟没时间让你当场手搓个前后端出来)。
  • 面试前的流程:通常来说会通过官网或者 BOSS 直聘来投递你的简历(用牛客的比较少,公司在牛客上放出的岗位也会比较少,如果想在多平台投递,可以用实习僧(虽然也是相对用的比较少的平台了)),然后会通过打电话(较多) / BOSS 直聘(相对来说少一点)约面试时间。确定后会发一封邮件通知你面试时间等细节、也有可能会先发笔试(部分公司才有,笔试时间有 ddl,抽空上去做了就行),少数公司会有性格测试/认知测试让你做。

  • 年后投递,大厂通常缺人的时候投。以及放出 hc 后尽早投递,企业收的几率可能会高一点。

  • 内推:内推者可以在他们的内推系统上给你加内推评语/推荐理由。面试时面试官印象会好一点(问你的题有可能就会简单一点),特别是面试官如果认识内推你的那个人的话。如果你被内推后又成功入职了,内推你的人可以收一点米(看不同公司)