滴滴、字节、商汤(Golang实习。。。。大四狗。。。。)

虽然我想说,我大四还实习,确实很烂,我自己也很菜吧。。。。但是没办法,我觉得我参加校招也没太大机会,最后滴滴给了我一个实习offer(口头)

先说字节吧,最惨的一次,一面挂。。。。。(重点是面完我还自信满满的以为自己过 了0.。。。。)
自我介绍
MySql存储引擎InnoDB、MyISAM的区别和各自使用的索引
MySql的B+树索引原理、为什么使用B+树而不使用红黑树,B+树为什么比红黑树快
(我说因为树高,但是面试官一直说为什么树高变低了。。。。我好无奈,我说的因为B+树是多叉搜索树所以它的树高低所以查询快,但是面试官说我还是没说清楚)
Mysql有哪些锁、隔离级别、不可重复读和幻读分别是在哪个隔离级别解决的,幻读解决的原理。
Mysql事务(ACID)
Mysql怎样加锁、隐式、显式(或者说,由谁决定加锁)
(忘了,mysql有没有其它的了,大概是这样)
Redis的整体存储结构(hashtable)
redis的zset的实现方式、跳表数据结构、跳表的时间复杂度
redis的zset的使用场景、zset实现结构(ziplist、跳表)ziplist的限制、两者可以同时存在嘛。。
redis的数据结构有哪些(我只说出来标准的五种,好像在新版本又多了几个,没敢说)
OSi七层模型、五层模型。。。。。。。。。。。。
HTTP、TCP的关系,分别属于哪一层
Golang的channel的实现方式
Golang的GPM‘
Golang时间点的协程数量是怎样的
对goroutine的理解(Golang没有怎么问。。。。。)
还有编程题(但是我一行代码也没写。。。。。。。。。。已经到45分钟了,面试官和我说,给你出个题吧,我以为还让我回答怎么做,我就直接说了思路)
三道题:(。。。。。。。。。。。。。。)
1.leetcode上的链表环路问题(怎样判断链表是否有环):我和面试官说,这题我在leetcode上刷过,利用快慢指针是否会发生碰撞以及是否到尾来判断是否有环,还说了
判断环的入口的位置的方法。。。。。,第一道就这样结束了
2.二维数组,输出其中最大的矩阵的面积,我没想出太好的办法,但是又不愿使用暴力解法,所以说了一个比较复杂(之后想想很低效)的方法
3.字符串数组,字符串的最长公共前缀,大家都懂,解法很简单。。。。。。最后问我时间复杂度,我说是n方。。。。。面试官说是(最短字符串长度乘以数组长度)
我说,字符串长度不也是n嘛。。。。。。。。。。。。。。。。。。我真是个弟弟。。。

字节跳动的一面。挂。。。。。。。总体感受很好,面试官问了我很多很关键的问题,让我对自己的不足有了新的认识,可是真没想到会挂啊。。。。
商汤科技;
一面:
自我介绍
为什么从Java转到Golang啊
协程、线程、进程的区别、
Golang的channel的实现方式、mutex和channel作并发控制你喜欢用哪个,哪个快,为什么。
Golang的GPM
Golang的内存
写网站的时候,浏览器写入url之后的全过程,包括后端的逻辑代码
emmmmm,说实话问了挺多,我记得清楚的就这几个了
TCP:三次握手、四次挥手问都不问。。。。。
第一个问题是如果第二次握手(SYN ACK)报文丢失会出现什么问题,我说会重发,并且说了一个TCP的超时重发机制,面试官和我说,你之前都没有发送过信息怎么会得到它的超时的控制时间。。。。。。。。。。
然后我说,可能有自己的设置吧。。。现在想想不太对。。应该是client端重发SYN报文吧。。。。。。。。
假设网站控制的TCP设置为每次请求只发送一个字节,客户端会怎么样。我说会很卡,但是之后可能不会非常卡,但还是卡。我把我对TCP的拥塞控制说了一下,但是好像不太对,唉。。我个弟弟

题:
二叉树左右子树翻转,很简单,用个递归就可以了
实现一个并发安全的map(也很简单。。。。)
设计数据库表0.。。。。。(我。。。。。会是会,可是我觉得我设计的好烂,不熟悉)
数据库查询操作,数据库的索引优化,B+树结构、MYISAM、InnoDB的区别和各自使用的索引
上面是mysql数据库,我还忘了有些啥。。。。
redis数据库:
redis数据库的结构hashtable,hashtable的结构
五个数据结构的实现方式(底层结构)
忘了还有啥了,商汤重视redis,可能用redis很多。。。
商汤二面:
自我介绍
在校经历、channel的实现方式、自己设计一个mutex
C++怎么样、协程之间的并发控制、自己的缺点
好像还有数据库一方面的知识、也问道了redis,但是我忘了。。。因为redis我认识的更深刻一点,所以记的mysql的问题更清楚。。
还讨论了一些Golang和Java的区别,内存的复杂什么的。
也考了考我Java,Java的内存模型啥的。。

