2024年安卓最新35岁技术人如何转型做管理?阿里高级算法专家公开10大思考,2024年最新BATJ等企业Android面试知识分享

最后

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。

人生不可能一帆风顺,有高峰自然有低谷,要相信,那些打不倒我们的,终将使我们更强大,要做自己的摆渡人。

资源持续更新中,欢迎大家一起学习和探讨。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

因为信任,所以简单。

团队的定位是什么?——做正确的事
定位

团队的定位是重要的事情之一,一旦有了偏差,后续做得越多错得越多。确定团队的定位花了我很长时间,中间还发生了一次组织变化,和两任主管有多次讨论。

首先,这个团队配置在 CRO 线,肯定要为风险管理业务服务;同时,这又是一支能力团队,还要考虑和业务团队的协同关系。最终,我确定了3点:

1、能力建设为主,同时也需要有业务抓手;
2、不做业务团队已经做得好的事情;
3、立志高远,勇攀高峰,要做就做到最好。

壁垒与价值

不夸张地说,现在是NLP领域的大航海时代,新算法层出不穷,日新月异,后浪各种把前浪碾死在沙滩上。尤其是 BERT 横空出世之后,整个 NLP 的研究范式都发生了变化,从原来的 task-specific 的模型结构设计转变到语言模型 pretrain+ 下游任务 finetuning 的模式,预训练模型是含金量高的工作。研究一下预训练模型,你会发现这是个需要海量金钱+数据+技术才能玩的游戏。

这就陷入两难:如果搞预训练模型,没那么多资源;如果不搞,用开源模型做下游任务,实际上很难有什么技术壁垒。其实就算你真的搞出什么新算法可以充当技术壁垒,可能两三个月之后就又有人做出了更强的结果。

困境的根源在于,目前 NLP 算法这个领域发展速度太快了,在高速变化的领域是很难形成壁垒的。所以,我们需要结合自身所处的环境,寻找变化不那么快的东西。

我经过好多天的考虑之后,认为沉淀风险管控知识可以作为壁垒。原因:1)风险知识随时间有变化,但速度明显比算法慢很多;2)CRO 线在这方面有一定积累,也需要用于实际业务管控,并沉淀到产品。

所以,团队的宗旨我定义为:基于知识驱动的 NLP 算法团队。为 CRO 线乃至集团沉淀风险知识,并提供不同层次的服务:

图:4层服务体系

最近,CRO 线在清华举办了 AI 与安全研讨会,会上张钹院士谈到了第三代人工智能,尤其强调了其中知识的核心作用;我们走访中科院信工所,对方的宗旨也是建设基于知识驱动的算法,和业界发生的共鸣,更坚定了我们走这条道路的决心和信心。

团队需要什么能力?
先要搞清楚团队所处的环境。

阿里是一个什么结构的组织?

有人说是矩阵式的,有人说是树+网状的,我不知道确切的答案。不过,如果把每个小团队看作节点的话,有 2 点是确定的:

1、体量巨大,各种节点(业务、产品、工程、算法)种类繁多数量大。
2、单元节点之间比较容易发生跨大团队甚至跨 BU 的联系,条件合适可以发生协同关系。

继续观察,你会发现:

1、你所需要的一切资源几乎都能找到提供者,而且往往不止一个。
2、你也可以给各种需求节点提供服务,只要还在你的能力范围内。
3、由于规模巨大,需求节点和资源节点相互之间往往不知道对方在哪。

基于以上,我认为一个身处中台的算法团队,需要具备 4 项能力:连接-生产-传播-服务。

图:能力中台的算法团队需要具备的能力

**四项能力
**
连接:就是寻找到自己所需要的资源,筛选出其中最优的,建立长期稳定的合作关系。比如算法团队需要的爬虫、标注工具、分布式模型训练工具、模型的评测工具等,都能在公司范围内获取,就没必要刀耕火种从头开始自己建设了。

生产:这是传统意义上算法工程师的工作,指获取数据后产出效果和效率达标的算法模型,并上线。

对算法的要求,主管的主管早有论述:算法要全!算法要强!算法要快!算法要便宜!精炼简洁,振聋发聩,细化一下就有:

