干货!如何试出一个Android开发者真正的水平?已开源

前言

想要成为一名优秀的Android开发,你需要一份完备的知识体系,在这里,让我们一起成长为自己所想的那样~。

学算法真的很痛苦,虽然大数据现在很火,但找到适合自己定位的职业也未尝不是一种合理选择。
投百度的经历非常坎坷,想写出来和大家分享一下,希望能带给和我一样准备不是非常充分(无对口项目、无实习经历、渣硕算法中途转Android开发)的同学一些信心。

百度一开始是想找学弟内推的,但是我投的比较早(8月份),赶上了内推的时间,但仍然走的是正式批的流程。做笔试题的时候,三道算法题只做出来第一道,之前经历了腾讯一面挂、字节笔试挂(补招的时候被捞一面挂)、京东笔试后没消息、美团简历挂,滴滴笔试完没消息(后来有面试并且收到了oc),觉得进面试拿到offer的希望也不大,所以就提前交卷,放弃挣扎了。最后意外收到了远程面试的邀请,运气到了拦也拦不住。

面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占很大成分,遇到欣赏你的面试官,就会比较顺利。

献上百度的三面面经~

公司的需求

不同的公司,不同的需求现在的市场上,公司很多,大致上可以归纳为两个大类:大公司和小公司,他们招聘时对人才的需求也不一样。

小公司

小公司他们一般急需的是能够投入工作的人才,因为公司规模小,急需盈利扩张,需要投入工作生产,所以他们更加注重实践能力。一般情况,小公司面试比较集中安卓开发这一块,他们会比较注意你之前有没有做过类似的项目,或者是相似的工作经验,以及有没有遇到过他们所遇到的某些问题。准备这些公司的面试,除了一些基本基础知识点还需要关注安卓开发实际中经常遇到的一些问题,比如缓存,常见的开源框架问题等。

大公司

相对于那些才起步,或者起步不久的小公司,大公司已经有了比较深厚的资源积累,体系制度也比较完善了,他们更注重人才的综合能力还有未来发展潜力。

在面试中,大公司会提的差不多就是数据结构与算法,计算机网络,操作系统,Java这些。在这些点中,数据结构与算法应该是一个分水岭,这个问题的准备需要长时间的积累,临时抱佛脚可能有些困难,是骡子是马,拉出来遛一遛就知道了,是不是高手一试就知。

所以,很多公司都执于考算法,比如百度、美团,淘宝这些公司。整个面试下来可能让你手写5个算法题以上。这点主要是想告诉大家,这个门槛差不多决定了你最终所找工作的水准,所以我都会建议每一个找程序员相关工作的人,尽早准备这方面。比如多刷一些leetcode或是其他类似的题。

然后在剩下的几块知识中,我只想说你可以不用全部都懂,但是你必须要在某一块知识点是有深入研究的,能够回答面试官4到5个追加问题,“T”型知识结构的人才很吃香。如果所有知识点都只能答上一到两个,面试官会觉得你的水平就是这样了,还会觉得你没有探究精神。这个判定结果是很恐怖的,因为一个没有探究精神的人是做不了好的程序员的。

我觉得面试安卓的知识点按照重要程度可以做一个这样的排序:
1.数据结构与算法
2.java ,Android
3.计算机网络
4.操作系统
5.数据库或是设计模式之类

java这一块,比较重要的是多线程同步异步,java虚拟机内存回收,容器,面向对象这些知识点。就单单是多线程和虚拟机都可以看好几本专门讲解的书了,其他知识点就多啃啃java编程思想,遇到不懂在多翻翻博客加深理解。

Android这一块,异步机制,view的绘制,自定义控件,四大组件都非常重要。不管是android或是java都最好看一些源码,java可以看一些容器的源码,android可以看handler,looper,message等异步通信的源码或是一些开源框架的源码,会看源码绝对是加分项。

计算机网络可以注重看上面几层,传输层注重研究。一般来说,前面这几点掌握好了,足以聊好几轮面试,一般面试官你都可以引导他去聊一些你擅长的知识点。后面几块知识点,你可以先掌握一些比较重要的,不一定每次面试都会遇到,但是也得准备。

##上面是提供一些大概的思路,下面具体说一下每一块的知识点

一、数据结构与算法

推荐书籍:大话数据结构,数据结构与算法分析(java语言描述),剑指offer,进军硅谷。

推荐在线刷题网站:Leetcode

推荐方案:主要做三件事

1, 先看一遍大话数据结构,熟悉一些基本概念,大话这本书只讲了一些基本的数据结构,像是B树,B+树,红黑树需要自己看一些博客或是网站,推荐一个讲解算法的网站-七月算法,另外海量数据处理也是一个经常考的专题,它结合了数据结构和操作系统的一些知识,这个需要进行针对性准备。

2,然后开始刷题,最推荐的肯定是leetcode,刷题建议按照标签进行刷题(比如队列,栈,哈希表),刷题从易到难,最好能够刷一百题左右,如果一天一题,至少要三个月以上,所以这个耗时比较长,要从比较早开始准备。进军硅谷这本书有按照专题进行编排,基本上的题目来自leetcode,可以作为一个参考。

2, 然后要分析一些常见数据结构的源码实现(比如队列,栈,hashmap之类的),数据结构与算法分析这本书有讲一些,可以结合一些博客进行准备。

写在最后

很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料,需要的可以免费分享给大家

我的【腾讯文档】会分享一些关于Android进阶方面的知识,也会分享一下最新的面试题~

如果你熟练掌握GitHub中列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。

①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包——————可以在我的【Github】阅读下载,最后觉得有帮助、有需要的朋友可以点个赞

-fWdg7RXl-1619674102602)]

[外链图片转存中…(img-xW76RQSi-1619674102605)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值