2019秋招android总结

前言

这个文章主要是笔者今年的秋招总结,希望对正在秋招的和准备明年春招的大四、研究生、甚至是博士生的小伙伴们,有所帮助。大家可以参考一下。

  • 个人背景
    广东某一本大学大四软件工程学生,大一学校开了java课,大二的时候开始自学android。个人成绩在班上中等,不算优秀;专业技术知识也不是非常充分。
  • 2020年秋招情况
    虽然大二大三的时候一直就有人说android要完,但因为对android的无限热情,笔者还是毅然跳进了这个大坑。出人意料的是,今年的android校园秋招缺口异常的巨大,导致笔者居然是班上很早就开始拿offer的一批人。有意思的是,很多大厂的招聘网站上都明确标明着android岗位急需;更有甚者,笔者在面试某几个公司的时候,居然连笔试都没有,直接开始的一面。与之相比,今年的java秋招反而非常艰难,笔者认识的做java的同学里,第一个拿offer的那位同学居然还是拿的一个PHP后台开发(笑!果然是最好的语言)
  • 秋招结果
    • 鹅厂offer,不得不说,在笔者面试的几个公司里,鹅厂的面试质量是最高的。面试的时候,面试官非常喜欢对着一个知识点不断地深挖。心理压力有点大,因为到最后,太深入的那些点,实在是答不出来了。所问的问题设计的面也非常广,包括你最近在学什么,面试官也有问到。
    • 其它投的公司,大概加起来不到10家,基本上过了一半,剩下的一些没过或者直接没面(太花时间了,有的准备也不够充分,没重视,而且有了offer,就不想再弄了,机会留给其他同学);全投的大厂,当然也有很多大厂没投,主要投的广东以内的公司。问题的话主要是信息缺乏,很多公司的招聘信息我都根本不知道(关于这个,推荐一下牛客,它上面的秋招信息据说比较全面;当然,学校或者班群也会发布一些秋招信息,望留意)。没投小公司,因为大公司的秋招都很容易,就不会考虑小公司了;这也从侧面反应了今年秋招android岗的缺口巨大,和java、C++的同学相比,感觉招聘真的要简单太多。一个简单模式,一个地狱难度。

面试

简历

网上模板很多,自己找一个来填就行了,颜色不要太花哨,朴素点最好。照片的话,自己到外面找个照相馆,七八十左右,或者更低,拍张证件照。简历格式记得保存一份PDF的,不然,格式乱码,会让你发疯的。简历记得多打印几份,要不后面到处找打印店,很麻烦。

笔试

  • 大部分公司都是三四道算法题,难度由简到难。一般笔者都是前几道做出来,或者八九成的通过率,最后一道都是空的,但对于通过笔试来说,就足够了。
  • 几家公司的笔试好像都是在同一个网站上弄的,全程需录屏,可以用自己的IDE(java的话,强烈推荐intellij idea,比eclipse好用太多),后续复制粘贴上去。大部分笔试需要自己处理输入输出,少部分直接给出函数,添加代码即可。
  • 这里安利一下一本算法书《漫画算法》,强无敌,笔者做的笔试题,基本上每次三四道题里,会有一二道题,书上有类似原题;后续面试中,这本书上的题也是经常被问道。java编写,相比《剑指offer》,面试android和java的同学,笔者推荐先看了这本书,再看《剑指offer》。

技术面

  1. 自我介绍:简单介绍一下自己即可,哪个学校、专业的,干嘛的。多提及和技术相关的东西,学生活动啥的,大部分没啥用处。对于公司来说,校招一般很看重你的学习能力和对技术的热爱程度,技术深度的话,要求并不是很高,说的时候往前面两点上靠就行了。
  • 这里提供一个模板,大家可以参考一下:

