年末老是一个充满回顾与展望的日子,在2020这场哀鸿遍野的“寒冬”里尤其明显。java
其实不论是公司、集体仍是我的,都须要在这个时候找个机会停下来,思考一下这一年来的收获与成长、失去与遗憾。android
每一个人都有本身的希冀与计划,每一个人又同你我同样,是犯有轻微拖延症的普通人。git
面向即将到来的一年你们总会立各类 flag,临近年终时又老是自嘲式的将计划延期至新的一年。github
2020是一个神奇的一年,发生了许多大事,但回到我的身上也只是一件一件小事。面试
一件一件小事本没有什么意义,但只要注意积累,重复练习,聚沙成塔,应该也会有必定的价值~
下面总结一些2020年的一些小收获算法
下面是你们更关心的问题:编程
腾讯、阿里巴巴、字节跳动、华为、美团、滴滴、百度 ...设计模式
一线大厂通常有不少部门负责不一样的项目,里面不乏知名大学毕业,技术大牛,每每在某一领域已经作到极致,有专门的团队负责某一功能点(性能优化、性能监控、中间件工具组件等),能投入人力物力去作好项目,而且薪酬福利可观,只是工做强度会很大。数组
我在一位同事身上看到不少优秀的学习习惯和方法,在这里不得不认可比你优秀的人还比你努力,是什么能让他变得如此优秀?性能优化
此次换工做差很少花了四个月时间,刷题、复习、学习,面试了数十家小中型公司,可是只面了两家大厂:腾讯和字节跳动,最终去了字节跳动。 两家都是内推的方式,若是身边有大厂的朋友,建议内推试试,避免在 HR 这关被筛了简历。
今年完成了第一次跳槽,积累了一些面试相关的资源,在这里总结一下,但愿对读者有用。
首先是简历,通常找一个模板,填写掌握的技能和项目经历便可。
github上有一个不错的模板,详情可见:https://github.com/CyC2018/Ma...
项目clone后,个性Resuem.md便可,而后导出为pdf文件。
简历建议长度为2页,太长过短都很差。
建议用掌握与熟练掌握取代了解与精通。
算法题能够说是如今找工做必刷的了。不过根据我面试的经验,算法题总得来讲问的仍是比较少,还有一些公司是基本不问算法的。
固然若是碰到字节,快手这种每轮都问算法的公司,若是由于算法题拿不到offer就很惋惜了。
算法题就好像高考语文的古诗词默写同样,分很少,但丢了就很惋惜了。
根据个人经验,大概刷了,掌握100道题就足以应付面试了。
固然彻底掌握须要重复练习,不是刷了一遍就能够的。
这里推荐一下极客时间上覃超的五遍刷题法:
1.第一遍,直接看解法
多解法,比较解法优劣,默写好的解法
2.第二遍,打开leetcode,直接开始写
多种解法比较,调优
3.第三遍,过一天以后,再重复作题
4.第四遍,过了一周,再来反复练
5.第五遍,面试前一周,恢复性训练
经过以上方法重复练习,大概刷100题就足以应付面试,若是天天刷3道,大概准备一个月便可。
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的资料,主要内容包含:
6.算法(字节必问)
算法没有什么窍门,多学多练多总结。
训练阶段能够按照
我本身也整理了一套算法资料,有兴趣的能够瞄一瞄。主要包含一下几个知识点:
①数组-快速排序-第k大个数
②数组-对撞指针-最大蓄水
③数组-滑动窗口-最小连续子数组
④数组-归并排序-合并有序数组
⑤链表-链表反转-链表相加
⑥链表-双指针-删除倒数第n个
⑦二叉树-递归-二叉树反转
⑧动态规划-连续子数组最大和
⑨数据结构-LRU淘汰算法
全部知识点详细内容都整理在了开源项目【GitHub】,有须要的能够自取。
这篇博客主要在于总结和复盘,同时也给了你们一个学习的方向。
大厂会系统性的筛选面试者,一二轮面试经过 java、Android 的技术问题了解面试者的基础能力,能到达第三轮面试说明基础能力合格,再经过项目问题考察面试者的项目/合做能力,固然若是是在线面试会有可能让面试者写编程题或者算法题。
对于面试者来讲,能作的就是提高面试经过率,系统性学习和总结。
人在年轻的时候,最核心的能力是什么?
我认为是:笃定一件事并有耐心长久坚持的能力。
所谓的幸运,就是当你准备好了的时候,机会来了。