三月底投了 18 个区块链的社招岗位,大厂小厂、公链联盟链都有,收到了 6 个公司的面试邀请,(后期也有其它公司发来面试邀请,不过太晚了就没继续面了),最后拿到了 4 个公司的 offer.
这期间参加了应该有接近 20 场面试,下面整理了一些面试中问到的问题,有些当时面完没有记录仅凭记忆回想了,希望对参加区块链校招、社招的朋友们有帮助~
不少问题都是根据简历上写的来问的,有些面试官问的问题我说不了解,就没有深入问下去,比如 EVM 虚拟机。
此外,根据经验,区块链岗位更重视项目,其次是区块链相关的知识点,最后才是基础八股文。当然了算法题也是必须的,如果算法挂了的话,估计也没戏了。
基础八股文
- 方法里声明的变量存在哪里,如何根据变量名找到对应的值
- linux 环境编程动态链接库和静态链接库有什么区别
- 两个进程共享一个动态链接库,都去写动态链接库的一个全局变量,会怎样影响
- gdb 调试的时候中断是怎么实现的
- 产生死锁的条件,怎么解决死锁
- 分布式事务,讲一下两阶段提交,过程中节点故障的影响讨论
- 数据库的隔离级别了解吗
- 脏读、幻读是什么
- linux 管道如何实现的
- 讲一下 TCP 三次握手,为什么需要三次
- TCP 的 time_wait 状态了解吗?为什么需要该状态?如果 server 端存在大量处于 time_wait 状态的连接,会产生什么影响,该如何优化
- C++ 的虚函数实现原理
- 虚函数表指针存在哪里?为什么
- this 指针作用,成员函数中 delete this 会发生什么
- C++ 中类模板的实现为什么需要放在头文件
- C++ 的 extern 关键字
- go 中有缓冲 channel 和无缓冲 channel 的区别,是否阻塞,读/写一个已关闭的 channel 会发生什么
- 介绍一下 GC
- 介绍一下 GMP 模型
- defer 机制
- goroutine 和线程的区别
- go 中如何限制 goroutine 的数量
- go 中如何控制一个 goroutine 的退出
- 讲一下 go 中的 context
- 介绍一下 go 中的锁
- go 中有哪些数据是引用类型
- go 中的 interface 有什么用,判断 interface 是不是 nil
- 设计模式
区块链知识点
- (我之前主要做的联盟链)有了解过公链吗?交易所相关的?
- 如果做一个钱包应用,需要保存用户的私钥,如何保证私钥的安全(我答了可信硬件 SGX)
- 介绍一下 SGX
- SGX 的远程认证过程
- 比特币中如何确认一笔交易是否发生
- 比特币发起一笔交易的流程
- 比特币如何保证交易顺序的一致性
- 讲一下 PoW
- 了解自私挖矿吗,介绍一下
- 比特币中,target的前导0 和 困难度的关系是怎样的?
- 对于 sha256,如果只截取前 128 bit,那么会对安全性有什么影响
- 讲一下 RSA 的原理
- 介绍一下门限签名
- 了解零知识证明吗?
- 介绍一下同态加密
- 讲一下 PBFT 的共识流程
- PBFT 为什么需要三阶段
- PBFT 容错为什么是 1/3
- 同步网络、半同步网络、异步网络的区别
- CFT 共识和 BFT 共识的区别
- 介绍一下 HotStuff 和 PBFT 的区别
- 介绍一下异步共识(HoneyBadger、Dumbo)和半同步共识(PBFT、HotStuff)的区别
- P2P 网络了解吗,讲一下节点发现、内网穿透、Gossip 策略
- 了解 IPFS 的 结构化 P2P 网络 吗
- 智能合约开发了解吗 (没有深入了解,面试官没继续问)
- 区块链里的主流虚拟机都有哪些
- 了解 EVM 虚拟机吗 (没有深入了解,没继续问)
- 介绍一下 Merkle tree
- 了解以太坊的 MPT 吗,有几棵树,分别是什么作用,提出 MPT 是为了解决什么问题
- 了解 PoS 吗,介绍一下
- 介绍一下 fabric 的隐私保护模块
- 区块链和传统技术的优劣是什么,目前技术挑战是什么
算法
- 实现 LRU,被问过三次,没让写代码,只说思路即可
- 如何使用小内存对大量数据排序:归并外排序,只说思路即可
- 找二叉搜索树的次小值
- 对于一个排过序的链表,删除连续重复的所有节点 (问过两次)
- 二叉树的任意两个节点的最长路径
- 求数组的第k大值
- 一个简单的棋盘覆盖问题
- 模拟大整数乘法
- 合并 k 个有序链表
- n 段不同长度的绳子,需要割成 m 段等长的绳子,问最长是多少
- 删除链表的倒数第 k 个节点
项目
简历上写了两个区块链的项目,这里就不方便说了。
这部分面试官问的比较多,有的面试官问的非常细,个人感觉也是能拿到 offer 的关键。
hr 面
- 职业规划
- 三个词形容一下自己
- 最大的缺点是什么
- 前一份工作期间遇到的最大的挑战是什么,怎么解决的
- 你觉得自己适合做 leader 吗
- 对前面几轮面试的感受和评价
- 对区块链这个领域的看法
总结
过去的三月、四月份恰逢互联网公司的裁员潮,实习、跳槽好像都挺困难的。
我虽然最后也拿到了 offer,不过感觉很大程度上是赶上了区块链这个小风口。
虽然区块链在国内已经发展了多年了,不过热度时断时续,据我了解不少公司也是刚起步做区块链相关的业务,因此处于快速招人、扩张阶段,不过未来怎样就不好说了。
五月份就要去入职了,希望疫情退散、一切顺利~ |