金三银四大厂面经总结,抖音四面被拒,再战头条终获offer,已拿offer入职

开头

在大厂,写得一手好文档是一个非常吃香的技能。这可不只是一个锦上添花的东西,而是很多工程师晋升,打造自己话语权的武器。 我这两年在组内的深刻体会就是,大部分厉害的高级工程师(不包括那些纯混日子靠资历晋升的人),写文档的能力一点也不含糊,很能抓住上级和项目的G点。

可能有人会觉得,我技术牛逼就行了,为啥还要提高写文档的能力,有这功夫我还不如多看看源码分析?这是一些初级或者刚入门的工程师的普遍的困惑。这是因为大部分刚刚入行的朋友有一个很深的误区,就是他们以为做软件工程是一个和计算机打交道的工作,其实不然。软件工程不只是和代码打交道,更重要的是和人打交道,是一份社会性质很强的工作。在大部分公司里面,尤其是大厂,牵涉到的人,组,都是非常非常多的。在小厂,人与人之间交流意见和设计可以口口相传,心领神会,但是一旦人开始多了,就只能靠文档了。除非你可以厉害到一个人把所有代码撸完,不然还是最好老老实实的夯实自己写文档的能力。

如果你有写技术博客的习惯,那么恭喜你,相信你已经对如何抓住文档受众的技巧有所了解了。这对你在大厂生存有很大的帮助。如果没有也不要伤心,这篇文章就是为你精心设计的。

在这篇文章里,我会大致的把一份安卓的项目设计文档的骨架,和一些我工作中实际遇到的正反例都列出来,方便大家以后在工作中实践。

下面的这些关于Kotlin的一些技术进阶大纲,希望对小伙伴们有一定的帮助。

一、数据类型

  1. Boolean数据类型
  2. Number数据类型
  3. 拆箱装箱与Char数据类型
  4. 基础数据类型转换与字符串
  5. 类和对象
  6. 空类型和智能类型转换
  7. 包(package)
  8. 区间(Range)
  9. 数组(Array)

二、程序结构

  1. 常量与变量(val,var)
  2. 函数(function)
  3. Lambda表达式
  4. 类成员(成员方法、成员变量)
  5. 基本运算符
  6. 表达式(中缀表达式,分支表达式,when表达式等)
  7. 循环语句(for循环,while循环,continue,break)
  8. 异常捕获(try,catch,finally)
  9. 具名参数,变长参数,默认参数

三、面向对象

  1. 面向对象-抽象类与接口(abstract,interface)
  2. 子承父业-继承
  3. 类及其成员的可见性(private,protected,internal,public)
  4. object
  5. 伴生对象与静态成员
  6. 方法重载与默认参数
  7. 扩展成员
  8. 属性代理
  9. 数据类(allOpen,noArg插件,再见,javaBean)
  10. 内部类(this@Outter,this@Inner)
  11. 枚举(enum)
  12. 密封类(sealed Class)

四、高阶函数

  1. 高阶函数的基本概念
  2. 常见高阶函数(forEach,map,flatmap,fold,reduce,filter,takeWhile,let,apply,with,use)
  3. 尾递归优化 (tailrec)
  4. 闭包(函数式编程的福音)
  5. 函数复合(f(g(x)),infix)
  6. 柯里化(Currying)-函数调用链
  7. 偏函数

五、Lambdas编程

  1. lambdas简介
  2. lambdas和集合
  3. lambda表达式
  4. 访问作用域中的变量
  5. 成员引用
  6. 集合的函数式API之filter和map
  7. all、any、count和find
  8. groupBy
  9. flatMap和flatten
  10. 序列
  11. 使用Java函数式接口
  12. 把lambda作为参数传给Java方法
  13. 显式地把lambda转换为函数式接口
  14. 带接收者的lambda之with函数
  15. 带接收者的lambda之apply函数

六、领域特定语言 DSL

  1. DSL 的基本概念
  2. Gradle Kotlin 脚本编写

七、协程 Coroutine

  1. 协程的基本概念
  2. 协程的原理剖析
  3. Kotlinx.coroutine框架介绍

八、反射语法与库

  1. Kotlin中使用 Java 反射
  2. Kotlin中使用 Kotlin 反射

九、泛型,型变,星投影

  1. 泛型的基本语法
  2. 泛型的实现机制
  3. 型变
  4. 星投影

十、Kotlin与Android

  1. Anko配置及使用
  • anko-commons
  • anko-layout
  • anko-coroutines库
  • anko-sqlite库
  1. Kotter Knife

  2. RxKotlin及RxAndroid配置

  3. Kotlin Retrofit

  4. Kotlin Android Extensions

  • 插件原理
  • 插件使用

学习路线+知识梳理

花了很长时间,就为了整理这张详细的知识路线脑图。当然由于时间有限、能力也都有限,毕竟嵌入式全体系实在太庞大了,包括我那做嵌入式的同学,也不可能什么都懂,有些东西可能没覆盖到,不足之处,还希望小伙伴们一起交流补充,一起完善进步。

img

本文在开源项目:Android开发不会这些?如何面试拿高薪 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md) 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…

这次就分享到这里吧,下篇见

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值