我是XX,XX学校的(大四、研二、。。。)学生,XX专业,现在面试贵公司的android开发岗位。
我是XX的时候开始学习android,期间又学习了XX、XXX等相关技术。。。
平时遇到困难的话,我倾向于通过XX等方法来解决。。。
学习的话,我主要通过看相关的技术书籍(,比如XX、XXX。。。),一些技术公众号(,比如XX、XXX。。。),当然,android官网的内容我也时常关注。。。

  1. 技术内容
    去面的几家公司中,被提到过的问题,当然很多细节都记不起来了,只记得一些问的比较频繁的和印象比较深刻的。
  • 计算机网络:IP、TCP、UDP、HTTP、HTTPS,主要这几个,其他内容基本没涉及过
  • 操作系统和Linux:进程与线程(部分公司会涉及到协程)、进程间通信、Linux基本命令、生产者-消费者问题、死锁
  • java基础:HashMap类(问过好几次,建议看下源码)、Object类、线程池、类加载机制、jvm内存模型、反射、final关键字、volatile关键字、线程同步、java预编译、泛型、java引用类型
  • android:Activity生命周期、android进程间通信(主要涉及AIDL和BInder)、VIew原理和点击事件传递、滑动冲突、Activity启动流程、Service工作过程、广播机制、android消息机制(主要涉及Looper、Handler)、android性能优化、内存溢出和内存泄露、ANR
  • 第三方库:RxJava、Retrofit、OkHttp(问过多次)、RecyclerView
  • 设计模式与架构:单例模式、工厂模式(提的最多的两个)、桥接模式、装饰器模式。。。、MVP、MVVM
  • 新技术:Kotlin、Flutter、协程,公司里不一定在用,但你能就这些说上一些内容,可以加分
  • 其他:NDK、插件化、热修复 、应用保活,主要是些只问过一次的问题和笔者没答好的问题
  1. 手撕代码
    一般的问题都不会很难,不要紧张,慢慢来,期间可以向面试官询问细节
    如果实在写不出来,也不要紧张,把参数判断、特殊条件那些简单的写出来也够了;你的算法能力那些,笔试的时候已经考验过了,这里主要是看你的代码习惯
  • 时间:不用着急,这不是考你的反应速度,笔者有次面试,写了半个多小时,面试官也没说什么
  • 细节:注意代码风格、参数合法性判断、特殊条件、临界条件的检查,细节决定成败
  • 最优解:不用强求,能写出来就行了,后续面试官有要求,会让你再进行改进的
  1. 项目经历
    你的课程项目和自己写的玩具级应用,也可以算的,简历上不要什么都不写。面试的时候如实回答就行了,多提及你用的技术和期间是如何解决问题的。当然,有比较优秀的项目经历,肯定是可以加分的。
  2. 最后问题
  • 不要直接问面试情况,一般面试官都不会说的
  • 工作内容、入职时间、入职前准备等可以酌情问一下,问的好可以加分
  • 提供几个模板,大家可以参考一下

您觉得我有哪些不足之处吗?

表现你的不断进步之心,而且可以旁敲侧击面试情况,一般面试官都会如实回答。而且,自己回去的时候,对相关问题进行查漏补缺,可以明显增加下次面试的成功几率

请问贵公司的春节放假是什么情况?因为我的学校寒假较长,想假期的时候过来先实习,适应环境

表现你的热诚之心,并且可以套路公司假期情况。当然,寒假想玩耍的同学慎用,到后面录用后寒假不去的话,会很尴尬的

HR面

能从前面的重重管卡突破,走到这里的同学,基本与offer就只有一步之遥了,当然,这也并不是松懈的时候,往往一些不注意的细节,仍会产生问题

  1. 自我介绍
    基本同技术面一样就可以了,没什么要求
  2. 加入公司理由
    尽量往公司文化和公司价值观上说,但也不要说的太假大空,说什么薪资水平高什么的,肯定是雷区
  • 提供一个模板,大家参考一下:

举个栗子,比如说这是一个主营二次元的公司

我从小就特别喜欢看动漫,对二次元的一些东西也十分喜欢。所以,在贵公司这样的公司工作,将会更加地充满热忱。

  1. 待遇问题
  • 别直接就要价了,提高了,降低录用可能,提低了,又不划算;况且,很多公司的年收入主要是看年终奖什么的,一年发12+月工资的公司也很常见,谈月工资多少什么的完全没有价值
  • 一般这种问题都要打太极,不要表现得太物质。提供一个模板,大家可以参考一下:

