最近在某乎看到这样一则问答:“Android 应用开发者具有怎样的技术才算高级水平?” 被浏览数据和关注数据还是比较高的。今天就跟大家来分析一下:
我觉得“技术的高低 ”的意义有很多,不仅只是包括手上操作能力,还包括很多隐形的能力,主要从以下的几个角度来衡量:
1.技术的深度
这应该算是首要的吧,现在市场上,能够实际在工作中发挥作用的人,必定是在某个领域掌握了比较熟练的技术的人——这是主观因素,客观来说,Android这门学问很深的,全部精通不大可能,能精通一门就很棒了。有技术热情的人,会忍不住去探究它背后的技术原理,所以单凭考察技术上的深度,就可以考察一个人是否对技术有热情,是否有技术好奇心等这些“优秀程序员的特征”。
2.技术的广度
作为一个Android开发者,深度是必要的,广度算是很重要的加分项。一般来说,工作中偶尔也需要用到其他领域的相关知识,这个时候广度就显得很有优势。从另一方面来看,一个人的知识体系的完整度与广度也有很深的关系,一个高精尖的人才,需要一个比较完整的知识体系,不要求面面精通,但是最好能面面俱到,这样在遇到问题时,就能想出更多更好的解决办法。
3.逻辑思维能力
这一点实在是太重要了,大家应该都明白,做我们这一行的,逻辑思维能力是必不可少的,优秀的逻辑思维能力他的码想必也不会差。
话不多说,先来看看字节跳动的对Android 高工的招聘需求:
大家可以认真看下上图中的招聘要求,熟练使用Java或C/C++、Android系统框架:(AMS、WMS、SurfaceFlinger、View体系架构)、Framework模块,其实像这些内容初级的 Android 工程师就都有所了解过,这些都是每个Android开发必须具备和了解的。但是对于Android 高工而言不能只是简单的了解过,听说过,而是要有较深入的了解和研究。除了这些技术以外,还要有良好的带团队经验,遇到技术问题可以独当一面的能力等等,这些都是需要靠多年的累积经验。
至于怎么从技术层面入手先提升的话,首先还是得有一套合适学习路线,有了方向和路线,学习起来就更加的事半功倍!!!
刚好前阵子在一位某大厂高工那得到了一份 Android 进阶高工的成长曲线图,大家可以看看自己掌握了百分之多少?
该图分为了八大技术板块,分别是:Android 基础、性能优化、Framework与UI、音视频技术、APP 架构技术、Android 车载技术、Flutter、前沿技术,如需要完整版可私信回复【XXLX】即可!!!
针对上图中所记录的一些技术点,整理了相关的学习文档和笔记,及面试题等等……
BATJ这些大公司都要求有扎实的Java语言基础和虚拟机底层原理,这一个部分就是Android开发中最常用的java语言相关知识。在这个里面,结合了Dex文件加密实战和热修复手写实战来让大家深刻体会Java语言体系的重要性以及在Android开发中的地位
在Android中,Framework泛指系统架构层。Framework的中文意思是“框架”,在软件开发中通常指开发框架,在一个系统中处于内核层之上,为顶层应用提供接口,被设计用来帮助开发者快速开发顶层应用,而不必关心系统内核运行机制,通常Framework都会隐藏main函数等应用程序必须的组件,开发人员只需把精力放在功能代码的实现上。说简单点,Framework具体的工作也就是为android应用开发的开发人员提供了一系列的服务和API的接口。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Cp6XoAVP-1654174434809)(https://upload-images.jianshu.io/upload_images/16900214-4352c48f342221a2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
作为一名Android程序员,说实话要做好性能这一块,真心不容易。为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以做好。这份《Android性能分析与优化实战进阶手册》,让每一个想进入 Android 系统开发和优化这个领域的人,能通过这份笔记手册快速入门,同时也算是对知识的一个梳理,查漏补缺,终身学习。
堪称从底层基础到架构成长的保姆级学习资料!距离从入门到入坑大概就差掉发了,关于如何不脱发就留给大家自己努力一下吧,毕竟不是自己努力到的,不会珍惜 _ 需要完整版的朋友 可私信回复 【666】 即可!!!
变强计划就靠它了!赶紧收藏!
观察力
要做好一名好的架构师,得有细致的观察能力,善于发现代码中存在的问题,可优化的点,以及未来的机会。大部分开发同学经常会忙于开发各种需求,对于技术架构关注并不多,代码架构往往就在需求迭代中慢慢腐化。而很多时候,我们就像温水中的青蛙,感觉不到存在的问题。于是就需要架构师这样的角色,从独立的视角看待架构,发现代码中存在问题。
哪些需求优化,哪些基础库可以升级,哪个地方性能存在问题,哪个地方又制约了研发效率。 架构师的独立视角并不代表不需要懂业务,相反架构师是最需要贴近业务的研发,并且理解业务的来龙去脉和未来发展规划,制定符合业务发展的架构。对于技术也同样要保持敏感度,了解社区前沿技术的发展,从中捕获机会,落地到研发中,保持团队技术的先进性。
抽象总结能力
并不是所有的问题都需要解决,并不是所有的问题都需要现在解决。
经常有人戏称架构师是 PPT 工程师,必然的做 PPT 是架构师必备的一个能力,背后反映的是架构师呕心沥血的思考沉淀。如果工程师只是看到一个个的问题,只聚焦在点上,那么永远不可能成长为架构师。真正的架构师,能够从全局系统层面观察分析问题,并加以抽象总结凝练,输出一份 PPT。从更高更远的层次看待问题,再将问题层层分解,有节奏的处理问题。对上汇报技术团队价值,对下同步未来发展,对外宣扬技术成果,对内打造技术成就感。
沟通能力
我们程序员给外界的印象经常是内向沉默寡言不善交际,而实际上程序员是我见过最闷骚的一个团体了。为什么程序员会给其他人留下这种印象呢? 大概是因为程序员最擅长的就是同机器打交道,而机器是最有逻辑性的,逻辑对了特定的输入必然返回特定输出,给人确定性的体验。而同人打交道就需要考虑各种因素,场合、情感、立场、性别甚至是种族政治等,会有各种意想不到的情况出现。
工作中编码仅仅是很小一部分,其他部分需要同各个团队通力协作完成。同业务方 PK 需求,同老板沟通思路,同团队沟通架构落地策略打法,同兄弟部门沟通技术方案,同客户沟通问题等等。良好的沟通能力是保证架构被认可、能落地的关键因素。 同团队成员进行有效沟通,为大家答疑解惑,一起探讨技术问题,也是保证架构师融入团队很好的办法。