Android开发真的凉了吗?
经常有朋友问我:“现在学习Android开发还有前景吗?”“Android开发还有什么可以研究的?”大家对于职业的未来,都有一些迷茫和焦虑,其实我也有,为什么会这样呢?
现在互联网行业,各大公司已经从争夺用户转为争夺用户时长。而小程序、快应用的崛起,也让许多 App 的增长达到瓶颈。所有人都在说,国内移动互联网的红利期已经过去。
另外一方面,今年移动端的技术变革也确实有点慢。大前端的概念虽然说了很久也很多,但React Native、PWA的效果依然不尽人意。
这么看来,移动开发的前景不明朗,再加上竞争激烈以及技术变革放缓,我们这些开发者感到迷茫、焦虑就不难理解了。但这是不是就意味着从事移动开发是没有前途的呢?
我认为,移动开发是不局限于App开发的,比如 IOT、音视频、边缘计算、VR/AR,很多新的技术浪潮其实都可以融入到移动开发的体系里。对我们开发者来说,一定要打好基础,随时准备战斗。不论寒冬是否到来,都要把自己的技术做精做深。
下面的这些关于Kotlin的一些技术进阶大纲,希望对小伙伴们有一定的帮助。
一、数据类型
- Boolean数据类型
- Number数据类型
- 拆箱装箱与Char数据类型
- 基础数据类型转换与字符串
- 类和对象
- 空类型和智能类型转换
- 包(package)
- 区间(Range)
- 数组(Array)
二、程序结构
- 常量与变量(val,var)
- 函数(function)
- Lambda表达式
- 类成员(成员方法、成员变量)
- 基本运算符
- 表达式(中缀表达式,分支表达式,when表达式等)
- 循环语句(for循环,while循环,continue,break)
- 异常捕获(try,catch,finally)
- 具名参数,变长参数,默认参数
三、面向对象
- 面向对象-抽象类与接口(abstract,interface)
- 子承父业-继承
- 类及其成员的可见性(private,protected,internal,public)
- object
- 伴生对象与静态成员
- 方法重载与默认参数
- 扩展成员
- 属性代理
- 数据类(allOpen,noArg插件,再见,javaBean)
- 内部类(this@Outter,this@Inner)
- 枚举(enum)
- 密封类(sealed Class)
四、高阶函数
- 高阶函数的基本概念
- 常见高阶函数(forEach,map,flatmap,fold,reduce,filter,takeWhile,let,apply,with,use)
- 尾递归优化 (tailrec)
- 闭包(函数式编程的福音)
- 函数复合(f(g(x)),infix)
- 柯里化(Currying)-函数调用链
- 偏函数
五、Lambdas编程
- lambdas简介
- lambdas和集合
- lambda表达式
- 访问作用域中的变量
- 成员引用
- 集合的函数式API之filter和map
- all、any、count和find
- groupBy
- flatMap和flatten
- 序列
- 使用Java函数式接口
- 把lambda作为参数传给Java方法
- 显式地把lambda转换为函数式接口
- 带接收者的lambda之with函数
- 带接收者的lambda之apply函数
六、领域特定语言 DSL
- DSL 的基本概念
- Gradle Kotlin 脚本编写
七、协程 Coroutine
- 协程的基本概念
- 协程的原理剖析
- Kotlinx.coroutine框架介绍
八、反射语法与库
- Kotlin中使用 Java 反射
- Kotlin中使用 Kotlin 反射
九、泛型,型变,星投影
- 泛型的基本语法
- 泛型的实现机制
- 型变
- 星投影
十、Kotlin与Android
- Anko配置及使用
-
Kotter Knife
-
RxKotlin及RxAndroid配置
-
Kotlin Retrofit
-
Kotlin Android Extensions
总结
最后对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
这里附上上述的技术体系图相关的几十套腾讯、头条、阿里、美团等公司20年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
相信它会给大家带来很多收获:
上述【高清技术脑图】以及【配套的面试真题PDF】可以点击我的腾讯文档免费获取
本文在开源项目中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
、及系列技术文章等,资源持续更新中…
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。