转载请注明出处。

本文主要包含以下几部分内容:

  1. 写在前面
  2. 准备工作
  3. 面试进行时
  4. 总结
  5. 写在最后

##1.写在前面
本人2014年10月底以菜鸡的水平进入薯片公司手机团队做Android 应用开发。2016年底,公司出现危机,开始“优化”,本组一个小兄弟被“优化”,于是我也着手开始做准备,将来若轮到我被“优化”,出去面试时也好打个有准备的仗。这里我可以交代一下,我从开始面试到拿到满意的offer,大概是9个月时间,2017年9月16号才拿到满意的offer,时间跨度非常的长,大概参与了25家公司的面试,因为基本上是骑驴找马,并不急,我只想拿到满意的offer。
##2.准备工作
主要是明确自己想要加入的公司,并开始做技术准备。目标公司是BAT,我需要到更大的平台和更优秀的人做更好的项目,正常来说加入BAT以后可以让自己的实力和眼界得到提升,并且有一线大厂的光环对以后都是蛮重要的。有人说去哪里都一样,去了大厂也是个螺丝钉,我想说我宁愿做航空母舰上的螺丝钉也不愿意做拖拉机上的螺丝钉。其实在求职的过程中一次又一次的失败曾经让我放弃BAT了,转而投向其他我认为有前景的公司,不过最初我真的是非常想去BAT!做梦都想去。关于技术准备,主要是包含下面几项:

  • 项目经历
  • Java基础
  • 设计模式
  • 算法
  • 网络相关知识
  • Android基础
  • Android源码
  • Android性能优化
  • 开源库源码

整个技术准备过程与面试过程是交替进行的,一边面试一边查缺补漏,如此往复。我当时是每天早上7点起床坐班车去公司,8点半吃完早餐就在工位上学习,一直学到9点半左右。然后10点开始办公,18时吃完晚餐,19时到20时,如果工作忙的话就办公,不忙的话就接着学习,后期公司任务变少了,有时候全天都在学习。在这个过程中我真的是学的越多越觉得自己真是菜啊,一是觉得不知道的东西太多了,即广度太窄,二是知道的东西掌握的又不深,即深度不够。

##3.面试进行时
准备了一段时间后我觉得自己准备的差不多了,就在拉勾上&boss上注册账号,公开了简历,前期我没有主动投递,有哪家让我去面试,我才去。后期就主动开始投简历了,这里不得不吐槽一下拉钩的star法则,以及万年不匹配。我面试的公司较多,摘取几个有代表性的公司拿出来分享下。
蓝厂
一面就挂了,主要是以下几个问题:

  • 事件分发流程
  • View的渲染机制
  • 动画的原理,底层如何给上层信号
  • 编译打包的过程
  • Android有多个资源文件夹,应用在不同分辨率下是如何查找对应文件夹下的资源的,描述整个过程
  • ANR的原理(回答主线程5秒阻塞是不行的,要读源码)

面试官是做framework的,所以问的东西偏framework,最后他说“虽然你是做应用的,但是不能浮于表面,要深入研究”,我觉得他说的很有道理。
度娘
晚上八点半,在雨中打着伞接到电话,进行电话面试,一面就挂了。

  • Bitmap 使用时候注意什么?
  • Oom 是否可以try catch ?
  • 内存泄露如何产生?
  • 适配器模式,装饰者模式,外观模式的异同?
  • ANR 如何产生?
  • String buffer 与string builder 的区别?
  • 如何保证线程安全?
  • java四中引用
  • Jni 用过么?
  • 多进程场景遇见过么?
  • 关于handler,在任何地方new handler 都是什么线程下
  • sqlite升级,增加字段的语句
  • bitmap recycler 相关
  • 强引用置为null,会不会被回收?
  • glide 使用什么缓存?
  • Glide 内存缓存如何控制大小?
  • 如何保证多线程读写文件的安全?

面试官声音略显慵懒疲惫……我怀疑他是不是面了太多人已经麻木了

某海外直播公司
一面:

  • 线程和进程的区别?
  • 为什么要有线程,而不是仅仅用进程?
  • 算法判断单链表成环与否?
  • 如何实现线程同步?
  • hashmap数据结构?
  • arraylist 与 linkedlist 异同?
  • object类的equal 和hashcode 方法重写,为什么?
  • hashmap如何put数据(从hashmap源码角度讲解)?
  • 简述IPC?
  • fragment之间传递数据的方式?
  • 简述tcp四次挥手?
  • threadlocal原理
  • 内存泄漏的可能原因?
  • 用IDE如何分析内存泄漏?
  • OOM的可能原因?
  • 线程死锁的4个条件?
  • 差值器&估值器

二面:

  • 简述消息机制相关
  • 进程间通信方式?
  • Binder相关?
  • 触摸事件的分发?
  • 简述Activity启动全部过程?
  • okhttp源码?
  • RxJava简介及其源码解读?
  • 性能优化如何分析systrace?
  • 广播的分类?
  • 点击事件被拦截,但是相传到下面的view,如何操作?
  • Glide源码?
  • ActicityThread相关?
  • volatile的原理
  • synchronize的原理
  • lock原理