图:对算法的要求

传播:针对中台的算法团队提的要求,因为你需要让目标业务节点知道你的存在,知道你的能力项,以及细节。

服务:如果是专属某业务的算法团队,只需要考虑该业务下的 SLA 即可;如果是中台的算法团队,还需要考虑如何满足不同业务节点的需求,同时又不至于做开发和维护成本很高的个性化定制,避免随着接入业务的增长各种资源的开销也随着线性增长。

能力雷达图

团队的能力雷达图是由成员的个人能力长板组成的。(话越短意思越长)

图:团队能力雷达图

组织与个人的关系
为什么需要一个组织呢?

先从一个现象出发:在小区业主和物业公司的纠纷斗争中,业主获胜的概率很低。从人数、个体的教育背景和素质来看,业主都占据绝对优势,可是为什么会输?

粗略分析,大体有三个原因:

1、共同利益,目标明确。物业的目标非常清晰,就是为了从业主那里赚钱,这也是物业人员的共同利益。业主人多,情况各有不同,各自的利益诉求差异大,容易被分化。
2、组织严密,相互协同。物业内部有明确的分工,平时也长期一起工作,相互间有信任感,能够进行配合。业主彼此之间往往是陌生人,缺乏信任感,难以统一行动,是原子化的散点。
3、局部相对优势。相对单个业主,物业具有明显力量优势。比如,物业有资金,而业主因为缺乏信任很难筹措资金。

好,看出来了,小规模组织的力量可以超过大规模原子化散点存在的个体集合的力量。

组织为个人提供什么?

1、组织能使资源增效组织能把各种资源组合成有机的整体,使各种分散的力量形成合力,从而产生大于这些资源和力量机械总和的效能。这个原理 2000 多年前亚里斯多德就论述过了,后来马克思又更严密地论述过一次。

2、组织是实现目标的依托:个人可以依托组织的能力和资源去做事,而组织的能力和资源远大于个人,所以依托组织的时候,个人能够实现比单打独斗模式大得多的目标。

举个例子,我们团队做了 UGC 场景效果超越开源模型的预训练模型,每个同学都可以在这个预训练模型的基础上去做下游的有监督学习任务,起点就比别人高。

个人为组织提供什么?

是否有短板不是那么重要,关键是要有长板,能够对组织的能力雷达图做贡献。

这一节留一个思考题:公司设置主管这个职位的目的是什么?是为了像幼儿园阿姨那样,保障每一个小朋友都有自己喜欢的玩具,高高兴兴上学来,平平安安回家去?

招聘团队需要的人才
招聘为什么特别重要?

世界有个普遍规律:在前序阶段做严格的控制会大大降低后序阶段的实现难度,比如数据标注、写代码、模型中的预处理等等。人招进来之后是要用要管的,招聘的时候高标准严要求,后续管理会轻松很多;如果降低标准甚至放水,后续管理付出的代价远远高于招聘时偷懒省的功夫。

所以,我花了至少 1/3 的时间在招聘上。对的,至少 1/3 ,你没有看错。从 2019 年 2 月到现在,社招弄了 300+ 份简历;校招 100+ 份简历。从统计数据看,每 100 份简历产生 2-3 个offer,入职 1-2 个人。从 100 份简历中招来的人绝对比 10 份简历中招来的省心很多。

我给算法团队找来过不少人,both 社招 and 校招,具体的展开讨论见彩蛋部分的【招聘】。

招聘要考察哪些能力?

招聘,首先要确定 job model 。限于篇幅,这里只讨论“生产”环节所需要的能力。
所处的时代背景:快速变化,新算法层出不穷。

不变的是什么:数学基础、计算机基础、动手能力。

我们很难预测新技术的具体实现,但是当新技术出现的时候,需要能够快速地分析、学习、掌握。而且,我们经常要解决从来没有遇到过的新问题,这就要求候选人在面对没见过的问题时具备分析判断,在具体约束条件下找完整解决方案的能力。另外,在复杂的业务场景里,问题经常没有确定性的答案,我们往往通过对过程的合理性来判断整个方案是否合乎要求。寻找答案的过程很少有一帆风顺的,大概率会遭遇挫折,非常需要候选人不断尝试不断修正去抵达终点。

