原创 110 篇了,是时候来篇总结了

语言: CN / TW / HK

光阴似剪,日月如梭。不知不觉,从 17 年广工毕业到现在,已经毕业 5 年多了。

从大四开始写博客,有原创 110 多篇, 也获得了 CSDN 博客专家称号和掘金优秀作者称号

image.png

回想这五年来的程序员生涯,谈不上满意,也谈不上失落,处于中上游状态吧。有一些事情本来可以做得更好,却因为某种原因或者某种选择,没能取得更进一步的成绩(改天有时间再讲哈)。。。

不过过去的都过去了,遗憾或者后悔都没用,只能面对。抓住今天,脚踏实地,一步步出发。

技术上,有一些个人的一些小心得,分享给大家

  1. 学编程,如果要掌握一个知识点,一定要动手去实践,敲代码。很多知识,你看了,貌似懂了,但是你没动手去实践,你永远不可能掌握他的,尤其是初学者,切忌好高骛远,捡了芝麻,丢了瓜。
  2. 善用搜索引擎,学编程,尽量用 google 搜索,少用百度。道理你懂的
  3. 善用搜索技巧,关键词很重要。一些前沿技术,或者疑难杂症,有时候你用中文搜不到,不妨用英文提取关键字,说不定会有另外一种收获
  4. 要学会多归纳总结,形成自己的一套学习方法。尤其是一些重点难点,要尽量搞懂他,吃透他,下次遇到类似的问题,就可以举一反三了。面试跳槽的时候,也可以用这个来当作你的亮点。
  5. 程序员要多培养一些业务思维,产品思维。懂业务的程序员,更能理解,发现团队的痛点,针对性作出一些改善措施,这样的人往往能够在团队中脱颖而出,取得更好的绩效。同时,在生活中,说不定也能发现额外的机会,发现自己的一片新天地。

更详细的可以看我去年写的这篇文章,我的 5 年 Android 学习之路,那些年一起踩过的坑

