逝者如斯夫,不舍昼夜!当我们在用一只手在依依不舍的告别2022年,另外一只手也在翘首以盼的迎着2023年。一年的时间太长了,我几乎忘记去年这个时候在干嘛,一年的时间也太短了,我觉得去年这个时候却恍如昨日。今天是2022年的最后一天,我先提前祝大家新年快乐!在这里我打算写一篇文章来总结一下自己在2022年一年时光里面的历程,同时还对2023年做一个规划。总结过往,展望未来。
1. Android学习之旅
时间渐渐过去,自己毕业已有3年之久,而工作年限也进入第4年。在这4年里面,自己已经写了4篇年度总结,分别如下:
这篇文章是我的第5篇年度总结,所以趁此机会,我想简单总结一下这几年的历程。
我是15年上的大学,学习的专业是软件工程。其实我当时对计算机完全不懂,报这个专业也是机缘巧合,可是谁又能想到,那几年也正是计算机火热的时候,只能说自己很幸运。在我进入大学的时候,对电脑是一窍不通,当时心里面充满了紧张,担心自己跟不上正常的学习进度。那个时候,拿到自己的第一台电脑,都不知道该怎么开关机,敲键盘也是一指禅。因此,我经常一个人待在寝室里面偷偷练习打字,现在想想,那段时光也是挺有趣的。
后来,我就参加了学院的一个社团--IT培优。我很庆幸自己,我也非常感谢这个社团,在这里面,我认识了很多优秀的老师和同学,获得了良好的学习环境,学习了很多的知识。现在,我的衣柜里面还存着一件衣服,就是IT培优的团服。每年夏天的时候,我还会拿出来穿,说真的,那件衣服穿着非常的舒服。现在,这衣服已经非常的陈旧,所以今年学弟们在订制衣服的时候,我让他们也给我订一件,那件衣服现在还一直放在实验室里面,本来想今年找个时间回去拿的,可是一直事愿人违。
至于我为什么学了Android,我认为是纯兴趣使然。在我刚进入大学的时候,那个时候沉迷于手机游戏,有一天发现了游戏的一个辅助软件,有自动寻路和自动打怪之类的功能。不过这个软件需要充钱,否则每次只能试用几分钟,我当时想着把这个软件给破解了。我当时才大一,仅学习了一点点C语言,对什么反编译,Android sutdio,Eclipse完全不懂。不过我照着网上的教程,逐步从安装JDK环境,到安装Eclipse,再到下载Android SDK,最后就是反编译,一顿倒腾,总算是把源码给反编译出来了。那个时候,Android的主流语言还是Java,可是自己对Java完全不懂,因此只得放弃。当时,我非常的气馁,如果自己能懂该多好。
再后来,进入IT培优之后,我就选择了Android组,学习Java语言,学习Android 编程。那个时候,我不满足于学长学姐传授的内容,自己去找相关资源学习,当时主要是在慕课网上看相关的学习视频,那个时候,我基本把慕课网上免费的学习视频都看了一个遍。现在也还能看到我当时学习的课程:
当时在慕课网上认识了很多大佬,比如鸿洋大佬、徐宜生大佬和郭霖大佬等等,现在我还在关注他们的账号,时不时还去膜拜一下。我记得我做的第一个App是一个计算器,那个计算器相比于普通的计算器,可以解方程,当时是我花了一个暑假在实验室倒腾出来,还是挺有意思的。也在那时,我学习了第一个高级控件,叫ViewPager,它可以支持滑动切换的功能。
再再后来,就是更加深入的学习,比如说看徐宜生大佬的《Android 群英传》、任玉刚大佬的《Android 开发艺术探索》和郭霖大佬的《Android 第一行代码》等等,以及学习相关的开源框架,比如说,RxJava、Glide、OkHttp和Retrofit等等。
在2018年的时候,我正式参加实习工作。当时拿了两个offer,一个是快手,一个是京东,不过我选择了前者,同时我现在也还在快手,我真的非常感谢快手。进入公司之后,认识了很多的大佬,做了很多的事情,也学习了很多的知识。那个时候,我对RecyclerView 和嵌套滑动机制还不太熟悉,不过我对它们的实现原理特别感兴趣,因此自己利用空闲时间去学习它们的源码,了解它们的实现,因此也写了很多关于它们的博客。到现在,我自认为,我对它们非常的熟悉。
也就是在2018年底的时候,我觉着自己可以写一下年度总结。从那年开始,每年我会雷打不动的写一篇年度总结,来总结前一年所做的事,规划后一年要做的事。
2. 总结2022
还记得在2021年底的时候,我送给自己三个字:静、想、做。我想自己是做到了。
去年底的时候,在学习上,我给自己立了两个方向:一是学习jetpack compose及其相关的库;二是学习C/C++,研究Android native层。其实我当时也在迷茫,究竟该往哪个方向学习,到今天我总算想清楚了,就是做到了前面两个字:静和想。目标就是:深度为主,广度为辅。所以我选择去学习C/C++,深入了解Android native。虽然今年博客的产出量相比于前几年少了很多,不过我对2022年和2023年充满了信心和希望。
2022年初的几个月,我当时在研究Navigation库,把它的源码看了一遍。是因为,当时项目上想要使用一个导航框架,因此调研了一下官方的库,最后也写了两篇相关的文章:
之后,我就去学习C++和JNI相关的知识。首先是,看完了《C++ Primer Plus》这本书。这本书我看非常的仔细,也看得非常慢,前前后后花了3到4个月才看完。至今我记忆犹新的是,大夏天在屋子里面吹着空调、吃着冰冻西瓜、听着音乐、看着书,人生之惬意也不过如此。当时,我特意拍了一张照片,来纪念这段美好时光。
在看完《C++ Primer Plus》这本书之后,我就去看在掘金上买的小册《Android 性能优化》。这个小册真的非常不错,作者是非常牛逼的大佬,小册里面有很多很多的干货,不过就是需要自身有很强的底层功底。所以,我意识到在这方面我还有很大的不足,于是又买了三本书,分别是:《C和指针》、《程序员的自我修养--链接、装载和库》和《深入Linux内核架构》。我争取在2023年里面把前面两本书给看完,第三本我没有信心,因为实在是太厚太难了。现在,我正在看《C和指针》这本书。于此同时,今年还在github上创建了三个repository,分别是:NativeDemo、CPlusDemo和C-Demo,分别用来记录我在学习C/C++和Android native过程中所写的代码。我完成了做字,现在看到native代码,从以前的畏之如虎到现在的兴趣盎然,感觉变化特别的明显,这也是我充满信心和希望所在的原因!
至于算法方面,我今年在leetcode上刷了200多道题。现在我对自己算法能力还是比较有信心的,简单的动态规划、滑动窗口等形式的题可以信手拈来。同时,也在github创建了一个算法的repository:LeetCodeDemo,用来记录我刷的算法题的代码。关于2023年,我觉得自己也要坚持刷题的习惯,也不为了别的,主要是兴趣所在,没事干的时候去刷一刷。算法是内功,不可弃!
至于英语方面,我本来买了一套英语学习的教程,想要在空闲时间学习一下,可是一直没有进行,算是半废的状态吧。2023年的时候,看能不能拾起来,加油!
还有就是阅读方面,今年一共看完了了三本书,分别是:《神雕侠侣》、《倚天屠龙记》和《笑傲江湖》,现在正在看余华的《兄弟》。我想养成一个习惯,就是一个爱看书的习惯,所以最近我在睡觉之前,都要看半个小时到一个小时的书。至于看书的感受,我特别羡慕和敬佩《笑傲江湖》中的令狐冲,他那种今日有酒今日醉的洒脱、不拘小节广交天下豪杰的侠义以及对师傅师娘始终抱有感恩之情,非常人所能及!
还有就是,本来计划今年来一场旅行的,可也是因为种种原因处于废弃的状态。在2023年里面,看能不能执行起来!
2022年里面,相比于前几年,我觉得自己最大的变化是爱上了纯音乐,具体原因也难以说清,就是听起来感觉特别的舒畅。比如,大气磅礴的《水龙吟》、清新自然的《夜莺》、再或者仙气飘飘的《霞裾云佩》,听起来真的沁入心脾。还有一个变化就是,今年开始沉迷于游戏了,今年有一段时间荒废了,就是因为买了电脑主机,沉迷于steam上的游戏。还不错,2023年要继续玩游戏!
3. 展望2023
新年新气象,我应该也要有新的计划。
- 继续学习Android 相关知识。虽然自己选择去研究native层,但是我觉得应用层还是不可忽视。最近我对Android Resources机制饶有兴趣,因为最近踩了一个奇怪的坑,发现在代码中给View设置了dp值,布局出来的真实dp值可能跟设置的dp值有偏差,排查到的原因就是我们私自改了Resources 中像素密度,进而我觉得自己在这方面有深入研究的必要性,预计今年会写几篇文章来介绍这部分的知识。
- 深入学习C/C++和Android native相关知识。我一直有一个想法,就是想要用C/C++ 来写了一个PLT Hook的工具,这个想法在2021年学习性能优化的时候就出现了。因为当时想要实现一个线上抓Trace的方案,但是我看着native代码却一脸懵逼,对此我还耿耿于怀。所以,我今年争取写出一个PLT Hook的小工具,来弥补当年的遗憾。
- 继续刷算法题,争取继续学习英语。
- 买点字帖,得空的时候多写写字。这个想法是在某一天晚上出现的,那天晚上我下班在楼下挪车,一不小心把别人的车给弄倒摔坏了,于是写了一个便利贴进行道歉。当我在写的时候,发现自己差不多不会写字,所以我觉得自己有必要写写字了。
- 阅读1 ~ 2本文学名著。
- 进行一场旅行,go!go!go!虽然2022年的旅行计划泡汤了,但是2023年还可以继续期盼。
2022年,我送了自己三个字;2023年,我送自己一句话:不以物喜,不以己悲,尽可能以平常心去对待所有的事情。