其实大多数程序员都有类似疑惑,尤其随着行业饱和、内卷,工作越来越难,技术提升确实困扰着很多程序员。我自己作为一个伴随着字节跳动一起成长了8年的资深老程序员,我之前也遇到过类似困境,今天就跟大家简单分享一些我的个人经验吧。
其实很多互联网大厂都有这样的通病,基础设施太完善,很多程序员做业务做久了出去面试,除了一个大厂背书的优势,就根本体现不了其它的什么优势了。也就是典型的欠下了很多“技术债”,而往往很多人最初还意识不到,忙忙忙,一年到头为了年终奖,结果背了锅还要面临被裁的风险,出去面试才知道原来自己已经被行业速度甩开了一大截!
这种情况分为两种,一种是刚毕业一两年,其他新人成长速度飞快,你还是个1-3,人家已经晋升到了2-2,这种差距,年轻时还能跑一跑补得上,工龄超过四五年的,怎么赶也赶不上了,行业已经给你打了标签“大龄无成就”。
而另一种情况是入行早,吃到了移动互联网红利,沉迷其中没看清楚行业潜在危机,也没能在机会到来时及早抓住,等到大家都开始忙慌了,才意识到:“哦,原来现在互联网公司要求都这么高了!这个薪资出去谁接得住啊!”
所谓的“啃技术老本”也不过如此了,无论你是出身于清北还是普通双非,只要不推着自己往前赶,到最后都显得过于被动。
反倒是那些最开始就憋着一股“不服输、不认命”的劲儿的普通程序员,在时间的洗礼中越发坚韧,死磕到底,总归是上岸了。
是差在能力吗?我觉得不是,把时间拉长,一点一滴,积少成多,差的是自我管理,龟兔赛跑而已。
最近看过的一本书里提到:“我们所经历的所有事件,都不是突发事件,都是一系列的渐进和变化之后的结果”。
就像“蝴蝶效应”一样,一只在南美洲热带雨林中的蝴蝶,偶尔扇动几下翅膀,可能两周后在美国德克萨斯引起一场龙卷风。其原因在于:蝴蝶翅膀的运动,导致其身边的空气系统发生变化,引起了一系列的反应。
如今所要面临的一切,无论是欣喜还是遭罪,都是时间最公平的反馈罢了。
最后再说一下,如果你现在觉得自己还年轻,恰好又还有一定的学习激情和动力,那就一定要把握好。你现在的努力或是懒惰,都会在不久的将来,又或是就在明天,开花结果,这是必然的!
这里我也想跟大家分享这些年在字节学习总结的一套学习方法和笔记,面向进阶高级(架构师看个人)适合已经工作3-5年的Android开发,技术上遇到一定瓶颈,并且有还有动力和想法学习的朋友,分享如下。
- 架构师筑基必备技能
目前Android APP开发主流语言就是Java语言,Java语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用Java语言来进行编写的。
知识要点:
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
- 设计思想解读开源框架
随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个g那么大。
所以,当今的Android移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。
知识要点:
**1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计**
- 360°全方位性能调优
在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。
另外,随着产品内容迭代,功能越来越复杂,UI页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对APP进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
- Android框架体系架构
Android框架体系架构(高级UI+FrameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点:
**1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析**
![Android框架体系架构](https://img-blog.csdnimg.cn/img_conver
《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
t/c30909928b5c441a8e52a08a95ba75d4.png)
- NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。