下面是我这五年来的一些技术文章,大概整理了一些,进行分类,有兴趣的可以看一下。(有一些链接是外链,因为公众号限制,可以点击文章底部的原文,跳转到 github 查看

Android 基础&必学

必知必会

Android 点九图机制讲解及在聊天气泡中的应用

SharedPreferences灵魂拷问之原理

java 源码系列 - 带你读懂 Reference 和 ReferenceQueue

Android livedata 源码解剖

Android lifecyle 源码解剖

Android LiveData 使用详解

Android lifecycle 使用详解

你真的了解 View 的坐标吗

一步步读懂 ButterKnife

Android 二次封装网络加载框架

Android Fragment 的妙用 - 优雅地申请权限和处理 onActivityResult

TextView AutoLink, ClikSpan 与长按事件冲突的解决

聊一聊 Android 中巧妙的位操作

Android 自定义 MarqueeView 实现跑马灯 —— 原理篇

Android MarqueeView 实现跑马灯效果

Android Hook 机制之简单实战

ConstraintLayout最详细使用,减少嵌套优化ui,提升app性能

事件分发机制&嵌套滑动

图解 Android 事件分发机制

ViewPager,ScrollView 嵌套ViewPager滑动冲突解决

这可能是 ViewPager2 滑动冲突最全处理方案

使用CoordinatorLayout打造各种炫酷的效果

自定义Behavior —— 仿知乎,FloatActionButton隐藏与展示

NestedScrolling 机制深入解析

一步步带你读懂 CoordinatorLayout 源码

自定义 Behavior -仿新浪微博发现页的实现

自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页

【使用篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview

【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview

巨丝滑 —— 自己动手撸一个Android图片编辑器(支持长图)

有点酷,仿京东首页体验的嵌套滑动吸顶效果

自定义 View

『Android自定义View实战』实现一个小清新的弹出式圆环菜单

读源码长知识 | 更好的 RecyclerView 表项点击监听器

Android 弹幕的两种实现及性能对比 | 自定义 LayoutManager

这效果炸了,网易云音乐“宇宙尘埃”特效!

Android 玩转PathMeasure之自定义支付结果动画

Android实现图片转字符画效果

效果太酷了,Android 实现一个炫酷的自定义时钟

Android 自定义View之双层波纹气泡(xFermode)

Android-自定义气泡View,让我们告别.9图

TouchDelegate 的这些盲区了解一下?

Android 进阶

启动优化

Android 启动优化(七) - JetPack App Startup 使用及源码浅析

Android 启动优化(六)- 深入理解布局优化

Android 启动优化(五)- AnchorTask 1.0.0 版本正式发布了

Android 启动优化(四)- AnchorTask 是怎么实现的

Android 启动优化(三)- AnchorTask 开源了

Android 启动优化(二) - 拓扑排序的原理以及解题思路

Android 启动优化(一) - 有向无环图

面试官:今日头条启动很快,你觉得可能是做了哪些优化?

Android 页面异步加载优化的几种方案

源码分析

面试官,怎样实现 Router 框架?

面试官:简历上最好不要写Glide,不是问源码那么简单

从筛选简历和面试流程讲起,再给培训班出身的程序员一些建议

Rxjava 2.x 源码系列 - 线程切换 (上)

Rxjava 2.x 源码系列 - 线程切换 (下)

Rxjava 2.x 源码系列 - 线程切换 (下)

Rxjava 2.x 源码系列 - 变换操作符 Map(上)

Rxjava 源码系列 - 基础框架分析

一步步拆解 LeakCanary

java 源码系列 - 带你读懂 Reference 和 ReferenceQueue

入木三分:从设计者角度看Retrofit原理

【带着问题学】Glide做了哪些优化?

隐私合规

Android隐私合规检测(借助 Xposed)

一文学会字节码替换,再也不用担心隐私合规审核

真牛系列 - 一步步解决 App 隐私违规问题

正式开源!无恒实验室推出 appshark 自动化漏洞及隐私合规检测工具

Idea插件学习

Android Studio IDE 插件开发

IntelliJ IDEA/Android Studio插件开发指南

效率提升百分之四十,AS模板也太好用了吧

Android Studio Template(模板)开发

系统性解决IntelliJ IDEA插件开发环境问题

快看漫画提效工具之Android Studio插件

开发AndroidStudio图片压缩插件TinyPngPlus

性能监控&优化

Android 代码覆盖率如何实现

Android 快速适配 64 位架构

Android IO监控 | 性能监控系列

爱奇艺 Xcrash 是怎么捕获 crash 的

快手线上 OOM 监控方案 - KOOM 分析

Android NDK Crash 定位简单分析

今日头条 ANR 优化实践系列 - 监控工具与分析思路

Android 彻底消灭 OOM 的实战经验分享(千分之1.5 -> 万分之0.2)

疑难杂症

okhttp文件上传失败,居然是Android Studio背锅?太难了~

APP 定位过于频繁,我用反射+动态代理揪出元凶,太强了

RxJava 堆栈异常信息显示不全,怎么搞

耗时一周,我解决了微信 Matrix 增量编译的 Bug,已提 PR

什么?Android 编译线程爆了, gradle 内存 OOM 解决之路

个人总结

个人总结

程序员该如何写好自己的简历,一位 5 年中大厂老哥跟你聊聊

我的 5 年 Android 学习之路,那些年一起踩过的坑

关于我,一个简单低调的程序员

职场上这四件事,越早知道越好

今天,说三件小事

技术人的未来在哪里

致刚入职场的你 - 程序员的成长笔记

徐公随笔

关于小米得屌丝者得天下的一些思考

延迟享受,在最好的年纪请不要选择安逸

我面试人只看这4点

那些年,我们一起追过的安卓技术大佬们

职场上这四件事,越早知道越好

干起来,你就超过了 50% 的人

致刚入职场的你 - 程序员的成长笔记

拼夕夕事件反思,底层逆袭,靠拼命加班行吗

2019.05 随笔

面试必备

网络和基础

面试官系列 - https 真的安全吗,可以抓包吗,如何防止抓包吗

Android 面试必备 - http 与 https 协议

Android 面试必备 - 计算机网络基本知识(TCP,UDP,Http,https)

Android 面试必备 - 系统、App、Activity 启动过程

Android 面试必备 - JVM 及 类加载机制

面经

面试 Google, 我失败了 | Google 面经分享

常见的链表翻转,字节跳动加了个条件,面试者高呼「我太难了」| 图解算法

面试官:说说多线程并发问题

【不用背的原理】不用背的ThreadLocal原理

面试官:你能说说生产者消费者的几种实现方式吗

阿里钉钉,字节抖音 Android 面经分享

又卡了~从王者荣耀看 Android 屏幕刷新机制

设计模式

[即学即用] Android开发——状态模式

带你了解Android常见的内存缓存算法

Android 建造者模式(Builder)及其应用

责任链模式以及在 Android 中的应用

java 代理模式详解

装饰者模式及其应用

Kotlin下的5种单例模式,真香

算法

刚开始准备刷算法题目的时候,感觉真的是好难,十道题目有九道是不会的。心中曾一万只草泥马跑过,自己怎么这么辣鸡。

慢慢得,我发现算法也是一个可以通过练习慢慢成长的。

  1. 首先我们要掌握基本的数据结构,数组,链表,哈希表, Set,二叉树,堆,栈等。你要知道他们有什么优缺点,适应场景是什么,时间复杂度和空间复杂度是多少。而不能知道简单的 API。
  2. 接着,掌握了这些基本的数据结构之后,一些基本的算法你也要掌握以下,比如快速排序,归并排序,对排序,二分查找。这些基本的一定要掌握,面试当中经常也会问到。
  3. 分类刷题,我们在力扣上面可以看到,https://leetcode-cn.com/problemset/algorithms/ ,刷题是可以按标签来的。比如链表,数组,二分查找,二叉树,动态规划等
  4. 学好算法不是一日之功,需要长期的积累。建议的做法是每天做一两道题,题目不在多,贵在于理解。坚持一两个月,你会发现你的感觉逐渐好起来了

最后,让我们一起加油,一起进大厂,拿期权,高薪。

leetcode 算法

leetcode

arraylist-leetcode-list.md

arraylist.md

算法总结】30道题搞定大厂算法面试-二叉树

算法总结

【算法总结】你真的掌握了二叉树的遍历嘛

【算法总结】五道常见的算法-二叉树

面试官:手写生产者消费者模型

快速排序与各种衍生知识点

面试官系列 - LeetCode链表知识点&题型总结

java 版剑指offer集锦

面试官:你有m个鸡蛋,如何用最少的次数测出鸡蛋会在哪一层碎?

归并排序 递归版和非递归版的实现

笔试题—字符串常见的算法题集锦

小结

以上是我对 5 年来,技术文章的一些简单整理。如果你认可我的话,可以关注我的位置公众号徐公