查看原文
其他

一名七年老安卓的一二月小结

拭心 拭心又在思考了我的天 2024-01-03

你好,我是 shixin,一名工作七年的安卓开发。

每两个月我会做一次总结,记下这段时间里有意义的事和值得反复看的内容,为的是留一些回忆、评估自己的行为、沉淀有价值的信息。

一转眼 2023 年过去了六分之一,这两个月经历了不少事,趁着周末有时间,细细琢磨一下这段时光的得与失,以更好的姿态迎接下个双月。

历史总结:

有什么有意义的事

年度总结得到了认可

去年的年度总结得到了一个奖品,开心😄。

面试别人的同时反思自己

一月份面试较多,从更高级别面试官的评价中学到了一些努力方向。

这些面试里我负责一面,主要关注基础、项目经历、资历匹配度和靠谱程度;二面是某部门负责人,主要关注音视频经验、技术广度、项目统筹能力、带团队能力、工作稳定性。

二面面试官喜欢让面试者做「优势自评和缺点自评」,这个问题挺好的,也让我开始思考自己的优势、缺点:

  • 优势自评:有技术好奇心,有主动性,有强烈的进取心,技术广度和深度匹配工作年限

  • 缺点自评:音视频经验不足,带团队能力缺乏经验

印象深刻的是一个工作 11 年的人,履历还是挺好看的,迅雷、百度、XX,但技术深度总感觉和年限不匹配,做的东西还是有点简单,模板化组件化、CodeReview、CICD... 

聊完以后我不禁在想,是不是我的标准有问题?可能并不是所有人都有我遇到过那些大佬那么牛逼,做安卓上层业务的复杂度或许就是这些。

面试很多人后,我的感悟是一方面要调整自己的标准,另一方面也要努力成为更稀缺的人。

什么样的人算是稀缺的?

  • 懂 ART 和 Linux 底层,有 NDK 开发经验

  • 在性能优化/音视频/图像处理某个领域有比较深的实践

  • 有带团队的经验

  • 懂得前后端

排查一个数据问题,思考如何做的更好

一月份排查一个线上曝光数据问题,折腾了好几个版本,最后发现不是我的代码问题😂,今天反思一下如何做的更好。

问题背景:

  • 十二月做了一个需求,上线后产品反馈埋点数据异常,曝光数据比预期少了很多

  • 由于这个需求面向用户比较细分,需要命中客户端和服务端的多个条件才会执行(先满足客户端条件才会调用服务端接口),所以排查到底是哪个环节出了花了好久(两个版本迭代的时间)

问题原因:

  1. 很久之前就存在的退出埋点,没有区分具体退出行为,导致产品期望的「目标用户数」偏多(误导我以为客户端条件判断有问题,导致没调用接口)

  1. 服务端权益发放接口有问题,导致目标用户没获取到权益(关键原因)

如何解决的:

  1. 新增埋点,细分退出类型,以圈出真正的目标用户人群

  1. 增加接口返回值上报,以查看服务端返回信息

  1. 最后发现是服务端返回未获取到权益,进一步排查是权益发放接口有问题,没有发放给目标用户

如何避免这种情况再发生?

  1. 如果退出埋点可以区分退出类型,就不会有目标人群过大的问题,预期的曝光量就会少,分析问题时也不会跑偏

  • 以后做数据埋点时,要从技术角度多思考一下,看看目前的埋点属性是否够穷举所有可能,不够的话主动提出增加属性,以便后期分析问题

  1. 如果一开始就上报一下有没有调用接口,而不是服务端说什么信什么,就可以早一点确定到底哪一步有问题

  • 长链路要在关键节点(开关、接口、数据结果)增加埋点,配合开关,有问题时开启上报(debug 时强制开启)

  1. 如果一开始多找后端确认下他那边权益下发成功率,可能也就不需要绕这么大弯路

  • 分析问题时要看的到整个链路,有质疑其他端的勇气,拉着后端一起排查,而不是自己一个人尝试

小结:由于客户端距离用户更近,出了问题经常会被认为是客户端的问题,结果排查半天发现不是自己问题的情况。我们能做的就是:复杂链路增加详细埋点,以备不时之需;了解需求的整个链路,遇到问题从整体思考哪里可能有问题,尽早拉别的端并行查看,提高效率。

团队贡献:沉淀了两篇文章

今年需要在「团队贡献」上多做一些努力,这两个月分享了两个工具,可以帮助提升开发效率。

从游戏排位中反思过程和结果

随着年纪增加,能获取到乐趣的事情越来越少。现在休息日,娱乐项目基本就是刷短视频、打游戏,连电影都好久没看了。

