C/C++: 熟悉 C/C++ 在 Linux 环境下开发 熟悉 C/C++ 动态内存管理 熟悉类的封装、继承、多态,理解面向过
程与对象的思想 熟悉常用的 STL 容器,了解其底层实现
数据结构:熟悉顺序表、链表、栈、队列、二叉树、堆 熟悉常用的排序算法及其时间复杂度、空间复杂度
了解基本的搜索结构,如:BSTree、AVLTree、红黑树
Linux 系统:熟悉 Linux 操作系统的基本指令及相关开发工具的使用 了解 Linux 进程的虚拟地址空间以及进程的
PCB 熟悉 Linux 下的进程和线程概念、了解多进程和多线程编程 了解进程间通信方式、信号机制以及处理方式
了解同步互斥机制,可利用同步互斥机制实现生产者、消费者模型
计算机网络:熟悉 TCP/IP 四层模型结构,熟悉 TCP、UDP、HTTP 等网络协议 了解 TCP 实现可靠传输的机
制,如拥塞控制、确认应答 熟悉 TCP 三次握手、四次挥手的过程 熟悉 socket 编程,编写基本的客户端、服务器
了解五种高级 IO 模型,熟悉 IO 多路转接(select、poll、epoll)
MYSQL: 了解 MYSQL 数据库的 DDL、DML、DCL 语句 了解 MYSQL 数据库的索引和事务
Python: 熟练使用开源库进行:矩阵运算(numpy) 图像处理、视频处理(opencv) 了解深度学习主流的 CNN 和
RNN 模型,并使用 Pytorch 框架搭建
工具:Git Docker CMake GDB
网络库
tcp/udp客户端,接口简单易用并且是线程安全的,用户不必关心具体的socket api操作。
tcp/udp服务器,使用非常简单,只要实现具体的tcp/udp会话(Session类)逻辑,使用模板的方式可以快速的构建高性能的服务器。
对套接字多种操作的封装。
线程库
使用线程实现的简单易用的定时器。
简单易用的线程池,可以异步或同步执行任务,支持functional 和 lambad表达式。
工具库
文件操作。
std::cout风格的日志库,支持颜色高亮、代码定位、异步打印。
INI配置文件的读写。
监听者模式的消息广播器。
基于智能指针的循环池,不需要显式手动释放。
角色 | 职位 |
负责人 | 后端开发工程师 |
队员 | 后端工程师 |