ppt模板网站大全,本地建设网站软件,万能视频下载工具,搜一搜站长工具C
C Primer
语言基础学习
C Templates The Complete Guide (2nd Edition)
学习模板#xff0c;更好的阅读 STL 源码#xff0c;毕竟C 标准库大部分是模板。
The C Standard Library
全称
The C Standard Library
A Tutorial and Reference
Second Edition简单的了解标…C
C Primer
语言基础学习
C Templates The Complete Guide (2nd Edition)
学习模板更好的阅读 STL 源码毕竟C 标准库大部分是模板。
The C Standard Library
全称
The C Standard Library
A Tutorial and Reference
Second Edition简单的了解标准库
effective modern cpp
学习c11的新特性等比较好的书;
汇编
了解语法和常见指令即可; 生僻指令用时查阅; 毕竟指令文档都有几千页; 用时再查, 了解常用的即可;
编译
Makefile
主页有文档有教程。https://www.gnu.org/software/make/ 可以学习如何编译小型项目和大型项目项目依赖。并行编译等。 案例 gcc test.cpp -o ./a.out在makefile里面如下
./a.out : test.cppgcc test.cpp -o ./a.out表示如果./a.out编译后test.cpp发生了更新再次编译就需要重新编译。即增量编译这样可以减少编译时间。特别是编译文件比较多的时候。编译指令就是gcc test.cpp -o ./a.out;
gcc g
编译指令集gcc, g只是一个指令其内部有很多指令。 https://www.gnu.org/software/gcc/ 官网有manual文档; 了解编译指令和作用包括编译几个阶段指令选项。编译优化调试makefile辅助规则生成; 等等;
bash: 必学
编译和linux环境下必须要会的; https://www.gnu.org/software/bash/ 主要介绍了指令如何解析如何编程执行原理高级技巧等
binutils
linux下二进制分析工具集合; 建议熟练掌握; 用于分析二进制;
CMake
一个makefile生成器; 也可以生成visual studio sln, 可以看成是个项目配置生成器。为各种ide生成编译配置。
操作系统
Linux Kernel Development Third Edition
第三版的linux内核介绍有中英文对操作系统进行详略得当的说明。 进程线程等概念调度器算法的演变。
understanding linux kernel
详细到源码级别的讲解。需要一定基础结合linux内核源码建议2.6.32等。
linux signal
信号机制是一个比较常用的机制和编程也联系比较密切。
The Linux Programming interface
linux环境下常用api介绍和原理; 比较适合作为linux环境下的编程字典; 不会就查; 也适合用来了解linux的常用环境书籍;
程序员的自我修改
从二进制详细分析介绍, 到代码编译连接原理等; linker and loader比较老的书;
itanium abi
介绍c的编译规则; 如何将cpp代码变成二进制的, 符号如何解析, 二进制如何排列, 各自对应类型, 各种机制实现, 符号加密;
开发工具
vscode: 必备神器
远程linux的利器; 当然用命令行也可以, 但是效率要比vscode慢很多; 而且vscode有很多插件; 就是有点占用资源;
git
替代传统的ctrl c, ctrl v备份; 用git来管理备份; 高效容易管理; 有学习难度; 官方文档前几章可以满足80的需求; 高级的边用边学;
filezilla
开源免费轻量级文件传输;
windows terminal cmder
美观, 高效, 支持历史记录和历史搜索, 自动补全;
7 zip
轻量级开源压缩解压工具;
sublime
一键编译执行的利器; 高效开发各种脚本;
notepad
轻量级, 搜索高效;
脚本
bat
windows下自动化必备;
bash
linux下自动化必备
python
丰富的库, 支持开发各种类型脚本; 非常强大; 简单易学;
exploring expect
一个和交互式命令行打交道的脚本; 按需学习, 可以了解;
网络
tcp/ip中英结合阅读
第一本概念: tcp udp原理, 高级的输入和接受提效机制原理; (滑动窗口和拥塞窗口)
第二本实现: 主要是实现介绍, 底层包管理, 差不多是源码分析了;
第三本编程: 主要是unix域, 自定义组包等;
wireshark
也有其他工具, 抓包分析; 明文类型分析, 包头分析; http分析; 加密协议基本无法获取有用信息;
性能优化
gdb: 必学
代码调试必备技能 https://www.gnu.org/software/gdb/ 如何调试执行时的程序; 从如何启动; 断点设置; 函数调用栈; 内存数据分析; 汇编调试分析; 异常抛出位置; 野指针导致崩溃; 多线程调试分析等等;
perf
查看代码热点 缓存命中等; 主要是优化热点代码; 注意: 优化和代码可读性不可兼得; 维护就变得困难;
mit Performance Engineering of Software Systems
公开课, 第一课从矩阵计算优化挑起读者兴趣; 后面的课程对于基础要求比较高MIT的学生默认基础好?; 高性能入门了解;
Performance analysis on a modern CPU
性能分析各种技巧; 从cpu内部分析;
缓存分级, 缓存命中, 多核通讯
建议了解学习;
编译优化
如何让代码 被编译器优化, 和规避编译器优化; 编译器提供机制; 如何让代码 被cpu并行执行优化, 和规避cpu并行优化; cpu提供指令;
内存
asan
谷歌开发 gcc, g 等编译器内置; 全称address sanitizer; 用于分析内存 泄漏, 越界 等快速有效;
valgrind
全面但是慢; 可以查看各种问题;
gcov
代码覆盖率工具;
设计
设计模式design patterns reusable object oriented
适合了解入门;