三面:
三道算法题,要求在一个小时之内做完。

  • 翻转一个单项链表 1->2->3->4->5->null =====> 5->4->3->2->1->null
  • string to integer
  • 合并多个单有序链表(假设都是递增的)

四面:
总监面,问了一些java 同步相关的。

HR面:
谈薪水,最后没谈拢。

由鹅厂与其他公司合资创立的公司
一场笔试加一场面试后挂了,面试官T4级别……。
笔试:

  • Activity生命周期简述
  • .常见内存泄漏情景及避免内存泄漏的措施
  • Actvity启动模式简述
  • 简绘观察者设计模式UML图
  • 算法,求公共子序列(或者是子串,记不清了)
  • Java四种引用
  • 自定义view重写哪几个方法?
  • http 的session&cookie的区别
  • 简述工作线程更新UI的方法

面试:

  • 应用最多占多少内存
  • 滑动卡顿如何解决(不同原因及对应处理方式)
  • 自定义view实战
  • 多线程,多进程 相关
  • Java四种引用的使用

某ding
一面就挂。

  • XX项目你负责什么
  • Sqlite 怎么增加一个字段
  • XX项目中是怎么创建数据库的
  • Sqlite 怎么删除一个字段
  • 有什么你觉得自己做得好的地方
  • 为什么用Retrofit(一个开源库)
  • Retrofit与之前的网络库有什么优势
  • XX项目中你们自己定义的线程池来管理任务,不使用框架,那么,后来新的项目怎么设计的
  • 你认为Rxjava的线程池与你们自己实现任务管理框架有什么区别?
  • 内存泄漏的常见场景
  • 怎么发现&分析内存泄漏

某条
面了三轮技术加一轮HR,HR事业线不错,笑得职业化,其他的没记住。

其他

  • 处理有序数组为什么比无序数组更快 参考StackOverflow
  • 热修复与插件化相关
  • Integer类是不是线程安全的,为什么
  • 不使用同步锁如何实现线程安全
  • 面试头条的时候在线编程:从上到下从左到右输出二叉树
  • 针对concurrent包下面的一些类的问题

Android面试再也不是“能答出来Activity生命周期就OK”的时代了,你们看前面的面试题,有些问题牵扯到底层原理。另外光是concurrent包下面的东西就能把你问懵逼了。

##4.总结
我自己面试了一些公司,拿了一些offer,但是还是想去BAT,所以那些offer最终都拒了,好在最终拿了B的offer,算起来前前后后面了8次BAT,屡败屡战,内心还是很强大的。结合我的面试经历与同事们的面试历程,总结几点:

  1. 有些规模小的公司很注重你是不是全能的,恨不得你什么都会,又给不起钱,福利待遇很不好,各种避税措施。
  2. 马爸爸的公司很注重项目经验是否匹配,往死了问项目,项目简单的话是很吃亏的,鹅厂希望你是聪明的机灵的,度娘希望你基础好,热爱技术;
  3. 有些猎头朋友是非常专业的,不仅给你安排面试流程,还给你提供很多有价值的信息,另外猎头一般推荐的都是高级职位;
  4. 面试真的很看眼缘,很多时候你和面试官一见面,如果你觉得面试官和你气场不合,那很可能就没戏了(这话说起来似乎是给自己的失败找借口,信则有不信则无,各自体会吧),碰见一个面试官,一见面就问我"XX大学是一本么",答曰"是",“是985么”,答曰"是",“是211么”,答曰"是",真心不想聊下去了,不过我也确实没有通过面试……。
  5. 我认为一面必须表现的很好,因为二面的面试官会参考一面的评价,一旦一面评价一般,第一印象就不好了;
  6. 如果你出身很好,学校认可度高,那你会有优势,请联想“好学生犯错与坏学生犯错时老师的表现“。
  7. 基础很重要,大厂还是很青睐名校计算机专业出身的工程师的(我不是),根正苗红啊,他们基础一般都很好。所以半路出家的朋友们,注意补补基础,基础好,才能走得远。
  8. 要深入研究,不能浮于表面,多看看源码,被嘲笑为 API Player 是很难受的。
  9. 要广泛接触,不要只看着自己的一亩三分地,多看看流行的库,技术等。
  10. 最好是有blog和gayhub,并写一些有价值的内容,可以加分,别像我一样blog又空又low。

##5.写在最后
在薯片的三年,我从一个让leader皱眉的菜鸡成长为一个可以hold住工作的菜鸡,用了一年半,后面的时间我觉得一直是原地踏步,开始求职前我觉得自己很叼(毕竟薯片也算颇有名气),但事实上并不是。我们更应该注重自身能力的提升,否则离开平台我们什么都不是。今年移动端不景气,求职不容易,但鸿洋大神说了:“你只要牛逼,不存在就业危机”。所以还是要做一个U盘型人才……。

最后,段首不知道怎么缩进,凑合看吧……阿弥陀佛

