avatar
T a b l e a u 昂塞特面经# JobHunting - 待字闺中
i*h
1
面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
?让讲思路就行。
R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
。反正时间就耗完了,估计他们很不满意。
R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写
了3个class说是send query如果每次最多只能接收50条query,多了就会crash,问怎么
设计?问能不能按singleton写?说写一小段code就行了。反正没这方面经验,很囧。
R4: 两白人,一个好像是俄罗斯人(不确定): 让设计游戏,俄罗斯方块,他们说想
看看设计思路怎么样,这种游戏要怎么考虑。反正完全无感,不知道怎么设计。
avatar
I*g
2
电话面试简单吗?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
z*e
3
版面上面经多数是c++组的,主要负责gui和data engine之类的
你主要使用语言是java,主要考察你对后台系统的了解以及应用
所以自然会有所差别
avatar
i*h
4
以为也是刷刷题就可以的,没什么经验有的问题真的不懂,结果就挂了。

【在 z****e 的大作中提到】
: 版面上面经多数是c++组的,主要负责gui和data engine之类的
: 你主要使用语言是java,主要考察你对后台系统的了解以及应用
: 所以自然会有所差别

avatar
z*e
5
r4你做过android就很清楚,主要问你网络协议用什么
看看你对gui部分是否有所了解,gui未必做重点
但是你可能需要对udp之类的比较熟悉才行
r3其实也是类似的idea,r3可以用http,因为是回合制
不像俄罗斯方块那样real time要求比较强
所以平常多看点vert.x之类的,这种就比较容易对付
vert.x对付udp轻轻松松
avatar
z*e
6

没有啊,这家公司内推的人不说了,不用刷题,说明重点不是lc啊
他们做的主要是data的可视化部分
对网络传输时效要求比较高的,这个你如果多看看vert.x的用户
那些who is using,就能看到很多类似的项目

【在 i*****h 的大作中提到】
: 以为也是刷刷题就可以的,没什么经验有的问题真的不懂,结果就挂了。
avatar
i*h
7
不太懂,你再给具体讲讲吧
或者有什么好的资料可以看的?多谢啊

【在 z****e 的大作中提到】
: r4你做过android就很清楚,主要问你网络协议用什么
: 看看你对gui部分是否有所了解,gui未必做重点
: 但是你可能需要对udp之类的比较熟悉才行
: r3其实也是类似的idea,r3可以用http,因为是回合制
: 不像俄罗斯方块那样real time要求比较强
: 所以平常多看点vert.x之类的,这种就比较容易对付
: vert.x对付udp轻轻松松

avatar
z*e
8
lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
要session状态共享?
avatar
i*h
9
好的,谢谢啊

【在 z****e 的大作中提到】
: lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
: 要session状态共享?

avatar
c*f
10
怀疑你那俄罗斯人是我前同事
avatar
i*h
11
没提session 状态共享,就问怎么考虑 再想想有什么没考虑到的?反正不知道他们要
什么答案。

【在 z****e 的大作中提到】
: lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
: 要session状态共享?

avatar
i*h
12
你同事喜欢出 俄罗斯方块?

【在 c******f 的大作中提到】
: 怀疑你那俄罗斯人是我前同事
avatar
z*e
13

为什么说hashmap那个实现不好?
那可是在实践中总结出来的那种方式
他们有说那个实现有什么问题没有?
具体的问题,比如无法scale之类的

【在 i*****h 的大作中提到】
: 没提session 状态共享,就问怎么考虑 再想想有什么没考虑到的?反正不知道他们要
: 什么答案。

avatar
i*h
14
没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
我想想

【在 z****e 的大作中提到】
:
: 为什么说hashmap那个实现不好?
: 那可是在实践中总结出来的那种方式
: 他们有说那个实现有什么问题没有?
: 具体的问题,比如无法scale之类的

avatar
z*e
15

那应该先分析一下问题
问问他们什么东西需要cache
是网络部分?还是persistence部分?
用cache一般为了加速,那为什么会慢呢?
db?带宽?还是内存处理?
或者是网络协议?或者是硬盘上的io太多?
诸如此类的,只能一点点分析了

【在 i*****h 的大作中提到】
: 没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
: 我想想