一月份 lol 手游终于上了「大师」,为了上这个级别花了好几个晚上,中间一度连跪 6 把,心态崩了。

本来娱乐的目的是放松,是为了玩的过程中获得乐趣,但随着排位等级提升,我的注意力基本全放到了「升级」上,每把的目的就是赢,有时候想选点感兴趣但不熟悉的英雄,也因为担心输放弃了

带来的结果就是,如果赢了心情很好,但一旦自己被打爆或者遇到很坑的队友,就觉得这把完蛋白玩了😡。不知不觉中,就忘记了娱乐的意义。

在某一瞬间,我觉得这种时候的我和「在追寻答案的悉达多」有些相似。那一刻的我心里完全只有目的,看不到其他有趣的部分,感官因为心态变得闭塞、心态因为结果变得烦躁,陷入了「只看结果的执念」

虽然「活在当下」听人说了一万次,但我发现自己还是做不到,还是看重结果甚于过程。这点要改。

拍了个证件照

一月份花一百块照了张形象照,跟照相师强调“要那种自信轻松的感觉”,拍出来的结果还算满意:

为什么要拍形象照呢?

主要是受前段时间看到的一个独立开发者网站,他的形象照很阳光自信,让人觉得值得信赖。

见贤思齐,我找了个周末也照了一张,照完没多久就到了社区分享的时间,果然派上了用场哈哈。

无论公司聘用还是建立合作,考察的主要是能力、性格和态度,对于程序员来说,能力可以通过博客、Github、Leetcode 或者作品来体现;而性格则需要通过沟通或者完成的事情来评估,形象照可以一定程度的让人看出性格。

开源 AndroidBitmapMonitor

二月份把之前做的一个图片内存分析工具 AndroidBitmapMonitor 提交到了 Github 上,得到的反馈还算不错,解决了安卓开发者分析图片内存的需求,这是我今年的第一个“作品”。

前几年我的空闲时间主要用在了「输入」上,输入和输出的比例可能是 9:1。

今年我已经三十岁了,对于一位“中老程序员”来说,需要多一些作品,一方面用来证明自己的能力,另一方面也可以带来更多价值,多种善缘总归是没错的。

产出可以称为“作品”的东西,它能够持续、深度影响到很多人,成为我们人生的杠杆、思想的放大器。这个作品可以是一个公众号、一本书、一个开源项目、一个抖音号、一个课程、一个播客、一个产品。

完成技术分享

二月二十三号,在社区里进行了一场技术分享,主要介绍安卓图片内存分析的常见方法,进而引出了我的这种新方案。

大概有将近一年没做社区的直播分享了,虽然内容早就有,但为了保证有好的分享效果,还是花了我几个周末准备。当天晚上为了避免犯困还没吃饭😂。还好最后效果还可以,听众们很给力,提了很多问题。

回放在这里:

准备分享虽然比较费时费力,但总的来说还是挺有收获的,一方面逼着自己就分享主题多思考多总结,另一方面也可以锻炼表达的流畅性和临场应变能力,今年希望可以多一些分享,多一些锻炼。

和总裁级别的大佬近距离接触

二月份参加了公司一个很重要的项目沟通会,在会上见到了一些总裁级别的大佬,让我非常有感触。

有一位女总裁看起来比较年轻,让我一开始以为是 HR。直到后面回答问题时才发现,原来她是总裁!那一瞬间我既惊讶又好奇,她是怎么达到这个境界的呢,究竟有什么过人之处?

网上搜了下她的名字,果然不是一般人:

从大学时期的简介就可以看出来,这位大佬是真的强啊,她的个人特长、履历让我结结实实的感受到了差距。

网上搜了下「总裁需要具备什么能力」,答案主要是这几点:「需要具备战略规划、商业模式制定、运营管控、财务管控、销售管控、人力资源、管理领导力、思维创新、产品创新、营销创新、机制创新、激活团队等等」

大佬比我大六岁,假如给我六年时间,我可以达到她如今的成就吗?

我想应该比较难,大佬领先我的不只六年。扪心自问我的底层素质一般,知识面、社会经验都很窄,现在开始弥补相关知识和能力,运气好的话或许未来几年能有机会「管事」,但这距离总裁还有很远。

努努力试试吧,或许真的实现了呢?就算我做不到,能够让我的孩子有机会具备大佬读书时的基本素质,也是好的。

这次经历让我既悲伤又开心,悲伤的是真切的意识到了人与人的差距,开心的事见过总比没有见过的好,有个活生生的例子作为远处的目标,也好。

之前的一篇小爆文没有处理好,浪费了一波流量

