年前在 V2EX 遇到阿里中间件的哥们,内推面试。从 2018.02.01 开始到今天 2018.03.20 ,一场浩浩荡荡,跨年,持续了 1 个半月时间的残酷面试终于尘埃落定。遗憾的未能加入阿里中间件部门这个大家庭,让我深感痛惜。
最终未能如愿的原因是“名额有限,有更适合的同学”。这也可能是内推大哥为了顾及我的感受的说辞,可能是最后一面面的不好。
这里凭借隐约的记忆,总结下面试经过。让我自己引以为戒,奋发自强,继续前行
主要问一些 java 基础。包括集合、多线程、ClassLoader、锁、juc 类库等都要知道大致的原理、使用规范、约定等
根据项目,深入探讨。你需要清楚你所做项目的关键细节、优化、特点、原理。所用第三方库&中间件等的原理,即使不知道,也要有自己的想法能够说出如何代替实现!而且需要一定的技术知识的广度,对于如何选型,为何这么选型能够说出自己的理由
个人感觉着重技术深度。
从 ConcurrentHashMap 一路问到锁&锁优化->LongAdder->伪共享->缓存行填充->cas 等诸多技术细节;
从 hystrix 一路问到原理->自己如何实现->如何优化->响应流编程(reactive streams);
从简单的生产者消费者模式设计到如何高效健壮实现;
等等。
纯 coding。
如何倒序输出单向链表?
个人直接想法是用栈先进后出的特点,把链表数据读到栈里然后输出。
有更好的实现方式吗?
仔细一想,确实不够优雅,还好之前刷过一阵子的 leetcode,一般能用栈解决的都能用递归搞定。换了一种递归实现:
具体看本人的github 传送门
hr 面,唯一一次现场面,一直以为是最后一面呢。
给大家抛出几大深坑问题:
这几个问题,大家深思啊,不多说。
大概晚上 20:00 的时候接的电面。那会刚刚游泳游了大概 2,300 百米,然后又没有吃饭,肚子咕咕叫。忍着接听。
主要问项目情况,然后根据一个项目,问如果量级扩大 1000 倍,你会怎么做?有哪些优化措施?高性能&高可用措施?
后面有点饿的眩晕,不知道怎么结束的。。。
感觉阿里更偏重扎实的基础和解决问题的创意与能力。个人感觉自己缺乏大并发、大流量下面对各种复杂问题的处理经验与解决方案,继续沉淀学习吧。
另外,烦请各位大神指点在下写的博客
1
Socket 2018-03-20 22:40:58 +08:00 1
其他部门有兴趣吗?
|
2
pozhenzi998 2018-03-20 22:49:21 +08:00 via Android 4
能经过六轮面试,已经很厉害了
|
3
lyragosa 2018-03-20 23:03:43 +08:00
能过六面已经是非常厉害的了……
几乎是等同于副本打到最后关底 BOSS 才挂掉。 恭喜你打败了 99%的程序员! 我还在准备第一个 BOSS …… |
4
aias 2018-03-20 23:06:25 +08:00 via iPhone
666
|
5
callmexiaobo 2018-03-20 23:49:43 +08:00 via Android
哇,这是哪个级别的啊,社招吧
|
6
q397064399 2018-03-20 23:52:03 +08:00
老铁 +1 就目前你的 知识领域,超过绝大部分普通 Java 开发工程师了
|
7
lwbjing 2018-03-20 23:54:16 +08:00 1
算不算是运气不好,如果 5 面就你一个人走到 BOSS 面前的话,可能 5 面就结束了吧...
|
8
pke 2018-03-21 00:05:11 +08:00
不错了 估计换个部门就能过了
|
9
feverzsj 2018-03-21 00:08:02 +08:00 2
这明显是刷 kpi
|
10
lance6716276 2018-03-21 00:11:43 +08:00 via Android 2
递归不就是用的 JVM 的栈吗…这不是更糟了…
|
11
0915240 2018-03-21 00:16:07 +08:00
博客写的蛮不错的 希望加一个 rss 我可以订阅下 :)
|
12
aheadlead 2018-03-21 00:26:25 +08:00
你就不能把链表倒过来再输出吗…
大不了输出完再倒回去 |
13
coffeSlider 2018-03-21 00:29:39 +08:00 via Android
|
14
mentalidade 2018-03-21 00:37:55 +08:00
这个帖子要火。。。
|
15
watzds 2018-03-21 00:52:40 +08:00 via Android
以前校招三轮电话就没了😂,伤心
参加比赛去阿里中间件逛了逛 |
16
ouyangnandi 2018-03-21 00:57:40 +08:00
愿意来我们部门吗?你的水平绝对够了。。。中间件对技术要求太高。。
|
17
choulinlin 2018-03-21 01:12:44 +08:00 via Android
@aheadlead 最好弄成双向链表 倒过来干嘛 直接 while 到最末尾 再 while ( prev )输出完毕 你的指针指向链表头 这么简单的东西 还搞什么栈
|
18
cyspy 2018-03-21 01:27:40 +08:00 via Android
瑟瑟发抖。。。想换志愿了
|
19
yanjinbin 2018-03-21 01:29:10 +08:00 via iPhone 1
也没觉得有多难
|
20
bravecarrot 2018-03-21 01:40:41 +08:00 via iPhone
@choulinlin 是我没看懂吗..弄成双向链不更麻烦吗。递归直接
a { a ( root.next ); output ( root.val );}不就完了吗.. |
21
bravecarrot 2018-03-21 01:41:03 +08:00 via iPhone 1
楼主很强
|
22
v2orz 2018-03-21 04:01:53 +08:00
这是面的 P 几啊
|
23
songdezu 2018-03-21 04:40:24 +08:00
哪个部门啊 这么刁难人
|
24
hlwjia 2018-03-21 04:53:26 +08:00
可以了,拿着这个可以去刷其他公司面试了 哈哈哈哈哈
|
25
TimCheng 2018-03-21 07:23:58 +08:00 via iPhone
希望你把这篇文章发到掘金专栏啊,我门在做春招面试的有奖征文活动。了解一下? https://juejin.im/entry/5aaf2e9f51882555677e5a07
|
26
bengol 2018-03-21 07:51:24 +08:00
1000 倍与无限扩展有什么区别?
|
27
xhinliang 2018-03-21 08:02:19 +08:00 via iPhone
楼主可以试一下快手~xhinliang#gmail
|
28
xiaoyukid 2018-03-21 08:25:18 +08:00
楼主可以的半年后再战
|
29
shallyy 2018-03-21 09:02:15 +08:00 via Android
厉害了
|
30
cyril4free 2018-03-21 09:08:08 +08:00
作为技术被楼主甩好几条街的人.....看来不用想阿里了..
|
31
pandachow 2018-03-21 09:21:28 +08:00
毕竟中间件团队……
|
32
leeg810312 2018-03-21 09:25:42 +08:00 via Android
基础、广度、深度,还有想象中的案例,这是面试技术总监吗?年薪百万?
|
33
woodface2233 2018-03-21 09:29:11 +08:00 via iPhone
这个是问的 p8 以上? hr 的问题那种很明显就是坑啊,怎么回答都是给自己下套
|
34
woodface2233 2018-03-21 09:30:31 +08:00 via iPhone
如果只是去做个 p6 就不要去了
|
35
whypool 2018-03-21 09:39:02 +08:00
到 6 面很厉害了
|
36
romanroad6 2018-03-21 09:46:51 +08:00
萌新请教各位大佬,达到楼主这样的水平有什么学习路线吗?
|
38
zacard OP @lance6716276 没有更糟,理论上空间复杂度是一样的,但是递归更简洁易懂
|
39
iceheart 2018-03-21 09:49:34 +08:00 via Android
反转链表的时间复杂度是 O(2n),空间复杂度是 O(1).用栈,时间复杂度仍然是 O(2n),空间复杂度是 O(n)
|
41
zacard OP @woodface2233 面的 p6/p7 岗
|
42
andev 2018-03-21 09:54:59 +08:00
来讨论下 HR 那几个问题怎么答,感觉怎么答都不好
|
43
coffeSlider 2018-03-21 09:55:29 +08:00 via Android
|
44
coffeSlider 2018-03-21 09:57:42 +08:00 via Android
@iceheart
看错了,以为你说的是递归了 |
45
nl101531 2018-03-21 09:58:22 +08:00
答主的博客怎么不提供一个 rss 订阅啊
|
46
KgM4gLtF0shViDH3 2018-03-21 10:04:02 +08:00
难得的面试分享诶
|
47
sunysen 2018-03-21 10:07:04 +08:00
楼主是否有意向加入比特大陆呢,我的微信 love16898
|
48
callmexiaobo 2018-03-21 10:07:05 +08:00 via Android
|
49
nycbdwss 2018-03-21 10:08:42 +08:00
真的难我去 去年才毕业的感觉这辈子都进不了阿里了把
|
50
callmexiaobo 2018-03-21 10:08:59 +08:00 via Android
|
51
amon 2018-03-21 10:10:45 +08:00
到 6 面很厉害了,ne 的头像兽王的 id,刚他。
|
52
jjianwen68 2018-03-21 10:13:41 +08:00
听起来很牛逼了,阿里的 p6/p7,这个水平还不够吗
|
54
Xrong 2018-03-21 10:16:47 +08:00 1
PHP 低端码农,暗暗路过。。。
|
55
YouXia 2018-03-21 10:21:37 +08:00
没有交叉面,应该面的是 P6 吧。阿里系统相关岗位面试都比较难,可以看看某人面阿里 C++系统岗位的题目:
![面试题]( ) |
56
aheadlead 2018-03-21 10:24:31 +08:00
@coffeSlider O(N) 和 O(2N) 差别不大吧
|
57
studyJ 2018-03-21 10:29:44 +08:00
感觉就像打通关一样
|
58
crossoverJie 2018-03-21 10:31:56 +08:00
原来我不是一个人,也是年前面到年后。
流程差不多,三轮技术面,两轮 coding。 最后跪在了 HR,择日再战吧。 |
59
alangz 2018-03-21 10:33:26 +08:00
都是对技术深度和广度的考察,以及问题的解决能力
|
62
fcoolish 2018-03-21 11:21:26 +08:00
楼主社招几年的?
|
64
richardhit 2018-03-21 11:42:39 +08:00 1
说实话,感觉很多内部的人出去,再想面试进来,也是蛮难的。真是尴尬。
|
65
miki6180 2018-03-21 11:44:50 +08:00
瑟瑟发抖
|
66
coalo 2018-03-21 11:50:56 +08:00
下周一去阿里前端一面瑟瑟发抖地飘过。。。
|
68
AlibabaSS 2018-03-21 12:23:18 +08:00
欢迎这周六来阿里调度&容器技术沙龙,系统软件事业部的同学们欢迎大家~ http://sc-meetup.wixsite.com/scmeetup
|
69
TimCheng 2018-03-21 12:28:01 +08:00 via iPhone
@callmexiaobo #50 整理一下发出来吧,让更多开发者看到。
|
70
joeke 2018-03-21 12:32:05 +08:00
阿里那么恐怖的吗 六面!!!!
|
71
lance6716276 2018-03-21 12:49:32 +08:00 via Android
@zacard 我没太看过 JVM,但是递归的话 JVM 也要额外保存上下文吧,存储的东西更冗余了。JVM 的栈深度总比你自己申请一个要浅吧,这在 C 系里面不是常识吗
|
72
winglight2016 2018-03-21 12:59:19 +08:00
@bengol 1000 倍,简单点水平扩展 1000 倍的服务器就可以解决,无限和这个没法比
|
73
StephenW 2018-03-21 13:29:20 +08:00
楼主工作几年了?面这么多轮不是能力不匹配的问题,都是其他因素决定的。
|
74
arsgm 2018-03-21 13:49:47 +08:00
请教一下楼主,这些知识都是日常工作积累吗?感觉好多都接触不到,平时怎么积累这些方面的知识呢?
|
75
liuguicen 2018-03-21 13:50:28 +08:00
这个栈的题真不咋样啊,反转链表感觉好很多
|
76
fyooo 2018-03-21 14:08:04 +08:00
Orz
|
77
fxxkgw 2018-03-21 14:31:14 +08:00 2
这个一面有点搞笑啊,社招会专门问这些么?不应该是掺杂着顺道提一下么?
阿里的面试其实也就那样,我身边从 P6 到 P8 都有过去的,但我个人并不觉得他们怎么厉害,只要你在工作中实际参与过一些稍微复杂、高大上的项目,面试时候基本都过得去,剩下的就是看面试官情况了,有些人角度刁钻,逮着你三年前的项目一个劲问,有些阿里面试官喜欢显摆算法,一言不合就一堆算法抛过来。 记得在知乎看过一个问题:哪些事情是你当了领导才知道的?有个回答是:作为面试官,真的会很紧张。 社招一面、二面这些面试官,可能他们跳槽时候换成了你面试他们,所以他们只能逮着你简历里他熟悉的东西一个劲的问,假如你当时只是浅尝辄止,那可能就悲剧,如果你真的很深入,那恭喜你。。 所以综上,面试有时候真的需要运气。 |
78
MasterC 2018-03-21 14:55:27 +08:00
我一般面试别人 都是对着简历上做过的项目问,基本的算法数据结构掌握即可,复杂一点的我自己都没法深刻掌握,毕竟平时都是搞业务。希望我再出去的时候也能遇到个“懂事”的面试官吧
|
79
luohuanlhh 2018-03-21 15:18:14 +08:00
战略性 mark
|
80
fcten 2018-03-21 15:26:06 +08:00
倒序单向链表用递归或者栈那是学生写作业的写法……
|
81
phieo2018 2018-03-21 15:33:28 +08:00
兄弟 蚂蚁金服开放平台技术部 java 岗位了解一下?
|
82
ldd882008 2018-03-21 16:01:13 +08:00 via iPhone
mark,老哥已经很牛逼了
|
83
ldd882008 2018-03-21 16:03:03 +08:00 via iPhone
萌新路过、谢谢大佬分享
|
84
ucaime 2018-03-21 16:04:54 +08:00
兄弟 信息平台的岗位了解一下?
|
85
hnpyhyz 2018-03-21 16:10:22 +08:00 via iPhone
lz 这是 P 几啊,看得瑟瑟发抖
|
86
fish267 2018-03-21 16:10:42 +08:00
兄弟, 蚂蚁金服网商银行技术部 java 岗位了解一下?
|
87
SoulSleep 2018-03-21 16:30:27 +08:00
这面试,估计也就能撑到三面
|
88
miketeam 2018-03-21 16:45:31 +08:00 via iPhone
阿里是要找神仙啊!刚才看到新闻阿里 22 岁少年吐槽加班文化。真不知道技术这么牛的人都这么想不开要去体验加班生活
|
89
rebill 2018-03-21 17:04:08 +08:00
厉害,我都是止步在一面。
|
90
choulinlin 2018-03-21 17:15:11 +08:00 via Android
@YouXia 这样的岗位年薪多少呢
|
91
choulinlin 2018-03-21 17:17:04 +08:00 via Android
@fcten 你有什么高见
|
92
xwhxbg 2018-03-21 17:19:11 +08:00
大佬,阿里这要求确实有点高啊,我面的蚂蚁中间件,二面就挂了,没看到后面居然还有这么多的要求
|
93
YouXia 2018-03-21 17:35:30 +08:00
@choulinlin
啥都算上,40-100,都有可能。这个面试,也可能 P6+,也可能 P7。现在面试能去阿里的,去其他公司短期内可以获得更大的收益,但是还是很多人会选择阿里,原因比较多,一方面大家都想去核心部门,去见识更牛逼的程序员,第二就是现在互联网已经在走下坡路,已陆续出现裁员的公司,早回大厂早占坑,大厂干的好有股票激励,其实长远看收入并不低。 |
94
TZ 2018-03-21 18:14:04 +08:00
六面,好恐怖啊
|
95
zzh992 2018-03-21 19:10:32 +08:00
先 Mark 在膜拜
|
96
conn4575 2018-03-21 19:14:56 +08:00 via Android
这么恐怖吗😱我感觉我一面都过不了…
|
97
aprilfool001 2018-03-21 19:55:23 +08:00
兄弟, 杭州 蚂蚁金服 客户平台 是否考虑一下?
|
98
ashitaka 2018-03-21 20:06:01 +08:00
看了下面试过程 觉得 lz 还是很厉害的 中间件要求的确是高
lz 有兴趣阿里其他的岗位 可以联系我 我这边提供妈妈的职位内推 广告相关的 |
99
Soula 2018-03-21 20:22:49 +08:00
其实用栈还是递归用系统栈还是改成双链表都没啥区别,递归也就优雅点。。
要我的话就 while loop 反转单链表再输出得了。。 |