给公司面试了五十多个Android开发,我已经吐血身亡了
Posted 上马定江山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给公司面试了五十多个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高级开发者需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到黑的朋友!
一、架构师筑基必备技能
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
……
二、Android百大框架源码解析
1.Retrofit 2.0源码解析
2.Okhttp3源码解析
3.ButterKnife源码解析
4.MPAndroidChart 源码解析
5.Glide源码解析
6.Leakcanary 源码解析
7.Universal-lmage-Loader源码解析
8.EventBus 3.0源码解析
9.zxing源码分析
10.Picasso源码解析
11.LottieAndroid使用详解及源码解析
12.Fresco 源码分析——图片加载流程
…
三、Android性能优化实战解析
- 腾讯Bugly:对字符串匹配算法的一点理解
- 爱奇艺:安卓APP崩溃捕获方案——xCrash
- 字节跳动:深入理解Gradle框架之一:Plugin, Extension, buildSrc
- 百度APP技术:Android H5首屏优化实践
- 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
- 携程:从智行 Android 项目看组件化架构实践
- 网易新闻构建优化:如何让你的构建速度“势如闪电”?
- …
四、高级kotlin强化实战
1、Kotlin入门教程
2、Kotlin 实战避坑指南
3、项目实战《Kotlin Jetpack 实战》
-
从一个膜拜大神的 Demo 开始
-
Kotlin 写 Gradle 脚本是一种什么体验?
-
Kotlin 编程的三重境界
-
Kotlin 高阶函数
-
Kotlin 泛型
-
Kotlin 扩展
-
Kotlin 委托
-
协程“不为人知”的调试技巧
-
图解协程:suspend
五、Android高级UI开源框架进阶解密
1.SmartRefreshLayout的使用
2.Android之PullToRefresh控件源码解析
3.Android-PullToRefresh下拉刷新库基本用法
4.LoadSir-高效易用的加载反馈页管理框架
5.Android通用LoadingView加载框架详解
6.MPAndroidChart实现LineChart(折线图)
7.hellocharts-android使用指南
8.SmartTable使用指南
9.开源项目android-uitableview介绍
10.ExcelPanel 使用指南
11.Android开源项目SlidingMenu深切解析
12.MaterialDrawer使用指南
…
六、NDK模块开发
1、NDK 模块开发
2、JNI 模块
3、Native 开发工具
4、Linux 编程
5、底层图片处理
6、音视频开发
7、机器学习
七、Flutter技术进阶
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter开发环境搭建和调试
5、Dart语法篇之基础语法(一)
6、Dart语法篇之集合的使用与源码解析(二)
7、Dart语法篇之集合操作符函数与源码分析(三)
…
八、微信小程序开发
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战……
全套视频资料:
一、面试合集
二、源码解析合集
三、开源框架合集
朋友们如果需要这份完整版的资料合集,点击文末CSDN官方认证微信卡片免费领取!!!
以上是关于给公司面试了五十多个Android开发,我已经吐血身亡了的主要内容,如果未能解决你的问题,请参考以下文章
android组件化开发框架,最新Android面试题整理,吐血整理