说说我的两点建议:
1、横向发展:(适合有自己专精技术的人)
在自己擅长领域深入钻研的同时,会Hybrid开发(Flutter,RN,H5)之外,会web开发、微信小程序等,再过5年你也完全不用担心找工作。但是,这确实比较难,全栈容易发展成全菜,就是啥都知道,啥都不精!
2、纵向发展:(适合大多数人)
如果做应用开发,就往应用架构方向发展;如果做系统层开发,就钻研底层驱动。
可以从以下这些方面进行学习:
移动架构:
架构展示层:MVC、MVP、MVVM、Android Architecture Components;
架构层:模块化->组件化->插件化->沙盒/双开技术;
基础进阶:
比如高级自定义View、Android Framework层原理, App 管理机制等等;
JNI 和 NDK 开发也是比较常见,5G来了,招聘单位都在给自己公司规划小视频功能,然而我们却连NDK都不懂;
学习开发语言:
比如Kotlin,做底层C/C++是必不可少的,还有一个最容易忽略的 Java语言本身的高级面向对象思想;
源码:
看懂并且熟悉源码,熟悉其实现原理,争取做到能自己二次封装三方库。
面试准备- 了解这些,自然无惧面试
- 解读大部分程序员在面试前很关心的一些问题
- 如果面试官问你“你有什么问题问我吗?”时,你该如何回答?
- 面试官问你优点/缺点时该如何回答(避免雷区)?
- 程序员简历就该这样写
- 非技术问题
- HR 提出的面试问题
- Java 基础
- Java 容器 List Vector ArrayList LinkedList CopyOnWriteArrayList Map HashMap ArrayMap(Android) LinedHashMap TreeMap Hashtable ConcurrentHashMap Cloneable SparseArray Set HashSet TreeSet Queue LinkedBlockingQueue ConcurrentLinkedQueue ArrayBlockingQueue PriorityBlockingQueue SynchronousQueue 容器面试题
- Java 并发 一
- Java 并发 二
- Java 并发 三
- Java 并发 四
- JVM JVM 基础概念 Java内存区域-比较详细 JVM垃圾回收 类文件结构 类加载过程 类加载器 大白话带你认识JVM
- Java 进阶核心技术面试精讲(一)
- Java 进阶源码解析专题(二)
- 面向对象思想
- 设计模式
- 计算机网络
- HTTP
- Socket
Android - 基础
- Context
- Application
- Activity
- Service
- BroadcastReceiver
- ContentProvider
- fragment
- 动画
- 存储
- View
- 接口
- 序列化
- 进程处理
- 内存
- 网络
- 多线程
- 应用无响应
- 屏幕适配
- Android 版本新特性
- Bitmap
- JNI
- Intent
- Lru
- 随机应变
- 其它
Android 中高级专题性能优化
- 图片
- 网络
- 异步
- 注入
- Handler
- 数据库
- 屏幕适配
- 插件化
- 热修复
- 架构
- 组件化
- 路由
- View
- Gradle
- 多渠道
- 性能监控
- NDK
- 音视频
- 混合开发
- 疑难杂症
最后
我坚信,坚持学习,每天进步一点,滴水穿石,我们离成功都很近!
以下是总结出来的字节经典面试题目,包含:计算机网络,Kotlin,数据结构与算法,Framework源码,微信小程序,NDK音视频开发,计算机网络等。