06如何在阿里技术面试中脱颖而出?|学习笔记

简介: 快速学习06如何在阿里技术面试中脱颖而出?

开发者学堂课程如何成为技术大牛?06如何在阿里技术面试中脱颖而出?学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1240/detail/18425


如何在阿里技术面试中脱颖而出

 

内容介绍

一、课时概述

二、招聘的目的

三、招聘的人群

四、面试的方法

五、技术人如何不断成长

 

一、课时概述

招聘是团队管理者工作中的重要一环,本文会结合自己亲身经历以及接受的招聘培训,综合分析怎么找到要的人,也希望可以通过招聘这面镜子照亮自己,怎样成为一个更好的工程师

 

二、招聘的目的

当今社会技术已经成为影响商业成功的关键因素,工程师成为了这些公司最宝贵的财富,没有优秀的人组成团队来完成商业目标,公司根本不可能有今天的成就,所以招聘就是选择最优秀的人

 

三、招聘的人群

1、度量的因素

招优秀的人显然是一个很模糊的概念,进行度量的时候,个人认为三个因素是最关键的技能工作项目经验以及解决疑难问题的能力,毕竟招来的人首先必须很好的完成工作,这是最基本的要求,注意是很好的完成,不是仅仅完成

2、潜力的评价

潜力,这个概念看起来比较模糊,其实还是比较容易评价的,对计算机相关的专业的知识体系是完整,基础是扎实平常是喜欢钻研,对这个世界充满好奇,这几年走下来沉淀的速度如何都是判断一个人的潜力的方式注意评价潜力,主要是基于候选人的之前的成长经历,实事求是来评价,过去的优秀经历才能给未来背输。潜力和技能的重要性一样重要,不能只看眼前团队是需要不断发展和前进的,所以招人应该面向未来

3、软实力

这里其实包含了性格执行力领导力等方方面面,它代表了候选人是否能快速融入团队,拿到结果,带领团队工程拔寨激励和影响身边的人变得更加优秀等等软实力一般 HR 肯定会考察,虽然技术面不会特别去关注,但是从面试的过程中可以看出候选人的沟通能力以及性格相关的特点也值得注意

4、对比的标杆

其实在招人上有一个对比的标杆,就是招的人是比团队中同一等级中50%的同学优秀如果觉得没有他们优秀,那不用纠结这个候选人不要了,团队必须不停加入更好的同学,才能变得更加强大

 

四、面试的方法

这里结合之前的培训以及自己的真实经历讲解面试的一些方法

1、面试不要做的

(1) 问一些知道性的问题

比如问是否知道这个 API 什么的,怎么调用这个命令怎么用的知道性的知识 Google 一下或者认真看下文档就应该知道

(2) 问一些特别复杂的问题

比如问一个特别复杂的算法,问一个很抽象的大问题,短时间内很难给予回答问一些假设性的问题,假设参与了这个项目,觉得哪几个地方需要优化之所以说这些问题不应该问,主要是因为这些很难考察到面试者的真实能力45分钟的时间本来就很短,有些问题有可能比较偏,有些问题又过于庞大,没法一下子描述特别清楚还有一些问题缺乏上下文,让人摸不到头脑,所以尽量避免这么问问题

另外把握一个重要原则,不要在面试中试图证明别人不如自己,毫无意义,人无完人,总有覆盖不到的地方,按照这个规则招聘会错过很多优秀的人才

2、面试应该做的事

(1) 问已经发生的事情

比如面试移动开发者,面试官应该认真看下其做过的 app 具体的工作是什么准备一些相关的问题。这里就可以看出来之前工作中的积累是什么,有多深。

3、问题解决思路

针对项目经验和一些学习的经验上面应该问拿到问题以后解决思路是什么在什么场景下为什么这么做这里根据面试者的方案分析的方法论,就可以大致了解面试者是否聪明,知识面是不是够广,遇到问题时会不会举一反三

举例分析:

具体可以举个简单的例子,很多同学说自己做过架构,然后都会讲自己做了一个解耦和分层的框架,其实这类框架 iOS 很多外部 GitHub上就有各种方案在阿里内部手头早先做的 bundle 拆分时沉淀的容器规则,天猫开源出去的 behave,闲鱼内部的x- framework亦或是服务端的Spring MVC,其实都实现了 LOC但实现和思路上都有一些差异到底为什么这么做其实是有区别的,这里面就可以看出知识广度总结和思辨能力在关键路径上的技术判断又比如说总在强调性能稳定性怎么做业界也有很多方案,到底哪个方案更好呢?答案没有绝对的对错,取决于某个时间点和场景下哪个问题是最核心的突破点,而选择标准和落地的技术方案是不是合理考虑成本收益以及后续的风险是什么一般来讲更倾向于用系统化的思维看待一个问题,也就是说相比根据人的经验去识别性能瓶颈更希望能通过自动化,智能化,数据化的方式去解决问题,少问多听,一般刚开始做面试官的同学很喜欢以问为主,但因为大家的知识体系不太一样,成长境也不同,直接这么问起来很难就找到面试者的优点所以尽量让应试者自己陈述,然后以学习和交流的心态,针对陈述中存疑的地方再进行发问,会更容易让应试者放松,也更容易让应试者更全面的表达自己另外问的差不多的时候,结尾的时候可以补充一句,觉得刚才的面试中还有哪些没问到的,想再补充一下的内容,末了再问下问题问完了,有什么想要问我的吗?

