1-3年Android开发工程师怎么面试?已拿下知乎、网易和快手的offer!

分享一下我朋友的面经给大家,最后他去了知乎,所以这也是一份非常中肯的面经!

本篇文章给大家分享一下笔者面试的一些感受和经验,因为笔者目前不到两年的工作经验,所以本篇文章定位为1-3年的Android开发工程师。当然本篇也适用于校招,但3年以上估计面试要求会更高一些。

笔者从前期准备到所有面试结束,花费了差不多3个月的时间。真可谓“面试造火箭,工作拧螺丝”,面试过程真的很累很辛苦。

笔者面了很多公司,最终拿下了知乎、网易和快手的offer,最后选择了知乎。

有人可能会问为什么不选择快手?的确快手的工资很高,福利待遇也很好。不过我觉得目前我还是应该更以技术成长为主。

在与知乎的面试官交流时,发现他们的技术相对来说更新颖一些,包括Kotlin、Flutter和Jetpack,都有一些实践,也都是我想学习的东西,这边的业务也更感兴趣一些。

Kotlin、Flutte学习内容可以简信我赠送】

另外,在谈offer时也被他们满满的诚意打动了。还有,建议大家工作未满3年时还是更以技术成长为主,不要把薪资放在首位。

好了,闲话少说,下面就来给大家带来满满的干货,教大家如何准备简历和准备面试。

1.简历

简历不用准备得太花哨,以前我总喜欢找一些漂亮的模板,后来经人指点后改成了用Markdown书写。面试官不在意你的简历有多好看,他更在意的是你的简历内容。

推荐一个开源项目给大家:

https://github.com/geekcompany/ResumeSample

这个项目里就有标准的Android程序员简历模板,大家参照着写就行,各种注意的东西都写的很清楚,这里我就不赘述了。

https://github.com/geekcompany/ResumeSample/blob/master/android.md

另外大家可以使用冷熊简历去书写简历,然后通过这个网站去生成PDF文件,这样的简历也比较好看。

http://cv.ftqq.com/#

2.面试

写完简历就可以投递了,一般可以找朋友内推或拉钩网、Boss直聘直接投递,这样比较快一些。

一般的面试安排都是3轮技术面和1轮HR面,部分公司可能会有增减。

2.1 技术面试

技术面试一般会先做个自我介绍,然后问问你做的项目,考察一下基础,之后再写个算法,最后可能问问你有什么想问的么。

2.1.1 自我介绍

自我介绍一般主要说一下你在哪就职,目前的工作情况,工作经验有多久,都做过哪些东西,尤其要突出一下你的亮点。这个大家提前准备一下就好。

2.1.2 项目经历

自我介绍完之后,面试官就会看你的工作经历,挑一些问你,或者直接让你介绍做过的最好的东西。

大家写到工作经历的东西,负责的部分一定要特别熟,经得起面试官的拷问,如果只是参与的,也要尽量弄熟,否则就不要往上写。

每个人的经历不同,做过的东西都不一样,所以我就不给大家整理了。

2.1.3 基础

问完项目,就该考察考察候选人的基础了,一般包括Android基础、Java基础、Android常用的开源框架、设计模式和网络基础等等。下面我来列举一下常见的考察点:

Java相关

Java基础

  • HashMap1.7和1.8的实现原理
  • final关键字,为什么匿名内部类使用局部引用要用final

Java多线程

  • 线程池的使用和原理
  • 锁机制:synchronized、Lock
  • volatile关键字
  • ThreadLocal原理
  • JVM
  • Java内存结构
  • Java垃圾回收机制
  • Java类加载过程

Android相关

  • Android基础
  • Handler通信机制
  • 跨进程通信方式
  • Activity启动模式
  • 内存优化、布局优化
  • View的绘制流程
  • Android事件分发机制
  • 动画的分类及其原理
  • MVC、MVP和MVVM模式
  • SparseArray原理

Android开源框架

  • Android网络库:Volley、OkHttp和Retrofit的使用、原理和对比
  • Android图片库:Glide和Picasso的使用、原理和对比
  • EventBus的使用和原理
  • RxJava的使用和原理
  • Router的使用和原理

网络基础

  • HTTP相关:包括HTTP2.0、HTTPS等
  • TCP相关:三次握手、四次挥手等

设计模式

  • 单例模式
  • 代理模式:静态代理和动态代理
  • 观察者模式

这些基础知识一方面大家可以直接阅读源码,一方面可以去网上搜索相关文章去学习,我这里也做了一些整理

欢迎大家关注我,还有star下我的GitHub:https://github.com/Meng997998/AndroidJX

另外,腾讯面试真的很喜欢问原理,而且问得比较细,可能我面的岗位要求比较资深,一面就挂了。。。以后还是要加强对原理的研究

2.1.4 算法

问完基础就可以写算法了,通过我的面试经历来看,算法的难度不是很大,基本刷过《剑指Offer》就足以应对面试了。

大家刷《剑指Offer》的时候,每道题一定要自己先做一遍,这些题基本牛客网上都有,大家可以直接在那上面敲代码。做完之后看看书上的解题思路,如果发现自己的方法不是很好,可以按照书上的思路自己实现一遍,再和书上的代码对比一下,这样印象才深刻。

记住,我们刷《剑指Offer》并不是去记每道题,而是记每种解题的思路,自己有个总结,这样以后在遇到没见过的题目时,才会应对自如。

我在准备的过程中已经把《剑指Offer》所有的题目都用Java实现了一遍

2.1.5 其它

除了上面以外,面试官也可能会问问跳槽原因,我一般还是以个人技术成长的角度回答的,具体我就不详述了。