avatar
z*e
16
作为练手
你可以试试自己做一个
比如android上的app+后台的这么一个系统
就跟他们做的产品很像了,比如app做一个俄罗斯方块的对战
这个难度很高,虽然做完之后觉得也就是那么一回事
但是明显难度高不少,比起一般的web项目
后台建议你用vert.x,会简单点,用一般的web server比较麻烦
因为一般web server都是http,协议的overhead太多
如果是自己用socket裸写的话,先进的思想就无法吸收
用vert.x基本上各种先进的思想有个汇总
你可以学习先进的思想都是怎么对付这些问题的
怎么做就自己去折腾了,从不懂到懂,估计你自己要折腾上至少个把月吧
avatar
d*e
17
R3:这个搞AKKA,stream都可以搞定。
R2: 很多吧。redis, memcached都是。
你可以timedout。等等。可以lru一个memory chunk.

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
i*h
18
我网上再多看看资料吧,我的那点工作经验还不如new grad好混

【在 z****e 的大作中提到】
: 作为练手
: 你可以试试自己做一个
: 比如android上的app+后台的这么一个系统
: 就跟他们做的产品很像了,比如app做一个俄罗斯方块的对战
: 这个难度很高,虽然做完之后觉得也就是那么一回事
: 但是明显难度高不少,比起一般的web项目
: 后台建议你用vert.x,会简单点,用一般的web server比较麻烦
: 因为一般web server都是http,协议的overhead太多
: 如果是自己用socket裸写的话,先进的思想就无法吸收
: 用vert.x基本上各种先进的思想有个汇总

avatar
i*h
19
能再具体讲讲吗?多谢啊

【在 d******e 的大作中提到】
: R3:这个搞AKKA,stream都可以搞定。
: R2: 很多吧。redis, memcached都是。
: 你可以timedout。等等。可以lru一个memory chunk.

avatar
z*e
20

这个跟是否是new grad没啥关系
只要做过就懂,没做过就不懂,网络上资料普遍比较分散
需要你自己一点一点去学习,好像没有整个一套下来酱紫

【在 i*****h 的大作中提到】
: 我网上再多看看资料吧,我的那点工作经验还不如new grad好混
avatar
d*e
21
send 那个APi设计
思路1加messsage queue
但是这个不是api 设计级别的问题
另外一个思路就是解决backpressure问题。
Back-pressure
A means of flow-control, a way for consumers of data to notify a producer
about their current availability, effectively slowing down the upstream
source to match their consumption speeds. In the context of Akka Streams
back-pressure is always understood as non-blocking and asynchronous
简单的说,send Query过去,返回还能处理多少条数据。
具体实现。
如果是actor的话,好办的多, 可以push, 可以pull.可以定义消息,slow down or
speed up.
可以加LB,加多个processor.等等
你要是传统的,blocking and sync.那么加一个blocked buffer. proc/consumer问题
。这个夜很经典了
两个conditional variables. full empty. 两个while check, notifyall.搞定。

【在 i*****h 的大作中提到】
: 能再具体讲讲吗?多谢啊
avatar
i*h
22
非常感谢!

【在 d******e 的大作中提到】
: send 那个APi设计
: 思路1加messsage queue
: 但是这个不是api 设计级别的问题
: 另外一个思路就是解决backpressure问题。
: Back-pressure
: A means of flow-control, a way for consumers of data to notify a producer
: about their current availability, effectively slowing down the upstream
: source to match their consumption speeds. In the context of Akka Streams
: back-pressure is always understood as non-blocking and asynchronous
: 简单的说,send Query过去,返回还能处理多少条数据。

