/CarlCPP

【C++面试&C++学习指南】 这里整理了C++后端研发工程师面试和工作必备的知识点 。

如下是C++后台研发技术路线以及知识点,这里有很多细节,还需要不断完善。 欢迎大家通过【公众号】 或者加我【微信】 与我交流,一起成长一起进步!

以下没有连接的内容就是还没有写,笔者正在拼命赶稿ing....

C++primer B站视频讲解

(玩命更新ing...)

编程语言C++

数据结构与算法

设计模式

  • C++设计模式
  • C++单例模式
  • 用C++设计一个不能被继承的类
  • 如何定义一个只能在堆上定义对象的类?栈上呢
  • 重类构造和析构的顺序

操作系统

  • linux的内存管理机制,内存寻址方式,什么叫虚拟内存,内存调页算法,任务调度算法
  • 锁:互斥锁,乐观锁,悲观锁
    • 死锁必要条件及避免算法
  • 动态链接和静态链接的区别
  • 常见的信号、系统如何将一个信号通知到进程
  • linux系统的各类同步机制、linux系统的各类异步机制
  • 如何实现守护进程
  • 标准库函数和系统调用的区别

linux 服务器

  • 32位系统一个进程最多有多少堆内存
  • 五种I/O 模式:阻塞I/O,非阻塞 I/O,I/O 多路复用,信号驱动 I/O,异步 I/O
    • select 模型和 poll 模型,epoll模型
    • socket服务端的实现,select和epoll的区别(必问)
    • epoll哪些触发模式,有啥区别?
  • 用户态和内核态的区别
  • linux文件系统:inode,inode存储了哪些东西,目录名,文件名存在哪里

计算机网络

  • TCP和UDP区别
  • TCP和UDP头部字节定义
  • TCP和UDP三次握手和四次挥手状态及消息类型
  • time_wait,close_wait状态产生原因,keepalive
  • 什么是滑动窗口,超时重传
  • 列举你所知道的tcp选项
  • connect会阻塞检测及防止,socket什么情况下可读?
  • socket什么情况下可读?
  • connect会阻塞,怎么解决?(必考必问)
  • keepalive是什么?如何使用?
  • 长连接和短连接
  • UDP中使用connect的好处
  • DNS和HTTP协议,HTTP请求方式

数据库

  • 谈谈数据库中索引的理解,索引和主键区别
  • 现在普通关系数据库用得数据结构是什么类型的数据结构
  • 索引的优点和缺点
  • 系型数据库和非关系数据库的特点
  • 乐观锁与悲观锁的区别
  • 数据库范式:第一第二第三范式
  • 数据库日志类型作用
  • B TREE 和B+TREE的区别
  • union和join

海量数据处理

  • bitmap
  • Map-Reduce原理
  • BloomFilter原理
  • Trie树原理
  • LSM树原理

linux下操作命令以及工具

程序员求职

程序员的工具

工欲善其事必先利其器

适合新手的开源项目

关于作者

大家好,我是程序员Carl,哈工大师兄,ACM 校赛、黑龙江省赛、东北四省赛金牌、亚洲区域赛铜牌获得者,先后在腾讯和百度从事后端技术研发,CSDN博客专家。对算法和C++后端技术有一定的见解,利用工作之余重新刷leetcode。

加我的微信,备注:「个人简单介绍」+「组队刷题」, 拉你进刷题群,每天一道经典题目分析,而且题目不是孤立的,每一道题目之间都是有关系的,都是由浅入深一脉相承的,所以学习效果最好是每篇连续着看,也许之前你会某些知识点,但是一直没有把知识点串起来,这里每天一篇文章就会帮你把知识点串起来。

我的公众号

更多精彩文章持续更新,微信搜索:「代码随想录」第一时间围观,关注后回复:「666」可以获得所有算法专题原创PDF。

每天8:35准时为你推送一篇经典面试题目,帮你梳理算法知识体系,轻松学习算法!,并且公众号里有大量学习资源,也有我自己的学习心得和方法总结,更有上万录友们在这里打卡学习,来看看就你知道了,一定会发现相见恨晚!