0%

面试题库


考察点广泛而分散是考虑到国内几乎没有相关专业教育,罗列的知识点是当前比较热门的技术点,并且其中相当一部分我们也在使用。由于开源中关于金融衍生品的内容太少,参考价值很小,基本是需要自己研究形成技术路线,然后魔改开源轮子,所以需要一定的研究能力。由于目前招募岗位预期不会转向HFT方向,所以在CS基础和编程技术方面达到通识教育可以灵活的采用技术路线,不需要对某些技术特别精深有丰富的优化经验。在实际工作中,出现技能要求忽高忽低的情况,例如一个项目90%的功能都可以依赖开源,但是10%却需要完全独立研究原创,所以如果面试者有深入研究某些问题的能力或者经验则大概率具有解决这种问题的能力,应该被额外的加分。

A、有成功的项目经验,了解如何针对目标灵活的选择技术路线,可以承担“项目承包商”的角色。例如,给出一个研究目标可以自主搜集知识并完成模型研发构建。

B、对技术知识链了解较多,对某些知识技术有过实践和思考。例如,给出一个研究目标并辅助讲解,提供经典资料和模型可以灵活运用并做出一定程度的扩展。

C、对知识点了解较为深入,有自主搜集、分析知识的能力。例如,给出研究项目的资料自主搜集相关资料进行深入学习。

D、重点院校硕士学历,数学和英语能力尚可,有很好的学习态度,有一定的编程基础,思想较为成熟,可以观察到有主动学习。


Python基础

1、谈下Python的GIL以及提高python运行效率的方法?对IO密集如何解决?对计算密集如何解决?

2、如何在Python中管理内存?Python垃圾回收机制

3、Python中的元类(metaclass)

4、python中类@staticmethod和@classmethod的区别__new____init__的区别

5、python中类的继承

6、 Python中单下划线和双下划线的区别

7、协程的概念,python如何使用协程?

8、闭包概念

9、python里深浅拷贝的概念,python函数传入dataframe或者numpy等指针引用

10、 当退出Python时,是否释放全部内存?

11、ascii、unicode、utf-8、gbk 区别

12、字节码和机器码的区别

13、python中is和==的区别?

14、用过哪些Python库,根据用的内容问一下

C++ 基础

1、C/C++ 动态链接库与静态链接库的区别,相比于GitHub流行的header only的优缺点?

2、解释下封装、继承和多态?

3、抽象类、接口类、聚合类概念

4、解释静态函数和静态变量的概念,纯虚函数概念,

5、delete this 操作合法吗?

6、explicit 用法

7、堆和栈的区别?堆和栈的生命周期?堆栈缓存方式区别?堆栈数据结构区别?

8、什么是内存泄漏(memory leak)?面对内存泄漏和指针越界通常采用哪些方法来避免和减少这类错误?

9、同步IO和异步IO的区别?

10、常用的排序算法有哪些?简单描述几个排序算法的优缺点?

11、简述数组与指针的区别

12、指针和引用的区别?请你介绍一下C++中的智能指针?

13、函数指针概念,与std::function的区别

14、C语言的malloc和C++中的new有什么区别?

15、C++基本的内存分配方式,内存管理和垃圾回收概念机制

16、什么是右值引用,跟左值又有什么区别?

17、四种cast转换:static_cast、dynamic_cast、const_cast和reinterpret_cast用法

18、new/delete与malloc/free的区别是什么?

19、enum和(enum class)区别?作用域方面

20、Overload、Overwrite及Override的区别

21、const在函数名前面和函数后面的区别?const void *avoid *const a 的区别?const char*, char const*, char* const使用时的区别?

22、void * 和 void 在函数返回值中的区别?

23、如何避免“野指针”?

24、C++中拷贝赋值函数的形参能否进行值传递?

C++ STL标准模板库

1、什么情况下用vector,什么情况下用list,什么情况下用deque

2、vector中的reserve和resize的区别

3、vector中的size和capacity的区别

4、正确释放vector的内存(clear(), swap(), shrink_to_fit())

5、vector 扩容为什么要以1.5倍或者2倍扩容?

6、vector插入删除和list的区别

7、unordered_map 与map的区别?使用场景?

8、为何map和set不能像vector一样有个reserve函数来预分配数据?

9、STL容器的线程安全性

