Linux/C++ 个人向基础目标技术栈

开发环境

Linux(ubuntu、红帽子、deepin)、熟悉Linux常用命令、Git、Sql。Linux-鸟哥私房菜、Git-廖雪峰。

 

基础

C/C++语言(工具)、计算机组成原理、操作系统、计算机网络、数据库、设计模式、数据结构、算法。

C语言

数组、函数、指针、熟练内存操作。

推荐书籍:

C 程序设计语言、C 缺陷与陷阱、C 专家编程、C 和指针。

 

C++语言

const的用法、引用的用法、#define用法、构造函数、析构函数、拷贝构造、new、delete 和 malloc、free 的区别、访问限定符 public、private、protected、深拷贝和浅拷贝、友元函数、static、内联函数、继承、虚继承、钻石继承问题、同名覆盖问题、虚函数表、虚指针、虚函数、纯虚函数、接口、多态、重写、重载、函数重载、运算符重载、流类库和文件。

 

C++ 进阶

函数模板、类模板,C++ 中对于异常的处理,对于继承和多态底层的理解,对于 virtual 底层的理解等。在C++ 中 boost 库八大智能指针的掌握与理解,其核心是理解并且剖析过相应的源码, <scoped_ptr/shared_ptr/weak_ptr> 这三个是最核心的智能指针。

 

STL 源码

对于 STL 中的容器剖析,常见容器有 list、vector、stack、queue、map 等,考察自动扩容的原理、map 的底层实现(RBtree),源码是必须手动至少剖析一遍的。

对于迭代器、空间配置器的理解,比如:一级空间配置器、二级空间配置器的运用场合分别是什么?一二级空间配置器的本质是什么,如何用内存池去管理?所存在的问题又有哪些,源码又是如何实现的等等,这些问题都需要去思考。

推荐书籍:

C++Priner Plus第六版、Effective C++、more Effectice C++、more Effectice C++、深度探索 C++ 对象模型、C++ 沉思录、STL 源码剖析、泛型编程与STL。

 

数据结构

线性表、链表、堆栈、队列、树((BinTree、BST、AVL、RBtree、B+、B-)、图等等。

推荐书籍:

大话数据结构、数据结构(清华大学严蔚敏)、数据结构与算法分析(机械工业版)。

 

Linux系统编程、网络编程

1:进程环境、进程控制、信号和信号处理、多进程。

2:进程之间通信:文件、管道、FIFO管道、消息队列、信号量、共享内存、socket编程。

3:线程、多线程、线程同步使用互斥量、线程同步使用读写锁。条件变量、信号量。

4:文件I/O文件管理、流I/O。

5:特别要理解这几个进程之间通信的原理、特征优缺点。

6:TCP/UDP协议、socket编程、多路I/O复用select、poll、epoll 高并发。

 

计算机网络

TCP/IP协议、OSI参考模型及TCP/IP参考模型 、常见的网络协议(网桥、ARP、IP、ICMP、TCP、UDP、DNS、DHCP)、协议的选择 、TCP 三次握手与四次挥手、流量控制 + 拥塞控制、网络相关概念 、socket概念 、socket类型 、 socket信息数据结构 、数据存储优先顺序的转换 、地址格式转化 、名字地址转化、socket编程 、 使用TCP协议的流程图 、单播、广播、组播(多播) 。

推荐书籍:

Linux高性能服务器编程、UNIX网络编程卷一、UNIX网络编程卷二、

UNIX 环境高级编程、Linux C程序设计大全、TCP/IP详解。

 

内核源码剖析

Linux 内核源码,可以先看 Linux 内核的设计与实现,摸清楚每部分的构造与原理,前期多看书、多看相关视频,对一些源码的解读,到一定程度,找一份Linux 内核源码,分析源码的。

推荐书籍:

Linux 内核设计与实现、深入理解 Linux 内核。

 

数据库

数据库就是存数据的仓库,数据库作为存储数据的地方,其不同的数据结构、与应用的场景不一样,采取不同的数据库,对于 mysql 基本操作、写 sql 的优化、表的设计、索引优化、如何更快的查询、底层数据结构的设计原理等等问题。

 

设计模式

设计模式基本原则、依赖倒置和迪米特法则、单例模式_懒汉式和饿汉式、懒汉式遇上多线程问题、简单工厂模式、模板、命令、责任链、策略、中介、观察者、访问者、状态、解释器、迭代式模式等等。

主要是学习设计模式的思想、单例模式是必须写代码实现的,其他设计模式理解思想,作为了解内容,后台开发工程师与 mysql 打交道挺多的,也是面试常见问题之一。

 

算法

十大排序算法(冒泡排序、插入排序、选择排序、快排排序、希尔排序、堆排排序、归并排序、桶排排序、基数排序、计数排序),字符串常见算法、数组常见算法、递归算法、贪婪算法、分而治之算法、动态规划算法、随机优化算法、回溯算法、图论算法等等。

posted @ 2020-07-24 11:28  spccoach  阅读(542)  评论(0)    收藏  举报