Android岗大厂面试官常问的那些问题,写给正在求职的安卓开发

背景

在深度使用 Flutter 开发过程中,我们遇到了业务代码耦合严重,代码可维护性糟糕,如入泥泞。我们需要一个统一的应用框架来摆脱当下的开发困境,而这也是 Flutter 领域空缺的一块处女地。
Fish Redux 是为解决上面问题上层应用框架,它是一个基于 Redux 数据管理的组装式 flutter 应用框架, 特别适用于构建中大型的复杂应用。
它的最大特点是配置式组装, 一方面将一个大的页面,对视图和数据层层拆解为互相独立的 Component|Adapter,上层负责组装,下层负责实现,另一方面将 Component|Adapter 拆分为 View,Reducer,Effect 等相互独立的上下文无关函数。所以它会非常干净,易编写、易维护、易协作。
Fish Redux 的灵感主要来自于 Redux、React、Elm、Dva 这样的优秀框架,而 Fish Redux 站在巨人的肩膀上,将集中,分治,复用,隔离做的更进一步。

一般来说,满足这3个条件的工程师会被提拔做管理:技术能力强、业务熟练、软性素质达标。(当然还要看公司是否有管理岗位的空缺以及你个人的意愿),下面分别展开说下重点。

技术方面:常用技术的深度和宽度缺一不可,架构能力非常关键。否则技术方向都把握不好,技术决策也容易出问题。如果技术能力没达到一定水平,不建议太早转管理(个人感觉能力至少要接近阿里的P7,腾讯的T3-1,百度的T6)。

业务方面:不了解业务,技术没法落地,不仅要求熟悉业务而且应该具备比较强的业务意识,(如果能从技术维度提出好想法,帮助业务拿到更好的结果,这种leader是非常受欢迎的)。

软性素质达标:软性素质这个词有些泛,我个人觉得最核心的两点,沟通协调能力和做事靠不靠谱。软性都是可以锻炼的,但是一定要有意识去提升。著名管理学家陈春花老师说,“一个人被组织提拔,其实不是因为能力,而是因为信任”,聪明的人很多,但是靠谱的人很少,比能力更重要的是工作的投入感和靠谱的态度。

如果你觉得上述3个方面都达到要求了,我觉得只是差一个机会,否则好好提升自己吧。

2你选择做管理的初衷是什么?

之前有人问过我一个问题,“你觉得我适合做管理吗?能给我些建议吗?”,我当时没有正面回答他,而是反过来问他,“你能先告诉我,做管理对你意味着什么?它能给你带来什么呢?”。当然我不是在质疑他,而是想让他反思他做管理的初衷。我觉得『最原始的动机』会决定你在管理路上能扛多大的压力以及能走多远。关于初衷,我见过最普遍的说法有这么几种:

  • 技术不能做一辈子,很多前辈在能力达到一定水平后都转管理了,自己也这么想
  • 在技术路线上遇到了晋升瓶颈,想尝试下管理方向,看自己是否合适
  • 公司发展太快了,老板让我带团队,自己也没办法
  • 管理者工资高,在别人眼中是优秀的代表
  • 指挥做事即可,可以脱离执行层面,越往上走越轻松

上面这几类都属于『外部因素』驱动,说实话,都很难在管理路上走得很远。因为技术管理是极其复杂和琐碎的工作,它远没有你想象中的轻松和风光,而在这些外力下,你做出决策后的结果很多时候跟你的预期是不一致的,这个时候你的怨气和转型痛苦就会出现,你开始质疑你选择的这条路是不是错了?

再来看另外一个问题,作为技术管理者,对于公司、团队以及你个人,你觉得它的价值分别是什么?我个人的解读是这样的:

  • 对于公司:能带领技术团队支撑好业务,帮助业务实现公司定的战略目标。
  • 对于团队:规划好方向,别让组员瞎忙,同时能帮助他们成长。
  • 对于个人:提升自身的技术和管理能力。

这是对于技术管理岗位的基本认知,你的初衷必须建立在这个认知基础之上。然后试问你自己:是否认可这个岗位的价值?如果你觉得全是牺牲自己来成就公司和团队,那你不可能做得开心,也不可能做好。

第2个问题,你是否对管理者的工作充满热情?并且享受这个过程呢?比如项目协调,比如制定流程并推动落地执行,比如招聘。如果你说我只喜欢做技术相关的工作(比如架构设计、技术评审等),那么你还是走技术路线吧。

认可技术管理岗位的价值所在,并且能激发你的投入意愿。这些就是底层最好的动力,你的成长和回报都是付出后水到渠成的东西。所以这个初衷很重要,三观一定要正。

3转型期你会遇到哪些困惑或者挑战?

转型期会经历心态、工作方式的转变,很多事情会刷新你的认知。下面几点,我认为是绝大部分人在转型过程中会遇到的困惑或者挑战:

  • 时间不够用:成为团队leader后有很多日常事务要处理,要参加各种会议,有时候还需要分出一部分精力在一线coding上,时间完全被碎片化,根本不够用。
  • 嫌组员效率低:一个你认为简单的需求或者技术问题,交给团队成员后,他们的处理时间远超出你的预期,当外界施压时,你忍不住抱怨和责怪,并开始自己动手处理,久而久之,习惯自己冲在一线,觉得这样效率最高。
  • 恨人际关系复杂:对内对外、对上对下,每天需要和不同职位、不同level的人打交道,有靠谱的,有不靠谱的,某些你认为很简单的事情推动起来却很难,感觉情商不够用。
  • 成就感不强:偶尔会收到上级、平级、甚至下级的负面反馈,你开始质疑自己的管理能力,不像做工程师那样经常被认可,落差感强。
  • 不敢放弃一线:担心自己不合适做管理,如果脱离一线执行,感觉技术能力会停滞不前。不放弃一线,精力又跟不上,这个度把握不好。

上述疑惑是我个人转型过程中体会最深的几点,我在后文中会分别给出自己的看法和建议。

4转型期应该具备哪些心智?

从技术转型做管理,更多的不是能力的变化,而是思维方式和行为的改变。很多刚转型的leader管理做不好,绝大部分不是因为能力不行,而是出现在了认知上。以下几点,我认为是转型期leader一定要具备的心智:

  • 学会从团队的角度考虑问题
  • 注重执行细节
  • 学会用人所长,具备包容心
  • 重视情商,做好自我情绪控制
  • 做好时间管理

学会从团队角度考虑问题

以前作为工程师,更多是从事情本身或者从个人角度出发,成为leader后,转变成团队思维是最最重要的,因为你的KPI取决于你整个团队的完成情况,你要权衡的是团队整体的利益和效能。

最后

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。

最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。

还有 高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。

Android学习PDF+架构视频+面试文档+源码笔记领取

【Android核心高级技术PDF文档,BAT大厂面试真题解析】

【算法合集】

【延伸Android必备知识点】

【Android部分高级架构视频学习资源】

延伸Android必备知识点】**

[外链图片转存中…(img-veZlI6T5-1619592652546)]

【Android部分高级架构视频学习资源】

Android精讲视频领取学习后更加是如虎添翼!进军BATJ大厂等(备战)!现在都说互联网寒冬,其实无非就是你上错了车,且穿的少(技能),要是你上对车,自身技术能力够强,公司换掉的代价大,怎么可能会被裁掉,都是淘汰末端的业务Curd而已!现如今市场上初级程序员泛滥,这套教程针对Android开发工程师1-6年的人员、正处于瓶颈期,想要年后突破自己涨薪的,进阶Android中高级、架构师对你更是如鱼得水,赶快领取吧!

你可能感兴趣的:(程序员,android)