avatar
k*l
23
俄罗斯方块先用二维0/1矩阵硬来,找不到快捷方法先遍历,全1行删除;弄出个思路再
说优化的问题?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
S*5
24
面的好难啊,感觉比FLG还难
avatar
S*5
25
能问下电面面的什么吗? 我电面问的是regular expression的题,我看面经也是说它
家喜欢考tree。
avatar
b*X
26
第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
semaphore 好一些
我补一下面经吧
1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
股价总和,
2. 设计扫雷游戏, 埋雷,挖雷,测试
3. 吃饭聊天
4. 和楼主这道题相似
我面之前也是各种准备树和图的题,LC, 因为glassdoor上好像都考的这些,结果考了
不少设计题,自己水平太差浪费了版上前辈的内推 T_T
avatar
z*e
27
就是多线程的老路,thread如果用得太多,容易出问题
现在流行eventloop那种,一个core对应一个thread酱紫
这个还是看懂了vert.x就都懂了,游戏设计是经典题了
实在是面得太多了,以前的battleship,下棋,到现在俄罗斯方块这些
其实都一样,不过俄罗斯方块时效强一点,其他多数是回合制,更容易写

【在 b*****X 的大作中提到】
: 第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
: 我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
: 是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
: semaphore 好一些
: 我补一下面经吧
: 1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
: 股价总和,
: 2. 设计扫雷游戏, 埋雷,挖雷,测试
: 3. 吃饭聊天
: 4. 和楼主这道题相似

avatar
z*e
28
发现他们backend很喜欢考多线程
而且对于eventloop,异步这一块有偏好
虽然threadpool也可以,但是现在好像不怎么流行用threadpool
最新的都是一个core对应一个thread,这样便于scale out
最新成果是quasar,这个直接把同步搞成异步,用一个annotation就实现了
建议多看看vert.x,一天到晚就在搞这些东西
streaming我觉得没有必要
不过你要是连streaming都懂,这些都小意思了
streaming最好把rxjava,reactive这些先看看
不过他们也考得很实在,这种公司比较有前途,做的东西也靠谱
avatar
i*h
29
我一开始就说用semaphore,好像也不是他要的。

【在 b*****X 的大作中提到】
: 第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
: 我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
: 是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
: semaphore 好一些
: 我补一下面经吧
: 1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
: 股价总和,
: 2. 设计扫雷游戏, 埋雷,挖雷,测试
: 3. 吃饭聊天
: 4. 和楼主这道题相似

avatar
I*g
30
拿到OFFER了?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
z*e
31
道理对,但是太底层了,而且这个除非是游戏,pvp,否则用不到,actor那种比较合适
,你没有必要自己折腾并发,交给轮子去跑

:我一开始就说用semaphore,好像也不是他要的。
avatar
i*h
32
别明知故问啦,面成这样太受打击了,水平不够只能再练。

【在 I*******g 的大作中提到】
: 拿到OFFER了?
avatar
i*h
33
记得是recover binary tree就是那个原题, 想想好像是graph valid tree,最近烦心
事多记性不行,当时同时面两公司怕串一起,反正肯定是两题里的一题。

【在 S**********5 的大作中提到】
: 能问下电面面的什么吗? 我电面问的是regular expression的题,我看面经也是说它
: 家喜欢考tree。

avatar
s*d
34
请教一下zhao前辈。我new grad 有点写android app的经历,但都是本地app没写过
server side。为了找工作有没有必要学学Spring, 做个client和server都带的project?

【在 z****e 的大作中提到】
: r4你做过android就很清楚,主要问你网络协议用什么
: 看看你对gui部分是否有所了解,gui未必做重点
: 但是你可能需要对udp之类的比较熟悉才行
: r3其实也是类似的idea,r3可以用http,因为是回合制
: 不像俄罗斯方块那样real time要求比较强
: 所以平常多看点vert.x之类的,这种就比较容易对付
: vert.x对付udp轻轻松松

avatar
v*N
35
mark
avatar
v*N
36
mark
avatar
S*5
37
明白了,谢谢楼主
avatar
p*e
38
LinkedHashMap
A special constructor is provided to create a linked hash map whose order of
iteration is the order in which its entries were last accessed, from least-
recently accessed to most-recently (access-order). This kind of map is well-
suited to building LRU caches. Invoking the put or get method results in an
access to the corresponding entry (assuming it exists after the invocation
completes). The putAll method generates one entry access for each mapping in
the specified map, in the order that key-value mappings are provided by the
specified map's entry set iterator. No other methods generate entry
accesses. In particular, operations on collection-views do not affect the
order of iteration of the backing map.

【在 i*****h 的大作中提到】
: 没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
: 我想想

avatar
k*l
39
听起来你这个就是用leetcode上的方法实现的啊