最后挂了,hr说,面试官觉得我不会C++/C,而不太适合这份工作。。。。。。。。。。。(老天。。。。)

滴滴:
一面:
面试官上来直接就问,(我内心,卧槽,这面试官,牛批,省的自我介绍了,我信息都在简历上写的,有啥可自我介绍的,顿时对面试官好感度倍增)
面试官说:“XXX是吧,XX大学?来,我问你几个专业问题哈!”(这开场,牛批,真爽,上来讨论技术多好)
为什么转golang的
为什么不考研啊
Golang的一些问题,channel的实现、GPM、Goroutine的实现方式等等等等,一些Golang的常见底层原理性问题吧。
mysql的索引有哪些(顺便说了哪个索引是哪个存储引擎的,B+树的实现方式,每个存储引擎的使用场景,还自己多加了一个memory存储引擎)把自己能联想到的都自己说了出来
然后。。。。mysql就没了,可能是我自己大致都说了吧。但是我还没说一起其它的锁之类的其它很重要的知识点。
reids:
存储结构(hashtable),竟然没和我谈论各个数据结构的底层实现
redis 的内存分配方式、哪个分配器,
内存碎片是怎样发生的,怎样解决。
然后上面的数据库这一方面就结束了
题:
一串字符串,返回其的最大周期,比如说abab,返回2,ababc 返回1,因为ab不是规范的循环,abababab,返回4,而不是2。
然后我理解错了,理解成了即使在ababc的情况下,返回的应该是2,因为ab循环了两次,然后就开说说我的想法,和面试官讨论,我说使用KMP算法的next思想,然后把我的思路完整的说了
一下,然后面试官说其实暴力一下就可以,我认为暴力会浪费太多的资源,就开始反驳,然后让人笑掉大牙的是,是我考虑的问题比面试官给我出的题复杂了不止一倍。然后又回到了原题目,
然后让我重新构思,我想了一下,即使在简单情况下我的方法也绝对比暴力要快,然后又开始和面试官争论,从复杂问题争论到简单问题,从短字符串争论到超长字符串,谁的速度快,为什么快。
可以通过哪些技巧加快速度,有哪些特性,以及实现之后的复杂度,最后的结论是在字符串长度小且重复元素少的情况下,暴力法绝对比我的快,但是相反的情况,我可以比暴力法快出几倍,甚至几十倍。
然后聊完就有点累了。面试官和我说了一下我什么时候可以去,有多大的概率可以去,说了一下滴滴的实习生薪资,等等等等,感觉面试官对我很好,其中重点给我解答了一下部门的职责等等。聊的很开心,
之后加了微信,让我不懂的问他。(不得不说,面试官的孩子很可爱)
二面:
golang的一些基本问题,可以说是语法层面的吧,没有问我底层实现。
linux的一些常用命令
对golang的理解
还有自己使用过的框架、了解过的框架、orm、数据库、使用的什么客户端等等、一些项目架构方面的知识
然后我问了一下,您决定我的通过概率有多少。。。。。呵,我个直男。。。。。
然后二面面试官和我说一面面试官对我挺满意的,(一脸懵。。。。我是完全不懂面试结构是咋样的,现在才知道。。原来一面掌握我的生杀大权啊。。。)
然后就说,之后会有一些工作就没了,然后,我在微信上和一面说,哥,我觉得我过了,面试官和我说,你干掉了203个和你一起投简历的同学。。。
下午,hr打电话发offer,等流程,
唔,来自某渣渣程序员。。。。加油,希望以后能在滴滴解决更多的效率问题,优化。。。














#滴滴##面经##字节跳动##商汤科技##校招#
全部评论
兄弟,请问商汤科技是投了简历后直接打电话过来的吗?我昨天刚投的简历,今天打电话过来我没有接到。。
点赞 回复
分享
发布于 2019-10-14 10:10
请问滴滴是什么渠道投的简历呀
点赞 回复
分享
发布于 2022-02-08 09:08
英特尔
校招火热招聘中
官网直投

相关推荐

1 45 评论
分享
牛客网
牛客企业服务