# 目录

  * [1 如何获取大厂面试机会？](#1-如何获取大厂面试机会？)
  * [2  面试前的准备](#2--面试前的准备)
    * [2.1 准备自己的自我介绍](#21-准备自己的自我介绍)
    * [2.2 关于着装](#22-关于着装)
    * [2.3 随身带上自己的成绩单和简历](#23-随身带上自己的成绩单和简历)
    * [2.4 如果需要笔试就提前刷一些笔试题](#24-如果需要笔试就提前刷一些笔试题)
    * [2.5 花时间一些逻辑题](#25-花时间一些逻辑题)
    * [2.6 准备好自己的项目介绍](#26-准备好自己的项目介绍)
    * [2.7 提前准备技术面试](#27-提前准备技术面试)
    * [2.7 面试之前做好定向复习](#27-面试之前做好定向复习)
  * [3 面试之后复盘](#3-面试之后复盘)


不论是校招还是社招都避免不了各种面试、笔试，如何去准备这些东西就显得格外重要。不论是笔试还是面试都是有章可循的，我这个“有章可循”说的意思只是说应对技术面试是可以提前准备。 我其实特别不喜欢那种临近考试就提前背啊记啊各种题的行为，非常反对！我觉得这种方法特别极端，而且在稍有一点经验的面试官面前是根本没有用的。建议大家还是一步一个脚印踏踏实实地走。

<!-- TOC -->

- [1 如何获取大厂面试机会？](#1-如何获取大厂面试机会)
- [2  面试前的准备](#2--面试前的准备)
    - [2.1 准备自己的自我介绍](#21-准备自己的自我介绍)
    - [2.2 关于着装](#22-关于着装)
    - [2.3 随身带上自己的成绩单和简历](#23-随身带上自己的成绩单和简历)
    - [2.4 如果需要笔试就提前刷一些笔试题](#24-如果需要笔试就提前刷一些笔试题)
    - [2.5 花时间一些逻辑题](#25-花时间一些逻辑题)
    - [2.6 准备好自己的项目介绍](#26-准备好自己的项目介绍)
    - [2.7 提前准备技术面试](#27-提前准备技术面试)
    - [2.7 面试之前做好定向复习](#27-面试之前做好定向复习)
- [3 面试之后复盘](#3-面试之后复盘)

<!-- /TOC -->

## 1 如何获取大厂面试机会？

**在讲如何获取大厂面试机会之前，先来给大家科普/对比一下两个校招非常常见的概念——春招和秋招。**

1. **招聘人数** ：秋招多于春招 ；
2. **招聘时间** ： 秋招一般7月左右开始，大概一直持续到10月底。<font color="red">但是大厂（如BAT）都会早开始早结束，所以一定要把握好时间。</font>春招最佳时间为3月，次佳时间为4月，进入5月基本就不会再有春招了（金三银四）。  
3. **应聘难度** ：秋招略大于春招；
4. **招聘公司：**  秋招数量多，而春招数量较少，一般为秋招的补充。 

**综上，一般来说，秋招的含金量明显是高于春招的。**

**下面我就说一下我自己知道的一些方法，不过应该也涵盖了大部分获取面试机会的方法。**

1. **关注大厂官网，随时投递简历（走流程的网申）；**
2.  **线下参加宣讲会，直接投递简历；**
3. **找到师兄师姐/认识的人，帮忙内推（能够让你避开网申简历筛选，笔试筛选，还是挺不错的，不过也还是需要你的简历够棒）；**
4. **博客发文被看中/Github优秀开源项目作者，大厂内部人员邀请你面试；**
5. **求职类网站投递简历（不是太推荐，适合海投）；**


除了这些方法，我也遇到过这样的经历：有些大公司的一些部门可能暂时没招够人，然后如果你的亲戚或者朋友刚好在这个公司，而你正好又在寻求offer，那么面试机会基本上是有了，而且这种面试的难度好像一般还普遍比其他正规面试低很多。

## 2  面试前的准备

### 2.1 准备自己的自我介绍

从HR面、技术面到高管面/部门主管面，面试官一般会让你先自我介绍一下，所以好好准备自己的自我介绍真的非常重要。网上一般建议的是准备好两份自我介绍：一份对hr说的，主要讲能突出自己的经历，会的编程技术一语带过；另一份对技术面试官说的，主要讲自己会的技术细节，项目经验，经历那些就一语带过。

我这里简单分享一下我自己的自我介绍的一个简单的模板吧：

> 面试官，您好！我叫某某。大学时间我主要利用课外时间学习某某。在校期间参与过一个某某系统的开发，另外，自己学习过程中也写过很多系统比如某某系统。在学习之余，我比较喜欢通过博客整理分享自己所学知识。我现在是某某社区的认证作者，写过某某很不错的文章。另外，我获得过某某奖,我的Github上开源的某个项目已经有多少Star了。

### 2.2 关于着装

穿西装、打领带、小皮鞋？NO！NO！NO！这是互联网公司面试又不是去走红毯，所以你只需要穿的简单大方就好，不需要太正式。

### 2.3 随身带上自己的成绩单和简历

有的公司在面试前都会让你交一份成绩单和简历当做面试中的参考。

### 2.4 如果需要笔试就提前刷一些笔试题

平时空闲时间多的可以刷一下笔试题目（牛客网上有很多）。但是不要只刷面试题，不动手code，程序员不是为了考试而存在的。

### 2.5 花时间一些逻辑题

面试中发现有些公司都有逻辑题测试环节，并且都把逻辑笔试成绩作为很重要的一个参考。

### 2.6 准备好自己的项目介绍

如果有项目的话，技术面试第一步，面试官一般都是让你自己介绍一下你的项目。你可以从下面几个方向来考虑：

1. 对项目整体设计的一个感受（面试官可能会让你画系统的架构图）
2. 在这个项目中你负责了什么、做了什么、担任了什么角色
3. 从这个项目中你学会了那些东西，使用到了那些技术，学会了那些新技术的使用
4. 另外项目描述中，最好可以体现自己的综合素质，比如你是如何协调项目组成员协同开发的或者在遇到某一个棘手的问题的时候你是如何解决的又或者说你在这个项目用了什么技术实现了什么功能比如：用redis做缓存提高访问速度和并发量、使用消息队列削峰和降流等等。

### 2.7 提前准备技术面试

搞清楚自己面试中可能涉及哪些知识点、哪些知识点是重点。面试中哪些问题会被经常问到、自己该如何回答。(强烈不推荐背题，第一：通过背这种方式你能记住多少？能记住多久？第二：背题的方式的学习很难坚持下去！)

### 2.7 面试之前做好定向复习

所谓定向复习就是专门针对你要面试的公司来复习。比如你在面试之前可以在网上找找有没有你要面试的公司的面经。

举个栗子：在我面试 ThoughtWorks 的前几天我就在网上找了一些关于 ThoughtWorks 的技术面的一些文章。然后知道了 ThoughtWorks 的技术面会让我们在之前做的作业的基础上增加一个或两个功能，所以我提前一天就把我之前做的程序重新重构了一下。然后在技术面的时候，简单的改了几行代码之后写个测试就完事了。如果没有提前准备，我觉得 20 分钟我很大几率会完不成这项任务。

## 3 面试之后复盘

如果失败，不要灰心；如果通过，切勿狂喜。面试和工作实际上是两回事，可能很多面试未通过的人，工作能力比你强的多，反之亦然。我个人觉得面试也像是一场全新的征程，失败和胜利都是平常之事。所以，劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜，等待你的将是更美好的未来，继续加油！