of
least-
well-
an
in
the

【在 p****e 的大作中提到】
: LinkedHashMap
: A special constructor is provided to create a linked hash map whose order of
: iteration is the order in which its entries were last accessed, from least-
: recently accessed to most-recently (access-order). This kind of map is well-
: suited to building LRU caches. Invoking the put or get method results in an
: access to the corresponding entry (assuming it exists after the invocation
: completes). The putAll method generates one entry access for each mapping in
: the specified map, in the order that key-value mappings are provided by the
: specified map's entry set iterator. No other methods generate entry
: accesses. In particular, operations on collection-views do not affect the

avatar
i*h
40
面试官不满意这个思路,不知道是不是要扩展的再深再广一点?具体深入要怎么弄我不
是很懂。

of
least-
well-
an
in
the

【在 p****e 的大作中提到】
: LinkedHashMap
: A special constructor is provided to create a linked hash map whose order of
: iteration is the order in which its entries were last accessed, from least-
: recently accessed to most-recently (access-order). This kind of map is well-
: suited to building LRU caches. Invoking the put or get method results in an
: access to the corresponding entry (assuming it exists after the invocation
: completes). The putAll method generates one entry access for each mapping in
: the specified map, in the order that key-value mappings are provided by the
: specified map's entry set iterator. No other methods generate entry
: accesses. In particular, operations on collection-views do not affect the

avatar
i*h
41
面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
?让讲思路就行。
R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
。反正时间就耗完了,估计他们很不满意。
R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写
了3个class说是send query如果每次最多只能接收50条query,多了就会crash,问怎么
设计?问能不能按singleton写?说写一小段code就行了。反正没这方面经验,很囧。
R4: 两白人,一个好像是俄罗斯人(不确定): 让设计游戏,俄罗斯方块,他们说想
看看设计思路怎么样,这种游戏要怎么考虑。反正完全无感,不知道怎么设计。
avatar
I*g
42
电话面试简单吗?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
z*e
43
版面上面经多数是c++组的,主要负责gui和data engine之类的
你主要使用语言是java,主要考察你对后台系统的了解以及应用
所以自然会有所差别
avatar
i*h
44
以为也是刷刷题就可以的,没什么经验有的问题真的不懂,结果就挂了。

【在 z****e 的大作中提到】
: 版面上面经多数是c++组的,主要负责gui和data engine之类的
: 你主要使用语言是java,主要考察你对后台系统的了解以及应用
: 所以自然会有所差别

avatar
z*e
45
r4你做过android就很清楚,主要问你网络协议用什么
看看你对gui部分是否有所了解,gui未必做重点
但是你可能需要对udp之类的比较熟悉才行
r3其实也是类似的idea,r3可以用http,因为是回合制
不像俄罗斯方块那样real time要求比较强
所以平常多看点vert.x之类的,这种就比较容易对付
vert.x对付udp轻轻松松
avatar
z*e
46

没有啊,这家公司内推的人不说了,不用刷题,说明重点不是lc啊
他们做的主要是data的可视化部分
对网络传输时效要求比较高的,这个你如果多看看vert.x的用户
那些who is using,就能看到很多类似的项目

【在 i*****h 的大作中提到】
: 以为也是刷刷题就可以的,没什么经验有的问题真的不懂,结果就挂了。
avatar
i*h
47
不太懂,你再给具体讲讲吧
或者有什么好的资料可以看的?多谢啊

【在 z****e 的大作中提到】
: r4你做过android就很清楚,主要问你网络协议用什么
: 看看你对gui部分是否有所了解,gui未必做重点
: 但是你可能需要对udp之类的比较熟悉才行
: r3其实也是类似的idea,r3可以用http,因为是回合制
: 不像俄罗斯方块那样real time要求比较强
: 所以平常多看点vert.x之类的,这种就比较容易对付
: vert.x对付udp轻轻松松

avatar
z*e
48
lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
要session状态共享?
avatar
i*h
49
好的,谢谢啊

【在 z****e 的大作中提到】
: lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
: 要session状态共享?

avatar
c*f
50
怀疑你那俄罗斯人是我前同事
avatar
i*h
51
没提session 状态共享,就问怎么考虑 再想想有什么没考虑到的?反正不知道他们要
什么答案。