10、deque的底层机制

11、不允许有遍历行为的容器有哪些

12、hash_map和map的区别,什么时候用hash_map,什么时候用map

操作系统

1、进程、线程和协程的概念及区别

2、线程同步的方式有哪些? 为什么要使用线程池?

3、进程的通信方式有哪些?

4、什么是缓冲区溢出?有什么危害?其原因是什么?

5、什么是死锁?死锁产生的条件?

6、进程有哪几种状态?

7、分页和分段有什么区别?

8、操作系统中进程调度策略有哪几种?

9、自旋锁

10、死锁的条件是什么?如何处理死锁问题

12、多进程单线程架构的编程经验

13、文件系统

14、Win32和Linux进程共享内存的区别

15、Windows下的内存是如何管理的?

16、中断和轮询的特点?

17、说说分段和分页,什么是按需分页

18、微内核和宏内核的区别

19、什么是 DMA

20、调度算法都有哪些

21、CPU中的缓存和操作系统中的缓存分别是什么?

22、什么是虚拟内存(Virtual Memory)?

Linux系统

1、什么是Shell?Linux中有几种类型的Shell?

2、Linux的基本组件是什么?

3、Linux中的文件权限类型?

4、什么是守护程序?

5、使用vi编辑器时有哪些不同的模式?如何退出vi编辑器?

6、什么是umask?

7、Linux中的网络绑定有哪些不同的模式?

8、如何检查Linux服务器中正在侦听哪些端口?

9、如何在Linux中更改默认运行级别?

10、简述Linux操作系统内存管理机制

11、Linux系统的开机启动顺序

12、什么是FTP的主动模式和被动模式

13、管道和命名管道的区别

14、什么是虚拟桌面

15、软安装点和硬安装点有什么区别

16、Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

17、如何修改Linux的IP地址、网关和主机名

18、新安装MYSQL后怎样提升MYSQL的安全级别

19、如何查询哪个用户执行的计划任务?

20、Linux磁盘是如何划分的?Linux内存是如何划分的?

21、Linux中buffer和cache有何区别?

22、谈谈对fork的理解

23、什么是自旋锁,如何实现?

24、Epoll的优势是什么?Epoll底层实现是什么?

25、水平触发和边缘触发的区别是什么?

网络编程TCP/IP

1、tcp和udp的区别

2、流量控制和拥塞控制

3、tcp连接建立的时候3次握手,断开连接的4次握手的具体过程

4、epoll与select的区别

5、connect方法会阻塞,请问有什么方法可以避免其长时间阻塞?

6、网络中,如果客户端突然掉线或者重启,服务器端怎么样才能立刻知道?

7、TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)

8、在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排除故障?

9、网络编程中设计并发服务器,使用多进程 与 多线程 ,请问有什么区别?

10、TCP的重发机制是怎么实现的?

11、TCP 黏包问题

12、GET和POST的区别

13、数字证书是什么,里面都包含那些内容

14、HTTP与HTTPS的区别

15、Socket如何唯一标识一个进程?

16、Socket与WebSocket的区别

数据库

1、关系型数据库和非关系型之间的区别

3、简述数据库设计中一对多和多对多的应用场景?

4、SQL数据库优化的思路

5、主键和外键的区别?

6、MySQL有哪些存储引擎?有什么区别?

7、为什么不建议在 MySQL 中使用 UTF-8

8、 数据库索引有哪些数据结构?

9、数据库事务隔离级别?事务隔离级别分别解决什么问题?

10、数据库锁有哪些类型?如何实现?

11、分库分表的常见问题以及解决方案?

12、高并发系统数据层面如何设计?

13、什么是视图?以及视图的使用场景有哪些?

14、SQL如果一个表有一列定义为 TIMESTAMP,将发生什么?

15、MySQL 里记录货币用什么字段类型好

16、float32数据存储到MySQL、MongoDB和Redis中数据类型是什么

17、为什么要用 Redis 而不用 map/guava 做缓存?

18、Redis有哪些数据类型

19、Redis 的持久化机制是什么?RDB和AOF各自的优缺点?

20、Redis的过期键的删除策略

21、MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据

22、Redis如何做内存优化?

23、Redis事务保证原子性吗,支持回滚吗

24、Redis是单线程的,如何提高多核CPU的利用率?

