Skip to content

🔥【Android 面经 + Android 学习指南】一份帮助 Android 开发者知识积累与能力进阶的学习路线

License

Notifications You must be signed in to change notification settings

pengxurui/AndroidFamily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AndroidFamily

这是一份帮助 Android 开发者知识积累与能力进阶的学习路线,主要集中在 Java、Android、计算机基础、Flutter、NDK、产品和软实力等话题。

小彭的整个 Android 知识体系是参考了杜威十进制的知识分类思想进行分级整理,未来小彭也会按照这个体系去输出内容。有很多细节的地方,考虑到不是很完善的地方,大家可以提 Issue 给意见(别忘记 Star 哟)。

使用方法

1、⭐ 先给一个 Star: 你的支持对我非常重要,我的内容质量绝对对得起你的 Star,给我一点创作的动力,感谢。

2、进小彭的 Android 交流群 加我微信进群,我们对群质量有要求,你可以在这里找到志同道合的朋友。群里可以讨论技术、分享文章、聊天、吐槽,允许适当发招聘广告,不受欢迎的行为是严格禁止的:

3、关注我的 公众号 坚持高质量原创内容,不人云亦云,公众号后续是我主要的内容更新平台;

4、关注我的 掘金知乎《AndroidFamily》 专栏: 掘金上有我历史发布过的所有文章;

5、关注 AndroidFamilyDemo 项目: 该项目作为 《AndroidFamily》 专栏配套 “示例程序” 而存在,旨在帮助读者更直观感性地理解纸面上的知识点,进一步提高学习效率;

6、催文: 我会优先输出大多数读者朋友感兴趣的内容,你可以在 Issue 里提出你的需求,小彭会按照大家普遍的需求调整方向。当然同时能请小彭喝一杯速溶咖啡的话,你就是很 Nice 的 boy!

如何成为有高度的移动开发工程师?

很快的,再过几个月就已经是工作四年的老同学了。这几年和不少同学共事过,发现不少人(包括我在内)平时看起来工作努力,也有足够的能力“应付”需求,但一旦跳出舒适区,到更高的要求去解决问题, 却不一定能游刃有余。为什么会这样,我想原因是多方面的:

  • 1、缺乏深度,不知其所以然: 懂得运用技术去解决问题,但没有思考过选择这些技术背后的逻辑,对技术背后的底层原理也知之甚少。这种状态在遇到有一定深度的任务时,会束手无策或南辕北辙。

  • 2、知识碎片化,不成体系: 对每项技术都有所涉猎,但却无法站在更高 / 更深的角度理解使用的技术,也无法完整且有条理地描述出项目中使用到的技术。这种状态很难说有能力胜任复杂业务 / 复杂系统设计。

是什么原因导致出现这种状态,是公司的原因吗?也许。在初创团队,会更多地奉行 “拿来主义”,很多问题直接使用第三方 SDK 解决。只有在大型团队,才有机会真正参与到基础平台的研发。事实确实如此,业务和团队的限制因素的确存在并且影响巨大,但这是决定因素吗?我想,我们需要问自己是否真正地去努力了吗?既然在小厂,那么就更加应该坚持学习,持续探索技术深度,在自己的能力边界疯狂试探,这些行为会在将来晋升或者跳槽时称为自己的筹码和亮点。我会推荐你读读看张绍文(前微信工程师)的《做一名有高度的移动开发工程师》,包括整个专栏,很多内容会激发你的思考。

回到主题,如何成为有高度的移动开发工程师呢?首先需深度和广度:能站在客户端的角色上,深入钻研一个问题在客户端技术上的实现细节,并且持续打磨,同时又能横向全面地思考每个细节 / 边界。然而,移动开发已经不是单兵作战的时代,随着业务复杂性提升,单纯的客户端优化已经不能解决业务述求,这个时候就需要跳出客户端的角色范畴,站在更高的角度思考问题,清楚每个端能够做和不能做的事情,而不局限在客户端这一亩三分地。

很多 Android 开发者有焦虑和浮躁的心态,这似乎已经称为一种普遍的现象,更不用说还待在小厂的同学。的确,移动开发已经不再是 “风口”,很多初级移动开发的岗位在减少,一线大厂对候选人的要求也变得越来越严格,对算法和计算机底层知识也有深入的考察。难吗,你是不是在羡慕那些当年选择了前端或服务端的同学?但是据我观察,往往是服务端羡慕客户端,前端看着服务端眼馋,而客户端又盯着服务端手中的蛋糕。我不知道谁在说心里话,也许,别人碗里的饭就是香一点,更别提 AI、算法、音视频这些香饽饽。

有的人选择了转行,结果是站在风口上被吹到天上,还是在任何方向都没有深度积累,最终没有竞争力。我没有经历过,所以我也看不到最终的结果。我们唯一能看到的结果是:“风口是等来的,而不是追来的”,人家之所以能站在风口上,原因是有多年的积累,最终等来的风口。站在当前时代,我们首先要做的,就是抛弃焦虑,焦虑解决不了任何问题。唯有无所畏惧地往前冲,才能留有一席之地,那些落后于时代的移动开发者必将被淘汰。看过王争(前 Google 工程师)在文章里写过:“每一个优秀的人,都有一段沉默的时光,那段时光是付出了很多努力的,却得不到结果的日子,我们把它叫做扎根。” 你经历过这个阶段吗?

Android Family 知识体系(善用 Ctrl+F)

最新文章

000 Java


100 Android


200 计算机基础


300 Flutter 开发


400 NDK 开发


500 DevOps


600 后端


700 项目实践


800 产品 & 设计 & 市场 & 运营


900 软实力

思维导图

小彭的其它开源项目

  • AndroidFamily 【Android 面经 + Android 学习指南】一份帮助 Android 开发者知识积累与能力进阶的学习路线;🔥
  • AndroidPlatforms 每个 Android 开发都要收藏的系统适配手册,带你全面体系化地解读 Android 系统更新;🔥
  • ModularEventBus 一个 Android 事件总线框架,为你解决事件总线 “滥用” 问题;
  • EasyTrack 基于西瓜视频前端视图树埋点方案实现的埋点方案;
  • EasyPrivacy 一个帮助开发者快速解决整改问题的工具;
  • LeetCode-Kotlin LeetCode 高频题解 - Kotlin 版本。

Donate

如果本仓库对你有帮助,可以请小彭喝杯速溶咖啡。

License

Copyright [2022] [Peng Xurui]

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Releases

No releases published

Packages

No packages published