【在 z****e 的大作中提到】
: lru那个我也不是很清楚,我比较少搞cache,他们说的scalable是要什么意思?
: 要session状态共享?

avatar
i*h
52
你同事喜欢出 俄罗斯方块?

【在 c******f 的大作中提到】
: 怀疑你那俄罗斯人是我前同事
avatar
z*e
53

为什么说hashmap那个实现不好?
那可是在实践中总结出来的那种方式
他们有说那个实现有什么问题没有?
具体的问题,比如无法scale之类的

【在 i*****h 的大作中提到】
: 没提session 状态共享,就问怎么考虑 再想想有什么没考虑到的?反正不知道他们要
: 什么答案。

avatar
i*h
54
没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
我想想

【在 z****e 的大作中提到】
:
: 为什么说hashmap那个实现不好?
: 那可是在实践中总结出来的那种方式
: 他们有说那个实现有什么问题没有?
: 具体的问题,比如无法scale之类的

avatar
z*e
55

那应该先分析一下问题
问问他们什么东西需要cache
是网络部分?还是persistence部分?
用cache一般为了加速,那为什么会慢呢?
db?带宽?还是内存处理?
或者是网络协议?或者是硬盘上的io太多?
诸如此类的,只能一点点分析了

【在 i*****h 的大作中提到】
: 没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
: 我想想

avatar
z*e
56
作为练手
你可以试试自己做一个
比如android上的app+后台的这么一个系统
就跟他们做的产品很像了,比如app做一个俄罗斯方块的对战
这个难度很高,虽然做完之后觉得也就是那么一回事
但是明显难度高不少,比起一般的web项目
后台建议你用vert.x,会简单点,用一般的web server比较麻烦
因为一般web server都是http,协议的overhead太多
如果是自己用socket裸写的话,先进的思想就无法吸收
用vert.x基本上各种先进的思想有个汇总
你可以学习先进的思想都是怎么对付这些问题的
怎么做就自己去折腾了,从不懂到懂,估计你自己要折腾上至少个把月吧
avatar
d*e
57
R3:这个搞AKKA,stream都可以搞定。
R2: 很多吧。redis, memcached都是。
你可以timedout。等等。可以lru一个memory chunk.

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
i*h
58
我网上再多看看资料吧,我的那点工作经验还不如new grad好混

【在 z****e 的大作中提到】
: 作为练手
: 你可以试试自己做一个
: 比如android上的app+后台的这么一个系统
: 就跟他们做的产品很像了,比如app做一个俄罗斯方块的对战
: 这个难度很高,虽然做完之后觉得也就是那么一回事
: 但是明显难度高不少,比起一般的web项目
: 后台建议你用vert.x,会简单点,用一般的web server比较麻烦
: 因为一般web server都是http,协议的overhead太多
: 如果是自己用socket裸写的话,先进的思想就无法吸收
: 用vert.x基本上各种先进的思想有个汇总

avatar
i*h
59
能再具体讲讲吗?多谢啊

【在 d******e 的大作中提到】
: R3:这个搞AKKA,stream都可以搞定。
: R2: 很多吧。redis, memcached都是。
: 你可以timedout。等等。可以lru一个memory chunk.

avatar
z*e
60

这个跟是否是new grad没啥关系
只要做过就懂,没做过就不懂,网络上资料普遍比较分散
需要你自己一点一点去学习,好像没有整个一套下来酱紫

【在 i*****h 的大作中提到】
: 我网上再多看看资料吧,我的那点工作经验还不如new grad好混
avatar
d*e
61
send 那个APi设计
思路1加messsage queue
但是这个不是api 设计级别的问题
另外一个思路就是解决backpressure问题。
Back-pressure
A means of flow-control, a way for consumers of data to notify a producer
about their current availability, effectively slowing down the upstream
source to match their consumption speeds. In the context of Akka Streams
back-pressure is always understood as non-blocking and asynchronous
简单的说,send Query过去,返回还能处理多少条数据。
具体实现。
如果是actor的话,好办的多, 可以push, 可以pull.可以定义消息,slow down or
speed up.
可以加LB,加多个processor.等等
你要是传统的,blocking and sync.那么加一个blocked buffer. proc/consumer问题
。这个夜很经典了
两个conditional variables. full empty. 两个while check, notifyall.搞定。