偶然发现之前的这个文章被转载到 CSDN,阅读量和评论量都还不错,可惜公众号图片和链接被屏蔽了,不然能多涨点粉(几百估计有的,光评论就 138 了)。

如何改进:

  1. 写文章时,考虑到这种站外的情况,在文字里补充公众号名称

  1. 这个图片要保留

发现需求、提供产品后,还要考虑流量如何获取,需要提供足够多的入口获取方式,让用户知道怎么找到你。重视这些细节,否则会让很多想找到你的人流失掉。

视频号发了个露脸视频

二月某个周末,为了锻炼自己的表达能力,以「成大事和做小事」为话题,录了个露脸视频。

现在看,这个视频里的我表情有点呆滞、说话总是卡壳、内容也少了点趣味性或者价值,但我还是很高兴的,因为自己已经迈出了一步。

之前很少录制非技术视频,总担心自己说的不好、形象一般,那天不知哪里来的决心一定要录一个。先是花了半小时左右想话题、画脑图,然后花了四五十分钟反复录制多次,最后花十几分钟剪辑、去掉不好的内容,得到了这个结果。

今年争取多录制几个,年底来对比看看有没有成长😄。

体验 ChatGPT,尝试在更多场景使用

这个月 ChatGPT 刷屏了,试了下让他写一篇屌丝程序员逆袭的文章,还是不错的哈。

见证了历史性的一刻,我们的生活和工作即将被改变。战胜恐惧的最好方式是面对恐惧,熟悉它、利用它、驯服它。

有什么感悟

  1. 低预期开始,高预期结束

  • 拖延的根本原因是拒绝开始

  • 心理暗示:只做 5 分钟(只写五分钟代码、只写五分钟文章...)

  • 可以一次少做一点,但做了一段时间后不能不了了之,要至少有个结果或者复盘

  1. 能赚多少钱,取决于能看到多大的世界

  • 多接触世界,多提升自己的价值

  • 英语

  • 其他行业

  1. 宏图大志和具体小事

  • 要有大志,但立下志愿后,最重要的是在每一件事上有所体现,比如想做总裁, 那就要时时刻刻思考,总裁会怎样选择,比如总裁会打一天游戏吗?总裁会学习什么?

  • 向往崇高,沉溺于卑劣

  1. 成长,从小事开始

  • 早上做地铁,无所事事:刷短视频、朋友圈

  • 今年提升英语就选在早上,背单词、看英文新闻。每天 3 个单词,最长一年雅思单词我就背下了。重在坚持

  • 做具体的事

  1. 因和果(虽然我是基督徒,但这个因果论其实不分教派的)

  • 种善因,得善果

  • 二月份更多的是收获之前努力的结果,种下的因不是很多。

  • 今天种下的因,未来不一定哪天就收获了,但行好事。

  • 功在当下 利在千秋

  1. 思考做什么,比做具体的事,更难

  • 工作上比较自由,完成业务需求的同时有很大空间

  • 做什么?哪件事情 ROI 更高,成了时常需要思考的问题

  1. 过分关注

  • 有时候对某件事很期待,就会非常关注,恨不得立刻得到结果

  • 这样的心态,其实是要不得的,为什么?

  • 尽人事听天命,听从上帝安排

值得反复看的话

关于跨平台

关于技术人生的不同选择

# 技术路线的选择重要但不具有决定性

  1. 第一阶段:提升技术

  1. 第二阶段:选择团队

  1. 第三阶段:选择事业

这个行业里拥挤着上百万聪明人,彼此之间真正的不同在哪里?不在于你学的是什么技术,学得多深,IQ多少,而在于你身上有别人没有的独特的个性、背景、知识和经验的组合。如果这种组合,1,绝无仅有;2,在实践中有价值,3,具有可持续发展性,那你就具备核心竞争力。

P7 应该做的

# 我对不同阶段前端工程师的额外要求

Leader 的核心产出

# 在大厂做技术Leader是一种什么样的体验?

对自己负责,结果说话

# 人生也不知道怎么的,就走到了现在

关于空降坐稳

如何保障项目按时交付:依赖、分工、并行、日会

  1. 确定功能模块开发成本,拆分提测顺序,提高并行度

  1. 每日沟通进度和计划,及时发现解决问题

  1. 对三方的依赖最先理清楚,提前沟通排期,避免临期发现

  1. 和其他方向负责人密切沟通、分工明确

要去做有挑战有难度的事情,只要做成了,团队就容易拿到好的成绩,对团队的稳定性是极其有用的。一定要从团队的角度出发来考虑问题,像当时如果没有做好重构项目,我估计团队就会散掉了;

