光阴似剪,日月如梭。不知不觉,从 17 年广工毕业到现在,已经毕业 5 年多了。
从大四开始写博客,有原创 110 多篇, 也获得了 CSDN 博客专家称号和掘金优秀作者称号。
回想这五年来的程序员生涯,谈不上满意,也谈不上失落,处于中上游状态吧。有一些事情本来可以做得更好,却因为某种原因或者某种选择,没能取得更进一步的成绩(改天有时间再讲哈)。。。
不过过去的都过去了,遗憾或者后悔都没用,只能面对。抓住今天,脚踏实地,一步步出发。
技术上,有一些个人的一些小心得,分享给大家
- 学编程,如果要掌握一个知识点,一定要动手去实践,敲代码。很多知识,你看了,貌似懂了,但是你没动手去实践,你永远不可能掌握他的,尤其是初学者,切忌好高骛远,捡了芝麻,丢了瓜。
- 善用搜索引擎,学编程,尽量用 google 搜索,少用百度。道理你懂的
- 善用搜索技巧,关键词很重要。一些前沿技术,或者疑难杂症,有时候你用中文搜不到,不妨用英文提取关键字,说不定会有另外一种收获
- 要学会多归纳总结,形成自己的一套学习方法。尤其是一些重点难点,要尽量搞懂他,吃透他,下次遇到类似的问题,就可以举一反三了。面试跳槽的时候,也可以用这个来当作你的亮点。
- 程序员要多培养一些业务思维,产品思维。懂业务的程序员,更能理解,发现团队的痛点,针对性作出一些改善措施,这样的人往往能够在团队中脱颖而出,取得更好的绩效。同时,在生活中,说不定也能发现额外的机会,发现自己的一片新天地。
更详细的可以看我去年写的这篇文章,我的 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种单例模式,真香
算法
刚开始准备刷算法题目的时候,感觉真的是好难,十道题目有九道是不会的。心中曾一万只草泥马跑过,自己怎么这么辣鸡。
慢慢得,我发现算法也是一个可以通过练习慢慢成长的。
- 首先我们要掌握基本的数据结构,数组,链表,哈希表, Set,二叉树,堆,栈等。你要知道他们有什么优缺点,适应场景是什么,时间复杂度和空间复杂度是多少。而不能知道简单的 API。
- 接着,掌握了这些基本的数据结构之后,一些基本的算法你也要掌握以下,比如快速排序,归并排序,对排序,二分查找。这些基本的一定要掌握,面试当中经常也会问到。
- 分类刷题,我们在力扣上面可以看到,https://leetcode-cn.com/problemset/algorithms/ ,刷题是可以按标签来的。比如链表,数组,二分查找,二叉树,动态规划等
- 学好算法不是一日之功,需要长期的积累。建议的做法是每天做一两道题,题目不在多,贵在于理解。坚持一两个月,你会发现你的感觉逐渐好起来了
最后,让我们一起加油,一起进大厂,拿期权,高薪。
leetcode 算法
leetcode
arraylist-leetcode-list.md
arraylist.md
算法总结】30道题搞定大厂算法面试-二叉树
算法总结
【算法总结】你真的掌握了二叉树的遍历嘛
【算法总结】五道常见的算法-二叉树
面试官:手写生产者消费者模型
快速排序与各种衍生知识点
面试官系列 - LeetCode链表知识点&题型总结
java 版剑指offer集锦
面试官:你有m个鸡蛋,如何用最少的次数测出鸡蛋会在哪一层碎?
归并排序 递归版和非递归版的实现
笔试题—字符串常见的算法题集锦