25、如何解决 Redis 的并发竞争 Key 问题

26、什么是 RedLock

27、如何保证缓存与数据库双写时的数据一致性?

28、Redis回收进程如何工作的?

计量和线性回归

1、线性回归中Ordinary Least Squares、Ridge Regression和Lasso的区别是什么?

2、什么是多重共线性?简单谈几种解决方法

3、什么是相关性?三种相关性系数的区别

4、T检验、F检验、卡方检验、P值、自由度的概念

5、置信区间和置信水平

6、R2的概念

7、Durbin-Watson 检验

8、Jarque-Bera检验

9、正态分布检验方法

机器学习

1、什么是偏差(bias)、方差(variable)之间的均衡?

2、KNN和 k-means 聚类由什么不同?

3、解释一下ROC曲线的原理?

4、精度和召回率

5、监督学习和非监督学习有什么不同?

6、什么是贝叶斯定理?它在机器学习环境中如何有用?

7、L1、L2正则之间有什么不同?

8、第一类误差和第二类误差有什么区别?

9、概率和似然有什么区别?

10、交叉检验如何用在时间序列数据上?

11、生成模型与判别模型有什么区别?

12、如何对决策树进行剪枝?

13、什么时候你应该使用分类而不是回归?

14、如何评估你的机器学习模型的有效性?

15、你使用哪些数据可视化库? 你对最佳数据可视化工具有何看法?

16、降维技术,如PCA

17、均值,方差,相关性(统计意义上和经验意义上)

18、采用 EM 算法求解的模型有哪些,为什么不用牛顿法或梯度下降法?

19、GBDT和RF的区别,如何知道随机森林需要多少棵树?‍

20、GBDT和XGBoost的区别是什么?xgboost怎么给特征评分?

21、什么是OOB?随机森林中OOB是如何计算的,它有什么优缺点?

22、过度拟合产生的原因,如何避免过度拟合

23、什么是正则化?为什么需要它?有哪些正则化技术?‍什么样的正则化技术适用于线性模型?‍

24、XGBoost防止过拟合的方法

25、XGBoost中叶子结点的权重如何计算出来

26、LightGBM 与 XGboost 的并行策略不同

27、boosting和bagging的区别

深度学习

1、什么是反向传播?它是如何工作的?为什么需要它?‍

2、什么是Adam?Adam和SGD之间的主要区别是什么,什么时候使用Adam和SGD?‍

3、什么是卷积层?‍为什么需要卷积?不能使用全连接层吗?‍

4、CNN中的pooling是什么?为什么需要它?‍

5、Max pooling如何工作?还有其他池化技术吗?‍

6、CNN本质和优势

7、 鞍点的定义和特点?

8、神经网络数据预处理方法有哪些?

9、 神经网络怎样进行参数初始化?

10、DNN、CNN、RNN的区别与联系

11、 卷积神经网络中空洞卷积的作用是什么?

12、解释下卷积神经网络中感受野的概念?

13、梯度爆炸的解决方法?

14、深度学习模型参数初始化都有哪些方法?

15、注意力机制在深度学习中的作用是什么?有哪些场景会使用?

16、卷积神经网络为什么会具有平移不变性?

17、神经网络参数共享(parameter sharing)是指什么?

18、强化学习中有value-based 和 policy-based,这两种的优缺点分别是什么?应用场景分别是什么?

19、强化学习 DQN,DDQN,AC,DDPG 的区别

CUDA

  • GPU中有多少种不同类型的内存?
  • 什么是合并/未合并?
  • 可以实现矩阵转置内核吗?
  • 什么是经线?
  • 多处理器内可以同时运行多少个经线?
  • 块和线程有什么区别?
  • 它们之间可以进行线程通信吗? 和块?
  • 您能否描述缓存的工作方式?
  • 共享内存和寄存器有什么区别?
  • 哪些算法在GPU上表现更好? 数据绑定还是cpu绑定?
  • 什么是障碍?
  • 什么是流?
  • 您能描述内核的“占用”吗?
  • 什么是数组结构与结构数组?
  • pytorch中cuda()作用,两个Tensor,一个加了cuda(),一个没加,相加后很怎样?
  • SGD,Momentum,Adagard,Adam原理
  • L1不可导的时候该怎么办
  • CNN与RNN在GPU加速效果相差很大,为什么?