关于android:2020年Android开发年终总结之如何挤进一线大厂

1次阅读

共计 3841 个字符,预计需要花费 10 分钟才能阅读完成。

前言

年底总是一个充斥回顾与瞻望的日子,在 2020 这场哀鸿遍野的“寒冬”里尤为显著。

其实不论是公司、个体还是集体,都须要在这个时候找个机会停下来,思考一下这一年来的播种与成长、失去与遗憾。

每个人都有本人的期望与打算,每个人又同你我一样,是犯有轻微迁延症的普通人。

面向行将到来的一年大家总会立各种 flag,邻近年初时又总是自嘲式的将打算延期至新的一年。

2020 的播种

2020 是一个神奇的一年,产生了许多小事,但回到集体身上也只是一件一件小事。

一件一件小事本没有什么意义,但只有留神积攒,反复练习,千里之行; 始于足下,应该也会有肯定的价值~
上面总结一些 2020 年的一些小播种

  • 实现了一次跳槽,顺利进入一线互联网大厂
  • 保持写文章
  • 保持了 ARTS 打卡
  • 保持了每周的总结与下周布局

2021 的瞻望

  • 做一个 100 以上 star 的 Github 开源我的项目
  • 读几本计算机原理,计算机网络,数据结构等根底畛域的书
  • 把握 flutter 的应用与相干原理
  • 持续保持 ARTS 打卡
  • 持续保持每周的总结与下周布局
  • 最初,心愿以上都能实现

上面是大家更关怀的问题:

怎么挤进一线大厂

腾讯、阿里巴巴、字节跳动、华为、美团、滴滴、百度 …

一线大厂个别有很多部门负责不同的我的项目,外面不乏出名大学毕业,技术大牛,往往在某一畛域曾经做到极致,有专门的团队负责某一性能点(性能优化、性能监控、中间件工具组件等),能投入人力物力去做好我的项目,并且薪酬福利可观,只是工作强度会很大。

我在一位共事身上看到很多优良的学习习惯和办法,在这里不得不抵赖 比你优良的人还比你致力,是什么能让他变得如此优良?

  • 多写多练,没有捷径:知识面广的人肯定是一直积攒造成的广度,一道难题他能解答,更多的可能在于 1. 这道题他做过 2. 做过类似的题型。例如 链表中环的检测,没有做过或者理解类似题型的人,是很难可能写出答案的,但实际上它并不难。
  • 长于思考,系统性学习 :例如网络编程 TCP / UDP 工作中接触的概率不大,大多数人都是冲着面试去学的,百度谷歌一下 TCP / HTTP 面试相干,晓得有三次握手、四次挥手滑动窗口等,但很难把这些常识内容关联成 网状结构 ,看了没多久又会忘得差不多。这里我倡议系统性学习,从文档、书籍中 更全面更零碎 地理解这些内容,退出到大脑的一个记忆分支中。
  • 不要试水,一步到位 :人都会有侥幸心理,抱着试试看的态度。编码、学习、或者是面试,没有一次性做到位的信心。事实上重构、从新开始、从新面试都会破费更多的工夫。像大厂的面试周期都要半个月或者一个月,没有通过的话不仅浪费时间,而且这段时间情绪简单、焦虑、期盼。因而如果想面试跳槽, 尽量一步到位、下定决心,把指标放高一些,进不了一线大厂也能找到一个好的公司。

这次换工作差不多花了四个月工夫,刷题、温习、学习,面试了数十家小中型公司,然而只面了两家大厂:腾讯和字节跳动,最终去了字节跳动。两家都是内推的形式,如果身边有大厂的敌人,倡议内推试试,防止在 HR 这关被筛了简历。

一些面试资源

往年实现了第一次跳槽,积攒了一些面试相干的资源,在这里总结一下,心愿对读者有用。

简历

首先是简历,个别找一个模板,填写把握的技能和我的项目经验即可。
github 上有一个不错的模板,详情可见:https://github.com/CyC2018/Ma…
我的项目 clone 后,共性 Resuem.md 即可,而后导出为 pdf 文件。
简历倡议长度为 2 页,太长太短都不好。
倡议用把握与熟练掌握取代理解与精通。

刷题

算法题能够说是当初找工作必刷的了。不过依据我面试的教训,算法题总得来说问的还是比拟少,还有一些公司是根本不问算法的。

当然如果碰到字节,快手这种每轮都问算法的公司,如果因为算法题拿不到 offer 就很惋惜了。

算法题就如同高考语文的古诗词默写一样,分不多,但丢了就很惋惜了。

依据我的教训,大略刷了,把握 100 道题就足以应酬面试了。

当然齐全把握须要反复练习,不是刷了一遍就能够的。

这里举荐一下极客工夫上覃超的 五遍刷题法:

1. 第一遍,间接看解法
多解法,比拟解法优劣,默写好的解法

2. 第二遍,关上 leetcode,间接开始写
多种解法比拟,调优

3. 第三遍,过一天之后,再反复做题

4. 第四遍,过了一周,再来重复练

5. 第五遍,面试前一周,恢复性训练

通过以上办法反复练习,大略刷 100 题就足以应酬面试,如果每天刷 3 道,大略筹备一个月即可。

Android 外围知识点