4、提问技巧

知道了应该怎么做那具体的提问方法有没有什么技巧呢在片中有一个重要的 star 原则可以跟大家分享Star 原则,处境 situation在什么样的环境下任务 task接到了什么样的任务行动 action,然后具体怎么落地的结果result拿到了什么结果。尽量问清楚对方在什么样的环境下接到这个任务,接到以后是做了什么事情,最后的结果是什么样子的,一听感觉这不是套路吗?是不是知道这个原则的人只要按照这点编故事就能通过面试了?当然不是,在叙述过程中,我们应该分辨出中的真假,那下面就举一些例子假的 star描述含糊不清,比如用这个方案解决了这个问题,效果很好,得到了大家的一致好评,注意效果好是哪里好,有什么度量的标准,一致好评的体现是在具体 KPI 还是比如团队有个什么奖励之类的,只表达态度和看法觉得线上稳定性非常重要,应该重点解决和持续跟进,如果只有这一句话,没有后面具体认为重要的解决方案的话,这部分的经验难以令人信服假设是描述如果自己来做这件事情,会1234怎么怎么样,前面其实面试应该问的问题里面有提到,本身就不应该问假设性的问题作为面试者假设没做过的事情,如果只是看思路还好,但是如果说的天花乱坠,这个时候要警惕了,毕竟说和做之间的差异是很大的对于假设的事情,面试官是没法评估具体效果的,因为他不像过去已有的项目和工作内容是有明显结果的,如果对过去结果存疑,后续也可以背调了解具体的情况针对假的 star 要甄别分辨出来,引导其表达出真正的情况

5、鉴别方式

更多的关心 what how why做了什么事情,具体做的方案1234几步,为什么要这么做比如图片的优化最早肯定什么都没有,后续加 cashcash 策略又可以升级,包括 cash 本身的算法以及多级 cash 的实现图片尺寸上面,后来又做了什么裁切之类的图片格式上面后续又做了优化等等,每个阶段不太一样,关注的重点也不一样刨根问题问一问会了解是真的做过这件事情另外有一些可能项目做的很久,说很多东西忘了,这里分享一个观点之前看过一句话,招聘的人中有一种人是比较好的,他总能比较清楚的记住过往项目当中的重点。这样的人在经验沉淀的过程中肯定更快一些,当然这样的同学肯定得归结聪明一类的人。当然能记住,也说明他可能喜欢总结和回顾平常的学习习惯应该也比较好

6、细节

细节细节细节很多关键节点的细节很重要,比如网络库的优化,如果你是一个 iOS 开发,一般都会知道 iOS 的网络协议优化常采用拦截 NSURL Protocol 的方式进行,然后针对传统的 HTTP:s 协议,会将其替换成为 SPDY 协议或者 HTTP:TWO 协议,过程中还有一些 HTTP,DNS 等优化,但如果今天希望招聘一个有这部分网络优化经验的同学,怎么判断这个同学有实操的经验呢?你可以让他表达细节上面的很多事情,比如说 URL Protocol 拦截 request 以后针对不同的 case 的降级策略是什么选择依据是什么当时遇到了什么其他的坑没有你自己的做法有什么缺陷又比如 WEES 的实现上面整个渲染的流程到底是怎样的渲染部分还有什么优化空间吗或者说这个方案本身做了哪方面的优化,它的配套工程体系上的问题是什么你遇到以后是怎么解决掉的这些在了解大概思路后,都可以往深入再问一下细节的部分,认真研读以及修改过代码的同学肯定是答得出来的

7、其他 tips

你在面试别人,别人也在选择你,面试是双向的,面试官是一个团队,对外的门面不要迟到提问和交流要尊重面试者,让面试者感受到真诚为未来招聘,而不是现在永远应该为未来招聘,因为招聘的人入职也是发生在未来,不能立刻就解决眼前的问题,所以招聘的时候也放长远点,招为团队未来更有好处的面试是一面镜子,以人为敬,优秀的面试者给我们能带来新的思路和新的方法,而差强人意的面试者则提高看人的能力,为后续的提升招聘效率,找到更正确的人打下基础

 