其实我对薪水待遇什么的没什么要求,能保证我每个月的租房、吃饭等基本开支就行了。对于这些问题,其实我更关注个人的成长问题。比如,一两年后的我自己,技术水平有多大的提高等等。。。
说的不是很好,但相比直接开口几十K的漫天要价来说,好太多了

  1. 最后问题
    和技术面的时候差不多一样的

个人学习

英语

迈向中高级程序员的必备技能,没什么好说的。主要要求的是你的读写能力,听说的话,基本不会用到。基本要求(不要求一步到位,但需要逐渐精进):

  • 阅读源码、github、overstackflow、android官网、官方文档等的内容
  • Google查阅东西,一般来说,技术问题的答案质量排序为:Google英文、Google中文、百度(真的不是在黑。。。)
  • 代码命名:好的命名可以抵过一大堆的注释
  • 英文原著阅读:能到这一步的话(,要很久,不要急于速成),就程序员而言,英文能力基本就够用了

Linux

作为一个程序员,不会Linux,感觉就像无照驾驶,更别说android是基于Linux而来的了

  • shell
    简单的shell脚本编写和常用的几个命令要掌握吧,比如find、grep、kill、ps。。。
  • Linux C编程
    NDK编程之前的基本技术储备,对于理解android底层的一些东西,也有很大的帮助
  • vim
    学会之后,可以解锁一个浏览器插件——Vimium;相比鼠标在浏览器里点点,这玩意儿的装逼程度,急剧上升

技术公众号

公众号的缺点的话主要是知识比较零散,优点的话是随时随地可以查阅。不需要每次的文章都看,挑你自己需要的就行了

  • 这里推荐几个大佬的公众号:郭霖、玉刚说、后厂村刘皇叔、大飞码字。。。

不仅是技术,大佬们很多非技术方面的东西,也是值得学习的

书籍

极重要的学习方式,相比其他东西,书籍的内容更加系统化和全面。当然,所花的时间和精力也是极大的。一本书,几个月到半年,都是常态,更不要说一些书,需要反复研读了。这里推荐几本笔者读过的,认为质量比较高,或者有特定价值的书:

  • 《第一行代码》
    android入门第一书
  • 《Android开发艺术探索》
    把这本书的内容吃透,你面试的android知识,基本上就没问题了
  • 《Effective Java》
    java程序员分两种,看过这本书的,和没看过这本书的。
  • 《UNIX环境高级编程》《UNIX网络编程 套接字联网API》《UNIX网络编程 进程间通信》
    Unix三部曲,看完之后,你对Unix、Linux、操作系统和计算机网络,都会有一个全新的认识
  • 《Android C++高级编程 使用NDK》
    NDK开发入门用,缺点的话是书有点老,上面的项目构建还是make,而现在都用cmake了
  • 《Kotlin实战》
    入门kotlin用,未来可能替换Java进行android开发,虽然现在国内没有几个公司用(笑。。。)
  • 《漫画算法》
    算法零基础同学的福音,相比其他算法书,这本书更适合用来进行算法入门,java编写

后记

总的来说,今年的android校招,相对其他技术岗位来说,还是比较容易的;并没有像网上说的那样,已经到垂暮之年了。就笔者的情况而言,虽然有点辛苦,但还是能拿到几个offer的。希望大家不要过于悲观。之前实习的时候,当时的Leader给过笔者一句话,也一并分享给大家:

让工作来找你,而不是你去找工作。

  • 为什么写博客
    物质越分越少,而思想则是越分越多。进行分享的时候,不仅是读者得到了东西,通过这个过程,笔者也能将自己以往的知识串联起来,进行融会贯通;对笔者而言,也是一个重要的提高。
  • 多余的话
    第一次写这种分享,主要是一个个人总结和给正在秋招和明年春招的小伙伴们提供一些参考意见。纯小白,望大佬轻喷。博客上目前也暂时只有这一篇文章,人很懒,所以不能保证博客的持续更新。若有高见,可以指出,但未及时回复的话,还望海涵。
    转载的话不用告知,但需标明出处,且不可修改内容

你可能感兴趣的:(2019秋招android总结)