最后,面试官还可能会问问你有什么要问的,一般我们要问问技术、项目相关的东西,比如你们使用的技术栈是怎样的、团队的规模怎么样、我来了之后会做些什么工作等等。

2.2 HR面

如果你能进到HR面,那么恭喜你拿offer就很有希望了。

一般HR会问你生活的方方面面,大家如实回答就好。当HR问我们对薪资的诉求时,我一般还是以现公司总包的基础上涨30%要求薪资,这样起码也会给你到20%-30%。当然有些公司比较例外,比如快手可能给的会高一些

最后HR会再问问你有什么要问的,这时候可以问问公司的薪资待遇等情况,比如有多少年终奖、评级制度怎样的、多久晋升和普调一次、普调的幅度多少、有哪些福利待遇、有多少年假等等。

另外,一定要问问后续还有什么流程,是否要做背调、什么时候做背调。之前在脉脉上看到说有的公司早早做了背调,导致候选人还没提离职,同事就全知道了。也是好可怕。所以大家一定要求HR在你提完离职之后再做背调。

最后

写到这里好不容易啊!如果大家觉得文章还不错,麻烦点个赞呗!

后续我还会更新更多优质的文章,分享一些干货给大家,希望大家关注一下啦~

原文地址:https://blog.51cto.com/14606040/2466508

时间: 2024-10-10 05:36:08

1-3年Android开发工程师怎么面试?已拿下知乎、网易和快手的offer!的相关文章

Android开发工程师,新长征路上的14项技能

导读: 你曾渴望回到宋朝吗? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看现在的你,一个刚入门的安卓开发工程师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了,你现在手中的安卓手机,冰冷如铁,你不知道如何在这4寸屏的小东西上打出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的根本,当下,你的

Android开发工程师,前行路上的14项技能

导读: 你是否曾渴望回到宋朝? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有现在这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一起,那时的你,生活的简单而美好. 看看现在的你,一个刚入门的安卓开发工程师,没有信用卡,没有她,没有24小时热水的家.你想念你的锄头和翠姑(或麦垛),可你回不去了.你握在手中的安卓手机,冰冷如铁,你不知道如何在这4寸屏的小东西上创出一片天地. 你不用感到不知所措和困惑,技术就是你安身立命的根本,当下

Android开发工程师应该知道的50个开发秘诀、技巧和资源分享

作者撰写本文的初衷,是为了罗列出Android Studio有用的提示.技巧.快捷方式和参考资源,将提高您的整体效率和操作性能. 显然,还有很多优化.快捷方式等,但作者为了保持这篇文章的简短,限制为50个,希望读者会喜欢这篇文章! InfoQ注:本文是以MacOS X操作Android Studio为例,与Windows / Linux不一致的地方已经标注,请读者注意这一点. 可视化 1.Android Logcat的材料颜色主题(Material Colors theme). 要更改Andro

帮朋友急招PHP、Android开发工程师 西安 工资8k-12k

PHP高级工程师岗位要求: 1. 有两年以上PHP开发经验, 2. 精通PHP+MySQL程序设计及开发,拥有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低. 3. 熟悉面向对象的软件设计方法,对面向对象的设计模式有较深的理解并能熟练应用.4. 熟悉常用框架thinkphp或CI或YII其中一种.5. 熟悉webAndroid开发工程师前端HTML[XHTML).JQuery等JS框架.6. 逻辑性强,思维清晰,学习能力强,能够快速的学习新的技能.7. 有高流量网站开发架构经验,

Android开发工程师文集-1 小时学会Widget小组件开发

前言 大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢 学会用Widget (小组件) Widget小组件很方便,很快捷,可以个性化,自己定制,相关功能,可以实时更新最新内容. Widget布局,Widget配置,AppWidgetProvider与Configuration Activity Android Widget xml布局类型:AppWidget Provider <appwidget-provider xmlns:android

Android开发工程师文集-1 小时学会SQLite

前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数据库 独立的,跨平台的,代码量少,简单易用 创建表语句 create table student(_id Integer primary key, name varchar(10), age Integer not null); 删除表 drop table student; 插入数据 Insert

Android开发工程师文集-1 小时学会各种Drawable

前言 大家好,给大家带来Android开发工程师文集-1 小时学会各种Drawable的概述,希望你们喜欢 Drawable介绍 Drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面. view是面向用户的,是可见的控件,能给它添加点击事件.drawable则相反,不能面向,也不可见,也不能添加点击事件. drawable有好多子类,drawable为抽象类,所以有很多子类来继承它. 主要原理方法 draw() setBounds() BitmapDraw

Android开发工程师的不同层次

从事Android开发这个职业,若想仅仅通过不断地为技术充电就能在未来的职场上有不错的前景,那则是不正确的.区别不同层次开发工程师的东西,就是感性思维.只靠理性思维的技术,你只是打工者:若还具备感性思维(比如对用户的了解)你便是领导者. <?xml:namespace prefix="o" ns="urn:schemas-microsoft-com:office:office"> ?xml:namespace> 好技术是Android开发者共有的,

今日头条Android开发岗实习生面试

实习僧上投递的简历,6.25下午投递,当天被查看,6.26上午收到面试邀请,约定面试时间7.4  14:00 没估计好路上的时间,大概1:10分左右到达,在一楼休息区等了半个小时,才上楼去前台登记面试,面试的人很多,以为要等很久,没想到刚坐下就被叫到了,emmmm,面试这个岗位的只有我一个? 一面,是个女面试官,45分钟 上来先自我介绍,然后...."我们先来写个算法吧,写个归并排序" 我的天,我都懵了好么,能怎么办,捂着我的小心脏写啊,幸好之前把几大常用算法都整理了一遍,去的路上也一