面(gun)试(cu)


最近面(gun)试(cu)了几家公司……有必要介绍一点人生的经验

因为记不太清楚了所以就凑在一起写吧

算法类

  • 常见的排序算法有哪些(Bogo 冒泡 插入 快排 堆排 BST 内省 桶排(基数))
  • 报一下快排代码(…)
  • 内省排序原理

语言类

  • C++如何zero-initialize一个对象
  • (接上)为什么不能在有string时用memset
  • C++如何实现多态?(静态、动态)
  • 虚函数原理、用途
  • C++的优势、劣势
  • C++ vs Python
  • Golang的优势。协程的优势、应用场景等
  • 会写Java吗……(变化厂专属问题……)

Linux系统类

  • fork+printf问输出多少个\(缓冲区。。。但是这题太捉急了……是未定义行为)
  • login/shell 顺序、区别
  • 物理地址、虚拟地址,线性地址
  • 编译、链接具体做了哪些工作(不太懂……
  • 静态库、动态库
  • Makefile
  • gdb常用命令……如何在输出的时候中断(catch syscall 1)

Redis

  • Redis的内部数据结构、实现原理(刚好看了SET……)
  • 事务 VS 脚本
  • 主从关系

项目相关类

  • LevelDb的底层原理(LSM Tree + SkipList) 为什么采用?
  • 序列化库及原理(不太会……)
  • 提升数据库性能的方法(表拆分。。。)
  • 网络原理(不会。。。GG)
  • Scheme解释器中作用域的实现……递归的实现
  • profile的相关方法……
  • OpenCV了解程度……描述SIFT算法……

并发

  • 进程间同步机制(文件锁、Signal、共享内存……)
  • 线程间同步机制(信号量– >mutex/cond var spinlock spinlock性能一定更好吗……)
  • 无锁队列的实现(只会写入队orz。。。)
  • 为什么要有锁、内存屏障……(内存访问非原子,处理器核缓存,指令重排。。。)
  • CAS问题

杂向

  • 管理团队中最经常碰到的一些问题
  • 文档、测试的重要性
  • 谈谈写代码最重要是什么……(抽象 <-> 性能 之间的平衡……)