11398c6b293ace82d3eafa789d627e70
Android 实习 | 如何在春招中拿到满意的 offer

先说一下自己的情况供大家参考,本人今年大三,双非一本学校,计算机相关专业,从大一开始加入学院创业团队的 Android 开发组。

从今年过年后不久开始投简历,前后投了腾讯、阿里、美团、CVTE 这几家公司,现在已经拿到了腾讯、阿里和 CVTE 的 offer,美团到现在都还没开始面试,一脸蒙蔽,最终选择了腾讯,也算是给自己的第一次找工作之旅画上了圆满的句号。

本文主要是分享我自己针对这次春招的所做的准备工作以及在面试的过程中的一些经验和思考,希望能对大家找实习有些帮助。

一、有计划的系统复习

各大互联网公司的春招的时间大概是 3 月到 5 月,如果是通过内推途径的话,甚至 2 月份就会开始电话面试,也就意味着如果想拿到满意的 offer,你必须在 2 月份之前就做好所有的复习工作。

先讲下我自己之前的规划,为了准备这次春招,我提前了半年开始准备复习,复习阶段主要分为三部分:

  • 学习「自己知道自己不会」的知识
  • 全方位的学习,构建自己的「知识体系」
  • 学习「自己不知道自己不会」的知识

1.1 学习「自己知道自己不会」的知识

其实在开发过程中,总有一些自己想学但是因为项目压力或者其他原因,然后自己打算放在以后再学的东西,也就是所谓「自己知道自己不会」的知识。

例如:

  • 比较常用的一些框架,比如客户端的网络请求、图片加载框架
  • 常用的一些类和集合的源码,比如 ArrayList、LinkedList、HashMap(面试必问)
  • 觉得自己无法清晰表达出来的概念,如「内存泄露」、「Java 并发」

这个阶段是一个对自己当前知识体系查漏补缺的一个阶段,你要做的,就是把自己不会的东西完整的列出来,然后逐个击破。这个阶段最好通过博客的形式,将自己学到的东西「用自己的语言」表达出来,如果你能用自己的理解清晰、完整地说出来,甚至能让别人听懂你讲的东西,那基本就没问题了。但如果自己脑海里没法形成一个清晰的概念的话,只能证明你对这个知识点还不够理解。

而且现在很多公司都将「写博客」作为一个加分点,一份简历其实并不能反映多少东西,但如果你有一个长期维护的博客的话,面试官可以通过你的博客更加清楚地了解你,而且坚持本身就是一件不容易的事情,面试官对于能够坚持写博客的人也会更加有好感。

1.2 全方位的学习,构建自己的「知识体系」

其实很多人在平时学习技术和日常开发过程中,学了非常多的东西,但很少有人会去系统地复习,从而构建自己的知识体系,导致自己学到的很多知识点没办法更好的产生联系,而且可能会导致学了某个知识点没过多久就忘了。

那如何构建我们的「知识体系」呢?

Android 里面所谓的「知识体系」,我认为主要包含这几个部分:

  • Java 和 Anroid 基础
  • 计算机网络
  • 操作系统
  • 设计模式
  • 数据结构和算法

也就是说我们需要将这几个部分逐步击破,慢慢完善我们的知识体系,这个阶段是最花时间和精力的,但是坚持下来会让我们的基础变得更加扎实,而且能最大限度的构建我们的知识体系。

在这里我推荐一份非常好的资料:Android 校招面试指南

1.3 学习「自己不知道自己不会」的知识

这个标题可能会让你们有点纳闷,连自己都不知道自己不会的知识怎么学?这时候面试题的作用就出来了,「面向面试题编程」其实是一个查漏补缺、增强自己编程基础的非常好的方式。在做面试题的时候,你会遇到很多奇奇怪怪的问题,很多都是你「之前没有接触过」或者「有接触过却没有往那方面想」的问题。

刚开始遇到这些面试题确实很让人很不舒服,但是这些面试题也确实能够最大限度地提升我们对知识之间联系的理解以及引发我们对一些具体使用场景的思考。当然更重要的是我们可以通过刷往年各大互联网公司的面试题,让我们对于公司面试题有一个大致的认识而且也能提前了解到面试官面试时候的一些套路和做法。

在这里推荐一些我看过的,觉得很不错的面试资料:

二、面试的一些建议和套路

首先,要强调一点,想拿到自己满意的 offer,最重要的就是提升自己的编程能力,特别是计算机方面的基础,这是每轮技术面试都必问的。没有足够的实力,再高的面试技巧也是没用的。

不过,在面试中确实也有很多需要注意的地方,甚至存在一些通用的经验和套路。掌握一些必要的面试技巧才能在面试官面前最大程度的展示我们自己真正的水平,甚至超常发挥,从而拿到满意的 offer。

寻找自己的兴趣点,并将其培养成自己的瑞士军刀

在学 Android 的过程中,其实每个人都有着自己跟别人不一样的兴趣点,例如我自己对「Android 网络」、「图片加载」这两方面的知识就有很大的兴趣。如果想要在 Android 面试中脱颖而出,拿到让自己满意的 offer,拥有某个「能超过绝大部分人」的技能是非常必要的,也就是所谓的你最出彩的地方。

在这次阿里技术二面的时候,面试官一上来就说:“上一轮的面试官已经问了很多关于项目的东西了,你给我讲一下你觉得自己在 Android 中学的最好的东西吧。”当时听到这个问题我心中一阵窃喜,因为之前花了很多的时间和精力在学习「Android 网络」和「图片加载」这两方面,对于这两方面我还是很有把握的,最终也顺利通过了阿里的技术面试。

上面举的例子就是为了说明拥有某些技术特长的重要性,在面试中很多时候面试官关心的是你会什么,而不是纠结你不会什么。而且技术的深度也比广度要重要的多,如果你在某方面研究的比较深,很有自己的心得和体会,甚至连面试官在这方面都没办法问倒你的话,通过这次面试的成功率就会大大增加。

top Created with Sketch.