给公司面试了五十多个Android开发,我已经吐血身亡了

身在某二线互联网公司,面试了很多应聘安卓岗位的程序员。符合要求的很少,目前来看也就百分之五左右。

我面试Android的时候一般都是先看看面试者的Java基础知识,然后是一些基本的数据结构和基本的算法。然后是一些面向对象的思想,最后是Android。因为任务基础扎实了,面向对象的思想有了,开发Android是很简单的事情,即使有什么不懂,也很快会学会。

很大一部分面试者连List 与ArrayList什么关系都搞不清楚,至于List的其他实现类一概不知。还有Map, Set 就更不知道了。让谈谈常用的数据结构,完全蒙了,什么是数据结构?听过但是不知道,好像这个东西离他们很遥远似的。我说你开发中不用数组,不用HashMap吗?大部分人惊讶的反问:数组是数据结构吗?我说数组的底层不就是顺序列表吗?一脸疑惑,什么是顺序列表?我已经吐血身亡了。泛型只知道List,问什么意思完全不知道。至于面向对象,几乎没有人将多态讲明白。

总的来说:

目前安卓开发的问题在于大部分都是三年工作时间,一年工作经验。一般来说问题在于以下五点。

第一,主要依靠第三方类库,自己不了解内部实现。简历上罗列一大批开源类库,使用经验有,内部原理一无所知。简单来说imageloder怎么做缓存的,缓存算法有哪些,lru的特性是什么,为什么用linkedhashmap实现。。。基本没有能讲清楚的。

第二,Java功底不足。arraylist怎么实现的,map怎么实现的,hashmap和arraymap适用场景,volatile和synchronized有什么区别,多线程如何同步。。。这些都是基础知识,不懂的大有人在。

第三,虚拟机不了解,就敢说精通性能优化。内存泄露和溢出天天说,具体怎么引起的,怎么分析堆内存,怎么做内存管理,这些不是简单网上几篇帖子就能学会的。

第四,安卓基础不扎实,线程怎么通信,进程怎么通信。好多程序员还停留在handler是用来修改ui界面这样的认知程度。framework层还有很多要学的,更别提内核了,都是宝藏啊。。

第五,网络通信这一块,tcp/udp基础协议还是要理解吧,tcp为什么安全可靠,怎么做到的,HTTP协议是怎么回事,只会用OKHTTP是不行的啊朋友。

可能说的唠叨了点,我想表达的是,一个安卓开发的自我修养并不应该局限于应用开发。需要学习的东西太多了,如果你内功足够,随时离职都有大批公司抢着要,只是会做应用的程序员肯定要被淘汰。

大部分公司要的是三年工作经验,而不是一年经验凑合了三年的人。

最后,入了程序员的坑,就的学到老啊。。。

绵薄之力

做为一名Android开发者,接下来我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名Android高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

文中所有资料都是免费分享给大家的,只需你动动手指点击此处就可免费领取了。

猜你喜欢

转载自blog.csdn.net/weixin_52217015/article/details/115255252