Android 涵盖点比拟广,倡议以官网文档为主:Android 开发者指南,官网文档很具体并且简直笼罩所有的 Api,如果你想学习 Jetpack,也倡议从官网文档动手 Android Jetpack,比大多数博客更权威,是一种不错的常识和资源获取路径。

能够把 Android 分为以下几个纲要:

1.Android 相干源码

学习 Android 源码有助于咱们学习其中的设计模式、思维、架构。相熟整个源码的架构,有助于咱们更加正确地调用 Android 提供的 SDK,写出高效正确的代码。

我把源码相干材料整顿成了 PDF,内容涵盖 MMKV、Retrofit、OkHttp、EventBus、View、Handler、Binder、Glide、JNI 的源码深度解析。但因为篇幅起因,只做核心内容截图展现,笔记全文共有 486 页。

2.Android 性能优化

在 Android 开发中,性能优化策略非常重要。因为其决定了应用程序的开发品质:可用性、流畅性、稳定性等,是进步用户留存率的要害。

在此献上一份 Android 性能优化的具体攻略,含:优化方向、起因 & 具体优化计划、APP 性能优化实际,心愿你们会喜爱。

所有知识点具体内容都整顿在了开源我的项目【GitHub】, 有须要的能够自取。

3.Android 开源框架

随着互联网企业的一直倒退,产品我的项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、疾速迭代的目标越来越难,还有 65535,利用之间的相互调用等等问题,插件化技术利用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的利用,可能会有几个 g 那么大。

所以,当今的 Android 挪动开发,不会热修复、插件化、组件化,80% 以上的面试都过不了。

我花了将近半个月工夫将 Android 热修复框架、插件化框架、组件化框架、图片加载框架、网络拜访框架、RxJava 响应式编程框架、IOC 依赖注入框架、最近架构组件 Jetpack 等等 Android 第三方开源框架整合成了一套零碎常识笔记 PDF,长达 1042 页!置信看完这份文档,你将会对这些 Android 第三方框架有着更深刻、更零碎的了解。

4.Android Framework

Framework 宽泛的利用在各个领域。像掉帧监控,函数插装,慢函数检测,ANR 监控,启动监控,都须要对 Framework 有比拟深刻的理解,能力晓得怎么去做监控,利用什么机制去监控,函数插桩插到哪里,反射调用该反射哪个类哪个办法哪个属性……

Framework 的重要性不必多说,为此我整顿了一份 framework 高级开发笔记,局部常识章节公布到了 GitHub 曾经标星 18k 了,明天就拿进去分享给大家。

次要章节:

第一章:深刻解析 Binder
第二章:深刻解析 Handler
第三章:Dalvik VM 过程零碎
第四章 深刻解析 WMS
第五章 PackagerManagerService

依照下面纲要开展拓扑构造学习,最终造成常识大网。当然每个知识点都须要 深刻摸索

附加参考书籍:《Android 开发艺术摸索》《深刻了解 ANDROID 卷 3》《Android 进阶解密》。

5.NDK 模块开发

NDK 是原生开发工具包,这套工具容许 Android 应用 C /C++ 代码,并提供了泛滥的平台库。

我整顿了一套无关 NDK 的材料,次要内容蕴含:

  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片解决
  • 音视频开发
  • 机器学习

6. 算法(字节必问)

算法没有什么诀窍,多学多练多总结。

训练阶段能够依照

  1. 《算法 第 4 版》 学习数据结构和算法思维。
  2. 准备了理论知识后开始编码上手,先依照 《剑指 offer》 这本书的算法题目在牛客网上刷题。
  3. 能够说当你把《剑指 offer》算法题都刷完了,算法这一关的通过率能够达到 60%。如果想要有更高的造诣,那就依照 Leetcode 题解 – 目录上整顿的题目纲要以及解题思路,更全面零碎的晋升算法能力。达到这一步,算法面试的通过率能够达到 90%

我本人也整顿了一套算法材料,有趣味的能够瞄一瞄。次要蕴含一下几个知识点:

①数组 - 疾速排序 - 第 k 大个数
②数组 - 对撞指针 - 最大蓄水

③数组 - 滑动窗口 - 最小间断子数组
④数组 - 归并排序 - 合并有序数组
⑤链表 - 链表反转 - 链表相加
⑥链表 - 双指针 - 删除倒数第 n 个
⑦二叉树 - 递归 - 二叉树反转
⑧动静布局 - 间断子数组最大和
⑨数据结构 -LRU 淘汰算法

所有知识点具体内容都整顿在了开源我的项目【GitHub】, 有须要的能够自取。

写在最初

这篇博客次要在于总结和复盘,同时也给了大家一个学习的方向。

大厂会系统性的筛选面试者,一二轮面试通过 java、Android 的技术问题理解面试者的根底能力,能达到第三轮面试阐明根底能力合格,再通过我的项目问题考查面试者的我的项目 / 单干能力,当然如果是在线面试会有可能让面试者写编程题或者算法题。

对于面试者来说,能做的就是晋升面试通过率,系统性学习和总结。

人在年老的时候,最外围的能力是什么?

我认为是:笃定一件事并有急躁短暂保持的能力。

所谓的侥幸,就是当你筹备好了的时候,机会来了。

正文完
 0