至于教育背景、之前从业经历,反而不怎么重要。我不赞成对于毕业好几年的社招候选人还要参考毕业学校、最高学位,甚至本科学校是否 985 ——如果一个人能力强,是不需要靠学校学位来旁证的,直接用行动证明就行了。

对于候选人的考察,我往往从基础的硬技能、创新性/开放性思维、精神素质三方面考察。

硬技能

数学:概率论与数理统计、矩阵论、随机过程。
计算机基础:操作系统、组成原理、数据结构。
算法能力:领域内主流模型的演进,优缺点对比;在具体设定的场景下选择合适的方案。
动手:C++/python/Java (什么?你说matlab?工业界里这个不算编程语言)。

有人说,面试过程中要求做代码测试,就像相亲时要求看存款证明一样残暴。我赞同这个说法,因为不少候选人听到要写代码就高傲地拒绝了。我给大家推荐一个在线代码测试工具:
http://collabedit.com

从我长期的观察情况看,发展得好的算法同学,动手能力都比较强。毕竟,算法工程师,首先是一个工程师。

创新性/开放性思维

其实我还经常干比代码测试更令人发指的事情——做智力题。这个不是我的创新,是学来的,甚至是直接找网上流传的面试题换个马甲来用。

前面的硬技能,看的往往是结果;这里对思考能力的考察,看的是过程:是否有方法论,思路是否清晰,是否言之有据。所以,这种问题的面试方式往往是讨论式。

如果候选人能够完成,最后再请TA做个总结,观察归纳要点的能力,视线的高度。

有些候选人结束面试后仍然会继续思考,给出更好的回答。

精神素质

公司对人才的要求是:乐观、皮实、聪明、自省。

你看,四个词里面有两个都在强调坚韧不拔。在面试过程中,我会看候选人在解题不顺时的表现,有时甚至故意小刺激一下观察候选人的反应,偶尔还会故意中途改变限制条件。阿里内部竞争激烈,经常需要拥抱变化,如果心理承受力脆弱,是不适合当同路人的。

还有一点很重要:自我驱动力。这是从降低对内管理成本来要求的,后面会具体说。

在我看来,硬技能、创新性/开放性思维和精神素质缺一不可。即使这三方面我都满意了,如果主管,主管的主管, HR 对候选人明确提出疑虑,我一般不申辩直接放弃掉。因为,他们比我 level 高,阅人无数,往往不会错。

有的同学会问:这样子做,会不会错失优秀人才?是的,我的方式几乎可以确保招进来的同学肯定是好的,但会漏掉一些优秀的候选人,不过这不会造成严重的后果。相比之下,招进来不合格的人才会有大麻烦。

用人
主管的角色是什么?

以前有句话,叫做“火车跑得快,全靠车头带”,这说的是前动车时代。动车和高铁为什么比传统的火车速度更快?根本原因是:大多数车厢都能提供动力。

同样的,如果一个团队完全靠主管来驱动,来提供动力,主管很容易成为团队的瓶颈。我的团队成员,很多都是自己领域的高手,专业能力在我之上,我就应该顺应实际情况,不要拿自己的愚见去束缚同学们的发挥。因此,我的角色更多的是眺望远方,掌握方向盘,有时踩一下刹车;团队大多数同学一起构成动力引擎。

图:动车/高铁跑得快,是因为大多数车厢都提供动力

**对内管理模式
**
一个不恰当的比喻:放羊。

这么做,堂而皇之的理由是“因为信任,所以简单”。技术层面的原因,对算法类同学做过程管理性价比太低。

算法类工作,创造性在其中占据重要地位,而创造性很难在过程中量化度量,也很难从外部观测现象来判断。比如:身边的同学坐在工位直视屏幕目不转睛,我不知道他到底是在思考论文中的公式还是在回味昨天晚上看的电影。再比如,我base在杭州,没办法知道团队内base北京的同学是不是在工作时间打游戏。