【在 i*****h 的大作中提到】
: 能再具体讲讲吗?多谢啊
avatar
i*h
62
非常感谢!

【在 d******e 的大作中提到】
: send 那个APi设计
: 思路1加messsage queue
: 但是这个不是api 设计级别的问题
: 另外一个思路就是解决backpressure问题。
: Back-pressure
: A means of flow-control, a way for consumers of data to notify a producer
: about their current availability, effectively slowing down the upstream
: source to match their consumption speeds. In the context of Akka Streams
: back-pressure is always understood as non-blocking and asynchronous
: 简单的说,send Query过去,返回还能处理多少条数据。

avatar
k*l
63
俄罗斯方块先用二维0/1矩阵硬来,找不到快捷方法先遍历,全1行删除;弄出个思路再
说优化的问题?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
S*5
64
面的好难啊,感觉比FLG还难
avatar
S*5
65
能问下电面面的什么吗? 我电面问的是regular expression的题,我看面经也是说它
家喜欢考tree。
avatar
b*X
66
第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
semaphore 好一些
我补一下面经吧
1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
股价总和,
2. 设计扫雷游戏, 埋雷,挖雷,测试
3. 吃饭聊天
4. 和楼主这道题相似
我面之前也是各种准备树和图的题,LC, 因为glassdoor上好像都考的这些,结果考了
不少设计题,自己水平太差浪费了版上前辈的内推 T_T
avatar
z*e
67
就是多线程的老路,thread如果用得太多,容易出问题
现在流行eventloop那种,一个core对应一个thread酱紫
这个还是看懂了vert.x就都懂了,游戏设计是经典题了
实在是面得太多了,以前的battleship,下棋,到现在俄罗斯方块这些
其实都一样,不过俄罗斯方块时效强一点,其他多数是回合制,更容易写

【在 b*****X 的大作中提到】
: 第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
: 我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
: 是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
: semaphore 好一些
: 我补一下面经吧
: 1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
: 股价总和,
: 2. 设计扫雷游戏, 埋雷,挖雷,测试
: 3. 吃饭聊天
: 4. 和楼主这道题相似

avatar
z*e
68
发现他们backend很喜欢考多线程
而且对于eventloop,异步这一块有偏好
虽然threadpool也可以,但是现在好像不怎么流行用threadpool
最新的都是一个core对应一个thread,这样便于scale out
最新成果是quasar,这个直接把同步搞成异步,用一个annotation就实现了
建议多看看vert.x,一天到晚就在搞这些东西
streaming我觉得没有必要
不过你要是连streaming都懂,这些都小意思了
streaming最好把rxjava,reactive这些先看看
不过他们也考得很实在,这种公司比较有前途,做的东西也靠谱
avatar
i*h
69
我一开始就说用semaphore,好像也不是他要的。

【在 b*****X 的大作中提到】
: 第三题我好像被问过 好像是想考线程安全吧 问我那个数据库的连接一多就会爆炸,问
: 我怎么限制,但是他问的特别隐晦,又是datasource又是接口什么的,后来才反应过来
: 是限制线程的数量。。当时用 synchronized写的,回家之后想起来好像应该用
: semaphore 好一些
: 我补一下面经吧
: 1. 一个股票系统,每个时间段都有一个股价,给你一个时间window,计算当前window下
: 股价总和,
: 2. 设计扫雷游戏, 埋雷,挖雷,测试
: 3. 吃饭聊天
: 4. 和楼主这道题相似

avatar
I*g
70
拿到OFFER了?

【在 i*****h 的大作中提到】
: 面的software engineer, 一共4轮,每轮2个人,不知道为什么和版上大家面的都不一
: 样,有3轮设计题。之前把tree和graph的题都看了,结果没怎么考。
: R1: 两白人: 出了唯一的lc的题,换了个讲法描述了一遍course sche dule ,解法就
: 是lc的解法。然后让设计个系统,说一个系统如果要支持不同的数据格式,问怎么设计
: ?让讲思路就行。
: R2: 两白人:要求设计C ache,我按lc里L R U C ache讲了一遍,用hashmap和
: doubleLinkedList他们完全不满意,说cache有好多种这样设计不太好,让把大的结构
: 先画出来,然后自己写class和interface,有时间再写method, 然后再一步步讲解。。
: 。反正时间就耗完了,估计他们很不满意。
: R3: 两白人:两manager,吃饭吃了一个小时,然后回conference room,其中一个人写