Android菜鸡的苦逼求职路相关推荐

  1. Android菜鸡的提升之路---自闭症儿童游戏的实现

    最近花了几天时间写一个帮助自闭症儿童的小项目,项目主要包括4个小游戏,实现的逻辑不难,没太多技术含量,但是有一些小知识点,相当于汇总一下. 写在最上面:当你的项目需要加载很多图片的时候,千万不要在xm ...

  2. 裸奔的Android菜鸡之找工作见闻杂想

    15年7月份毕业到现在将近两年,毕业之后去了一家半国企半私企的外包单位做Android开发,当初大四找工作也没想那么多,只要觉得公司还行就行了,于是乎便在这家单位呆了1年多的时间. 在这一年多的时间里 ...

  3. 双非菜鸡的春招之路!顺丰,vivo,携程,字节跳动,希望我的面经对你们有帮助!

    前言 本人双非本科,物理专业,无实习经历,菜鸡一枚. 差不多3月初开始投递简历,总共30余家公司,简历没过的有十家左右,3月中旬陆陆续续参加笔试,面试.一些笔试因为时间冲突或者后续流程等太久,就没有参 ...

  4. android菜鸡提升之路---实现一个积木拼图游戏

    废话不多说,先上图:    这个是开始时候的模样(讲道理有点幼稚,因为这个是 苹果软件商店的一款游戏,懒得反编译,所以图片都是自己扣的)  这个是拼好以后的模样,同时有语音提示("太棒啦&q ...

  5. Android菜鸡脉脉求助:4年开发经验,深圳不到15K,我该怎么办?

    近日逛脉脉,看到这样一则帖子,引起了我的关注.楼主4年开发经验,月薪不到15K,满满的无力感! 有网友吐槽: 有后选后,无后选前,无后无前,算法也甜,条件允许,无脑后端,前途无量,预定高管,其次前端, ...

  6. 如何自学python爬虫-菜鸡的Python爬虫之路(一)如何零基础自学Python

    我在这里就假设大家已经有了一定的计算机编程基础,具有一定的编程思想(如果没有的话我会在另写一篇文章关于如何入门编程) 说起来尴尬,其实我是没有资格"教"的,我天赋不行,脑子也比较笨 ...

  7. 一个菜鸡的ACM之路

    花絮 做为一个大三计软狗,那么菜,打完19年的区域赛,也没时间打20年的区域赛了吧.这个学期,是我的第一次,也是最后一次,打CCPC和ICPC,忙前忙后,共打了3场:打完后,又去赶各种死亡DDL:DD ...

  8. 测试工程师苦逼时刻,Android 谈谈自动化测试

    前言 最近,手头上的项目基本开发完成,优化也做的差不多了,本以为可以安心准备上线.然而老板却反映说测试人员发现 App 总会出现一些莫名的 bug. 目录 前言 一.概述 二.自动化测试框架 三.云测 ...

  9. 菜鸡毕业路:量化策略(二)JoinQuant入门

    菜鸡毕业路:量化策略(二) 学习目标 量化入门(一) 学习计划 学习目标 量化策略学习主要分为一下几个方向: 1) python基础,爬虫 2)机器学习深度学习理论基础 3)常用的量化模型 4)数据库 ...

最新文章

  1. 常用的shell脚本
  2. table control中用帮助(F4)实现自动填充另一字段
  3. 多字节 unicode和utf-8的转换
  4. spoj Simple Average
  5. CYPRESS USB芯片win10驱动
  6. C指针原理(42)-内存管理与控制
  7. Microsoft .NET 框架资源基础 ---摘自:msdn
  8. java putall实现,Java JsonObject.putAll方法代码示例
  9. java snmpv3_snmpv3 java实现
  10. 2、Ubuntu下安装Vivado下的下载器驱动 Digilent 版本
  11. 揭秘骗术:黑客人肉、查开房的灰色项目
  12. Titan XP值不值?一文教你如何挑选深度学习GPU
  13. Android性能优化 -- 自启动管理
  14. 阿龙的学习笔记--- Docker 的一些概念总结
  15. 「Luogu4363/BZOJ5248」[九省联考2018]一双木棋chess
  16. 数据结构与算法题目及C++解答
  17. 无人机倾斜摄影和三维实景模型 实施流程
  18. 甬矽电子在科创板上市:市值达到122亿元,王顺波为实际控制人
  19. CodeForces - 1004E Sonya and Ice Cream
  20. 【PhotoScan教程】Ps集群处理环境部署图文教程

热门文章

  1. 那位把每天当做试用期的女孩,升职为总裁助理了
  2. 如何营造沉浸式实景演艺旅游环境
  3. [云盘]协议包和数据库表设计
  4. 从稻农成长为技术领导者
  5. 2021-12-3 温故而知新-JavaScript隐式转换
  6. 通俗解释色相和饱和度和明度
  7. android launcher3,Android Launcher3 基本功能分析
  8. 第023、024讲:这帮小兔崽子汉诺塔 | 学习记录(小甲鱼零基础入门学习Python)
  9. Windows系统下防火墙开启下设置入站规则
  10. git错误之Submit including parents