五、技术人如何不断成长

招聘,培训,人才选拔,晋升,认为评价标准和方法都应该有比较多的重合的部分。从刚才的面试经验中反思想,如果现在是自己去找工作,这个市场或者团队更需要什么样的人

1、经验和知识体系

经验丰富,知识体系完整,经验能解决实际问题另外,知识体系可以让你在遇到新的问题时举一反三,当然大公司和小公司要求的知识体系又不太一样,大公司更偏向一专多能的T型人才,小公司更喜欢全占。所以到底要成为什么样的人,跟你的职业规划很有关系是想在大公司成就一番事业,还是出去闯荡,那你的技能肯定是不一样的到底应该怎么做经验是找到身边的标杆,向更优秀的同学学习,在阿里当然非常优秀的,专业人才也好,架构师也好,都非常多所以标杆应该也容易业界当然也有很多成功的人,有了标杆就努力向上吧,保持良好的习惯

2、总结和提升

还是一个菜鸟的时候,当时的老板问了我一个问题,每周写周报的时候,想想自己这一周到底收获了什么,这给我留下了深刻的印象,我在想既然我每次面试别人都问你最近有研究什么新的技术,或者看到什么有趣的文章我自己是不是能这样要求自己呢不积跬步无以至千里,在坚持积累

相关文章
|
3月前
|
存储 关系型数据库 MySQL
阿里面试:为什么要索引?什么是MySQL索引?底层结构是什么?
尼恩是一位资深架构师,他在自己的读者交流群中分享了关于MySQL索引的重要知识点。索引是帮助MySQL高效获取数据的数据结构,主要作用包括显著提升查询速度、降低磁盘I/O次数、优化排序与分组操作以及提升复杂查询的性能。MySQL支持多种索引类型,如主键索引、唯一索引、普通索引、全文索引和空间数据索引。索引的底层数据结构主要是B+树,它能够有效支持范围查询和顺序遍历,同时保持高效的插入、删除和查找性能。尼恩还强调了索引的优缺点,并提供了多个面试题及其解答,帮助读者在面试中脱颖而出。相关资料可在公众号【技术自由圈】获取。
|
1月前
|
存储 NoSQL 架构师
阿里面试:聊聊 CAP 定理?哪些中间件是AP?为什么?
本文深入探讨了分布式系统中的“不可能三角”——CAP定理,即一致性(C)、可用性(A)和分区容错性(P)三者无法兼得。通过实例分析了不同场景下如何权衡CAP,并介绍了几种典型分布式中间件的CAP策略,强调了理解CAP定理对于架构设计的重要性。
70 4
|
2月前
|
存储 NoSQL 算法
阿里面试:亿级 redis 排行榜,如何设计?
本文由40岁老架构师尼恩撰写,针对近期读者在一线互联网企业面试中遇到的高频面试题进行系统化梳理,如使用ZSET排序统计、亿级用户排行榜设计等。文章详细介绍了Redis的四大统计(基数统计、二值统计、排序统计、聚合统计)原理和应用场景,重点讲解了Redis有序集合(Sorted Set)的使用方法和命令,以及如何设计社交点赞系统和游戏玩家排行榜。此外,还探讨了超高并发下Redis热key分治原理、亿级用户排行榜的范围分片设计、Redis Cluster集群持久化方式等内容。文章最后提供了大量面试真题和解决方案,帮助读者提升技术实力,顺利通过面试。
|
2月前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
120 2
|
2月前
|
SQL 关系型数据库 MySQL
阿里面试:1000万级大表, 如何 加索引?
45岁老架构师尼恩在其读者交流群中分享了如何在生产环境中给大表加索引的方法。文章详细介绍了两种索引构建方式:在线模式(Online DDL)和离线模式(Offline DDL),并深入探讨了 MySQL 5.6.7 之前的“影子策略”和 pt-online-schema-change 方案,以及 MySQL 5.6.7 之后的内部 Online DDL 特性。通过这些方法,可以有效地减少 DDL 操作对业务的影响,确保数据的一致性和完整性。尼恩还提供了大量面试题和解决方案,帮助读者在面试中充分展示技术实力。
|
3月前
|
消息中间件 架构师 Java
阿里面试:秒杀的分布式事务, 是如何设计的?
在40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试阿里、滴滴、极兔等一线互联网企业时,遇到了许多关于分布式事务的重要面试题。为了帮助大家更好地应对这些面试题,尼恩进行了系统化的梳理,详细介绍了Seata和RocketMQ事务消息的结合,以及如何实现强弱结合型事务。文章还提供了分布式事务的标准面试答案,并推荐了《尼恩Java面试宝典PDF》等资源,帮助大家在面试中脱颖而出。
|
5月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
2月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
|
2月前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
81 4