热文导读 | 点击标题阅读

金九银十跳槽季如何进阶找到合适满意的工作?

29岁年薪百万,晋升阿里最年轻P8之一,我想分享8点成长经验

北京积分落户公示名单公布:华为笑傲榜单,来看落户最多的是哪些企业!

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盘型人才……。

想进阿里吗?快加入我们的知识星球吧,如下:

你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可


最后,国庆福利来了,我们的知识星球已达到1000人了,之前说过到达1000人时将大大幅涨价到169元,为了反馈大家对我们的关注和厚爱,特此维持现价99元最后一天,今天后(今晚 00:00)后将涨到169元,欢迎大家加入我们的知识星球,更多星球信息参见:

如何进阶成为Java和Android架构师?

金九银十跳槽季如何进阶找到合适满意的工作?

说两件事

微信扫描或者点击上方二维码领取Android\Python\AI\Java等高级进阶资源

更多学习资料点击下面的“阅读原文”获取

Android 2018年九月面试经历总结相关推荐

  1. 2018 华为实习生面试经历

    2018 华为实习生面试经历 国内某中等985高校本科生三年级,专业为电子信息类.之前大一大二多做硬件设计,参加各种电子设计大赛.单片机比赛,大三想转为软件,已获保研资格. 其实我本身是想读研的,此次 ...

  2. 华为2018届校招勇敢星实习生招聘笔试+面试经历

    写在前面   之前一直在忙期末,最近才歇了下来,来总结一下之前参加华为2018届勇敢星实习生笔试+面试(研发类)并顺利拿到offer的经历.   我是在微信上投的Android研发实习生岗,很快就收到 ...

  3. 我的android面试经历

    做了一年的android应用开发,准备换个工作环境,结果在面试中却成了一个典型的面霸,两周的十个工作日里,竟然笔试加面试达到了15次.不过,在这些面试中学到了不少东西!下面把我的android面试经历 ...

  4. 备战腾讯面试经历分享,小伙终获Android岗Offer

    作者:七分熟pizza 导读 网上的面试题很多,但是讲解备战面试经历的文章很少,这篇文章从简历到模拟面试再到面试都有讲解,十分难得,推荐给大家.下文中的我指的是作者七分熟pizza. 1.开篇 我找工 ...

  5. 2018年重庆大学——唐立新奖学金面试经历总结

    2018年重庆大学--唐立新奖学金面试经历总结 (1)2018年重大唐奖面试现场:http://xsc.cqu.edu.cn/info/1073/3991.htm (2)2018年重大唐奖开奖:htt ...

  6. 2018 香港大学面试经历(Msc in Computer Science) 上香还愿

    香港大学面试2018 3月4号北京场 面试之前在CSDN上看过一个博主写的面试经历非常有用,所以我也把自己的面试经历写下来,希望能帮助到可能会参加面试的小伙伴.mua~ 2017面试的学长博客: ht ...

  7. Android开发7年,疫情期间八家大厂高工的面试经历和真题整理

    寒冬 年后疫情爆发,不出所料,我被公司优化了. 原因大概要追溯到年前,10月底的时候,公司项目经理跳槽了,职位空了出来.当时我是项目组长. 这家不大不小的公司已经做了有三四年了.在技术层面上,至少在公 ...

  8. Android-春招-面试经历-2019年,2021年Android进阶者的新篇章

    中期阶段 过完前面的基础知识点后,这个阶段主要是去熟悉源码了.可以结合项目中用到的开源框架有针对性的阅读下源码,面试过程中一般会根据你在项目中用到的框架,询问你对这些框架的原理是否熟练掌握.通用框架一 ...

  9. 迟来的面试经历——纪2018.4的Dorabot蓝胖子机器人软件工程师面试经历

    以下是我当时在知乎的回答:   蓝胖是我第一家面试实习的公司,得知这家公司还是因为有师兄推荐,本来以为蓝胖是因为很低调才导致我之前不知道深圳还有这样的一家公司,结果后来发现在我的交友圈子里还是有不少人 ...

最新文章

  1. 五连阳回调买入法_“4连阳+1阴”这种股票,吃透主升浪!挣得万贯家财
  2. CentOS 7.4下Redis及集群的安装及配置
  3. bash 2_quantize.sh遇到错误2_quantize.sh: line 7: 29380 Segmentation fault解决方法
  4. 1G.小a的排列(C++)
  5. 吴恩达神经网络和深度学习-学习笔记-31-池化层
  6. python 异步定时任务
  7. 项目中用到的ws2811炫彩灯控制程序
  8. 电子电路设计——multisum中快捷设置555定时器
  9. 读书笔记图灵传,算法
  10. 简单matlab插值函数
  11. jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company
  12. Lua学习笔记-OOP面向对象
  13. P14 Optimistic Concurrency Control 课程观看笔记
  14. Excel加载项没有PowerPivot选项,怎么添加
  15. win10卸载电脑管家就蓝屏_Win10电脑蓝屏原因排查及解决方案
  16. truetype字体怎么转换成普通字体_字体 – 如何将位图字体(.FON)转换为truetype字体(.TTF)?...
  17. 哈佛梅森学者邹传伟:泡沫与机遇——数字加密货币和区块链金融九问
  18. 母(父)爱是一把双刃剑
  19. 股票、证券等(个人)商业投资(融资)
  20. 一名大学生在银行工作8年的职场感悟---功之成,非成于成功之日,盖必有所由起

热门文章

  1. SpringBoot开启定时任务
  2. ct报告会出错吗_病人在医院做了CT,报告错误,医生也没看出骨破坏的情况,请问这是误诊吗?...
  3. 2020.11.04 使用OpenCV进行图像阈值分割操作【OpenCV C++】
  4. 安装虚拟机之开启VT
  5. in和exists的区别和使用场景纪要
  6. python爬取分析深圳二手房房价
  7. 人脸清晰化神器codeFormer图形界面包GUI
  8. Lab: Xv6 and Unix utilities sleeppingpong
  9. UE4(unreal Engine)中使用蓝图类Actor创建开关门,并使用鼠标和键盘控制开关门
  10. IBM System x3850 X5如何级联