所以,我选择信任我的同学,只在一些必须监管的事项上把关,比如数据安全、安全生产等,其他事项一般不做过程管理,只做结果管理。得益于招聘时把关严格,绝大多数同学的自我驱动力都比较强,我并不用操心偷懒的事情;相反,偶尔需要操心一下少部分同学拼过了头的问题。关于这一点,更多的内容见彩蛋中的【认真生活,快乐工作】。

肯定有同学问:上面说的是不担心出工不出力,那么,怎么解释出力的问题呢?你难道不指导同学做项目吗?

我一般只给出项目的目标,有时给一个粗略的方案设想,有时不给。公司对于P6同学已经有“独当一面拿结果” 的要求,大家都应该具备独立作战的能力。而且,按照前面说的,团队内大部分同学都应该是提供动力的车厢,没必要依赖我。人是否有自我意志?这个问题我不知道答案。但我知道,如果一个人认为主意是自己想出来的,决定是自己做的,会更有动力去实现。尝试做决策,尝试完成不确定的任务,都有利于自己的成长。

思考题:管理有很多种style。有的主管喜欢自己做需求分析,然后拆解细化到原子级的技术问题,让下属做执行。这种模式,和“放羊”模式相比,从主管视角,以及下属视角看,各有什么优缺点?

综合以上两点,我觉得放羊是可行的。而且,放羊这件事,羊倌也是要做很多工作的:选择合适的天气,找到草地,把羊群带到草地,放哨保护羊群,是不是?如果还要把青草割好喂给羊吃,那成什么了?

羊倌应该把更多的精力花在寻找丰美的草地,购买强壮的羊,与其他羊倌交流这些事情上,要是成天忙于喂羊,督促偷懒的羊快点吃草,拉开打架的羊这些内部事务,羊群怎么发展壮大?

鼓舞团队信心,最好的方式是什么?

痛痛快快地赢一次。如果不够,就两次。

接手团队的时候,在商业化方向上局势是很差的:去年三次PK竞品都输了,稳定性问题频发以至于新版本都无法发布……团队好几个人都扑在这一个阵地上干得很苦但就是拿不到结果。

这个时候我要是去发表个类似《至暗时刻》里丘吉尔那样让人热血沸腾的演讲是否可以解决问题?可能有短暂的强心剂作用,但是不长久,因为实际困难没解决。何况,我也肯定不具备丘吉尔的演说能力。最有用的办法,还是分析失败的原因,制定正确的打法,指导同学们获得一次成功。鼓舞信心最好的方式还是靠实实在在的成功。

结果大家都看到了,今年我们PK竞品的战绩是N:0,付费调用量上涨25倍以上。大家肯定好奇:正确的打法是什么样的呢?我放在后面“正确地做事”那一节讲。

做有吸引力的事情

目标要定得高一些,有挑战性,达成的时候内心的成就感会更高一些。这个很容易理解,就好比你打游戏,虐了个菜,没多少快感;如果能赢下之前屡战屡败的对手,一定会兴奋很久。

目标定得太低,不仅不能逼出自己的潜力,还容易让自己关注于一些鸡毛蒜皮的小问题。

前几天,我的主管在一个项目 kick off 会上说,当你回首往事时,要有一件做过的事情能够拿出来吹牛逼,人生才有意义。深以为然。

过程即享受

在阿里的工作肯定是辛苦的,我没看到过谁能随随便便就成功。如果只是冲着收入来做工作,难免在过程中会感觉到很多痛苦。物质的刺激是短暂的,不管是加薪、年终奖,或者 option ,兴奋高兴个几天就过去了。如果喜欢自己做的事情,专注于工作本身,从中源源不断地获得成就感,就能做到虽然辛苦但是不痛苦。我家做饭的阿姨是拆迁户,坐拥 N 套房,每天仍然跑几家做饭,我问她为什么?她说,以前是开苍蝇馆子的,拆迁后没得开了,但是自己就是喜欢做饭。理想状况下就是要招聘这种人。

采取什么工作模式?——正确地做事
四个在线化

互联网的本质是连接,最大价值也是连接。

写在最后

最后我想说:对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

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

相信它会给大家带来很多收获:

当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

的职业方向,才能在工作和能力提升中甩开同龄人。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值