吉比特实习面试

一面

一定要找一个稳定的网络面试!!!

通过牛客网进行的视频面试,本地测试的时候特别稳定,然后和面试官面试的时候网络就特别差,之后让面试官等了一下才开始的正式面试。

首先面试官先说要自我介绍一下,就说了一下自己的姓名、学校、学院、专业班级之类的,提了下从大一开始打 ACM 的经历。

然后面试官就开始问我 C++ 学的怎么样,我说还可以,然后就开始问对 C++11 了解吗,我提到了比赛中只用到过 auto 关键字和范围 for 遍历,又说了一下智能指针、lambda 表达式只了解过但是没实际用过。

接下来就开始问我智能指针有三种,分别介绍一下他们,这里我忘记了第三种的 weak_prt 了,就直接开始介绍 shared_ptr 和 unique_ptr ,提了下 unique 和 shared 的最大区别在于 unique 不能拷贝,然后面试官问我怎么实现不能拷贝,就是直接把拷贝构造函数和拷贝运算符删掉就 ok 了。

之后我提了一下右值引用(我也忘记是怎么提到的了),然后面试官问我右值引用大概是什么东西,为什么要用得到右值引用。我感觉右值引用就是引用右值吧,介绍了下右值的特点。

之后问了我学校集训队的情况,人数和队内的情况怎么样,自己擅长哪方面的算法之类的。我提到我擅长数据结构、动态规划,然后接下来就给我了一道算法题。

给出一个 n 行 m 列的矩阵,每个位置有 1 或 0,1 代表可以放棋子,0 不能放,任意两个棋子不能相邻放(四连通),问有多少种放的方案。 $n, m < 13$

数据范围这么小,考虑从左上往右下依次放的话,每个棋子只考虑他上方和他左方的棋子就好了,然后考虑转移的话,只需要维护一条轮廓线的状态,大概 $O(n \cdot m \cdot 2^m)$

但是写起来太麻烦了,当时没写出来,和面试官说了一下思路就开始接下来的问题了。

因为我简历中写了一个通过 WebSocket 实现的聊天室,然后面试官问了一下我 WebScoket 协议的工作原理,以及实现方式。使用 WebSocket 协议首先通过发送一个 HTTP 请求将当前协议切换成 WebSocket 协议,大概类似于握手的一个过程,前端我是直接使用的 JavaScript 的 Socket.io 库,后端通过 Python 的 Socket 实现了 WebSocket 协议。

随后问了多线程了解的怎么样,我和他说了一下我上面聊天室项目中多线程的应用,提了下为什么 Python 多线程只对 IO 密集型有用,顺便提了下之前使用多线程优化 Sort。

然后问我编译原理学的好吗,我就直接说考的挺好,但是学的不怎么样,然后就没继续问了。

之后问我对游戏开发感兴趣了,我就聊了一下之前做过一个 H5 的飞机大战游戏,并且看了一下游戏如何实现同步。

最后面试官问我有什么问题问他吗,我就问了他们公司后端开发需要学那些技术,他告诉我他们后端基本上都是自己写的,不用什么框架,甚至开发了自己的一套脚本语言。然后我问了下厦门和深圳那个地方好,薪资啥的。

二面(HR 面)

很意外这次直接是 HR 面,感觉一般要有个三面甚至到四面才到 HR 面的样子,面试的昨晚我还担心一面的时候没有问多少基础问题,二面的时候会不会着重问很多基础问题,又翻了一晚上书…

  • 大学期间都在做什么情况,全部都在参加 ACM 比赛吗?

    从大一就开始打比赛,一直持续到大三上学期打完最后一个赛季。

  • 你认为参加 ACM 比赛,最大的收获是什么?

    我认为最大的收获是锻炼了自己的自学能力,比如好多高级算法都是要自己去翻博客,啃论文。

  • 你当时为什么要参加 ACM 比赛?

    • 第一点因为 ACM 是一个竞赛,参加这样一个竞赛,就有很多次机会去和其他高校非常厉害的人去切磋竞争,能够认识到自己的水平和不足。
    • 我喜欢算法和难题,并且在竞赛中能思考并解决一些很有意思的问题。
    • 我喜欢 ACM 集训队的氛围,大家一起讨论难题、学习算法,以及可以认识很多厉害的人。
  • 关于你的第一个投票系统,有没有考虑过各种用户需求等?

    没有,只是一个简单的 demo。

  • 你喜欢游戏吗,最近在玩什么游戏?

    特别喜欢,从小就开始玩……直到现在玩……(省略好多字,讲道理如果和我聊游戏的话,我能聊一上午的)

  • 你大概可以持续工作多长时间?

    从暑假开始可以实习,理论上持续多久都可以。

  • 你希望进入一家怎么样的公司?

    喜欢公司的办事效率高一些,自己身边的同事都喜欢热爱技术。

  • 有没有投其他公司?

    投了,腾讯,头条等。

  • 有没有女朋友?

    没有(然后 HR 说就不用考虑异地的问题了)。

  • 你有什么问题问我吗?

    • 如果我获得实习机会,我会在什么岗位?

    • 至少工作几个月,每周工作时长?

    • 有没有转正机会?

    • 实习工资?

      (可能涉及公司信息,以上 HR 回答不写了,感觉实习的时候一定要问清楚上面四个问题)