avatar
z*e
71
道理对,但是太底层了,而且这个除非是游戏,pvp,否则用不到,actor那种比较合适
,你没有必要自己折腾并发,交给轮子去跑

:我一开始就说用semaphore,好像也不是他要的。
avatar
i*h
72
别明知故问啦,面成这样太受打击了,水平不够只能再练。

【在 I*******g 的大作中提到】
: 拿到OFFER了?
avatar
i*h
73
记得是recover binary tree就是那个原题, 想想好像是graph valid tree,最近烦心
事多记性不行,当时同时面两公司怕串一起,反正肯定是两题里的一题。

【在 S**********5 的大作中提到】
: 能问下电面面的什么吗? 我电面问的是regular expression的题,我看面经也是说它
: 家喜欢考tree。

avatar
s*d
74
请教一下zhao前辈。我new grad 有点写android app的经历,但都是本地app没写过
server side。为了找工作有没有必要学学Spring, 做个client和server都带的project?

【在 z****e 的大作中提到】
: r4你做过android就很清楚,主要问你网络协议用什么
: 看看你对gui部分是否有所了解,gui未必做重点
: 但是你可能需要对udp之类的比较熟悉才行
: r3其实也是类似的idea,r3可以用http,因为是回合制
: 不像俄罗斯方块那样real time要求比较强
: 所以平常多看点vert.x之类的,这种就比较容易对付
: vert.x对付udp轻轻松松

avatar
v*N
75
mark
avatar
v*N
76
mark
avatar
S*5
77
明白了,谢谢楼主
avatar
p*e
78
LinkedHashMap
A special constructor is provided to create a linked hash map whose order of
iteration is the order in which its entries were last accessed, from least-
recently accessed to most-recently (access-order). This kind of map is well-
suited to building LRU caches. Invoking the put or get method results in an
access to the corresponding entry (assuming it exists after the invocation
completes). The putAll method generates one entry access for each mapping in
the specified map, in the order that key-value mappings are provided by the
specified map's entry set iterator. No other methods generate entry
accesses. In particular, operations on collection-views do not affect the
order of iteration of the backing map.

【在 i*****h 的大作中提到】
: 没说不好,说看起来work,但是不要他们想要的。我也不知道他们到底要什么,一直让
: 我想想

avatar
k*l
79
听起来你这个就是用leetcode上的方法实现的啊

of
least-
well-
an
in
the

【在 p****e 的大作中提到】
: LinkedHashMap
: A special constructor is provided to create a linked hash map whose order of
: iteration is the order in which its entries were last accessed, from least-
: recently accessed to most-recently (access-order). This kind of map is well-
: suited to building LRU caches. Invoking the put or get method results in an
: access to the corresponding entry (assuming it exists after the invocation
: completes). The putAll method generates one entry access for each mapping in
: the specified map, in the order that key-value mappings are provided by the
: specified map's entry set iterator. No other methods generate entry
: accesses. In particular, operations on collection-views do not affect the

avatar
i*h
80
面试官不满意这个思路,不知道是不是要扩展的再深再广一点?具体深入要怎么弄我不
是很懂。

of
least-
well-
an
in
the

【在 p****e 的大作中提到】
: LinkedHashMap
: A special constructor is provided to create a linked hash map whose order of
: iteration is the order in which its entries were last accessed, from least-
: recently accessed to most-recently (access-order). This kind of map is well-
: suited to building LRU caches. Invoking the put or get method results in an
: access to the corresponding entry (assuming it exists after the invocation
: completes). The putAll method generates one entry access for each mapping in
: the specified map, in the order that key-value mappings are provided by the
: specified map's entry set iterator. No other methods generate entry
: accesses. In particular, operations on collection-views do not affect the

avatar
i*i
81
感谢lz的内推以及面筋!!
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。