# 个人职业复盘-我的路

关于有效读源码

读源码(哪些模块是必不可少的核心模块,这些模块之间又是如何相互协作的呢?)的三个方法,分别是“时光机”、“找线头”和“鸟瞰图”:

  1. 时光机:看核心版本,代码量更少

  • 先读第一版的源码,再找几个自己熟悉的版本的源码读一读,最后再读新架构的源码。

  1. 找线头:通过关键字定位核心代码

  1. 鸟瞰图:站在整体上看各模块的关系

  • 整体理解作者的实现方案

一位自由职业者大佬的收入

https://juejin.cn/post/7177321772134924325

一位 38 岁程序员勇敢的晒出了他的收入,很佩服。

与其焦虑年纪大了会不会被淘汰,不如趁早思考如何用技术创造个人价值。比如这位老哥的收入里,课程的背后是个人品牌、知识积累、写作和宣传,接活儿背后是技术广度、人脉和信息渠道。这些是值得长期打磨的。

引以为戒

# 可怕的35岁-大龄程序员2022年终总结

引以为戒:

  1. 拖延、懒惰、不行动(目前我的很多周末都是这样)

  1. 没有明确的、可衡量的规划

  1. 没有复利思维,觉得转行是更好的选择

  1. 业余时间做什么没有仔细思考,不考虑成本

做自己的蓝军

# 华为批判华为:“过度高薪”养了一群闲人

做自己的“蓝军”,多批评自己、分析自己的缺点

我的问题:太爱幻想、懒于行动、贪玩

关于创业

两种方式度过一天,你选哪种

回顾工作、个人年度计划的执行情况

工作方面

今年最重要的一个 OKR 是让更多业务使用 RN 以提效。目前的问题是:

  1. 团队对 RN 不够熟悉,不会用

  2. 之前线上的 RN 出过一些奇怪的问题,不敢重用

如何解决:

  1. 提升团队的 RN 技术熟悉

  2. 精通 RN 的运行原理,提升性能和稳定性,通过案例提升团队对 RN 的信心

一二月进展:

  1. 对之前线上存在的问题做了更多埋点,同时尝试修复 结果还未确认

  2. 技术分享准备了一部分,还没来得及进行



进展一般,原因?

  1. 主要时间在做需求。一月在内部一个重点项目上花的时间比较多,二月组里自上而下的需求和零碎的需求比较多,占据了几个版本

  2. 优先级把控还不够。面对不确定的事,没有足够清晰的思考,花了比较多的时间在价值不大的事上


如何改进:

  1. 清晰的认识到每件事的优先级,不能埋在需求里懒于思考

  2. 每周留时间跟进核心 OKR,保证有进展

个人方面

个人方面今年的目标有点多(立 flag 的时候壮志凌云,现在觉得有点太贪了😂)

  1. RN 相关✅,Q1 目标算是完成了,即整理分享内容,不过原理相关的还没仔细看&输出

  2. 提升安卓深度的还没进行 ❌

  3. 广度的基本没进展❌,周末要么偷懒要么准备分享的内容

  4. 英语❌,勉强算 30 分吧,开了扇贝阅读会员,但只看了八九篇,早上路上还是容易分心

  • 耳机坏了应该也有原因 😂

  1. 增加影响力 ✅,Q1 的目标算是完成了

  2. 看书计划 ❌,周末时间没好好利用

  3. 家庭计划 进行中


总的来说,早上和周末时间没好好利用,导致好些事情进展一般,吸取教训,争取下两个月能有更多进展!

三四月TODO

  1. 极客时间会员快到期了,需要抓紧时间看,有输出

  1. ReactNative 技术培训

截止发文时已完成第一次

  1. 周末时间使用记录总结

总结

好了,这就是我的一二月总结,因为最近事情太多再加自己周末偷懒,导致这篇文章到了三月中才写完😂。

回顾了一下发现这两个月有意思的事还不少,这些具体的事让我感觉大部分时间还算好好利用了。

最近因为 AI 的出现,对未来多了些不可控的感觉。

想来想去,还是先做好当下吧。未来怎样我们无法预料,努力让每一天都有意义更容易做到,make everyday count !



好了,这篇文章到这里就结束了,感谢你的阅读,愿你平安顺遂。


如果对你有帮助,欢迎点赞转发,你的支持是我最大的动力❤️



推荐阅读


两年创业的得与失

简历怎么投效率最高

七年老安卓的九十月小结 

一名七年老安卓的 2022 总结

认真想了想 今年要为什么花钱

六年安卓开发的技术回顾和展望

两位阿里 P10 的成长经历,让我学到这几点




继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存