我认为的好书

算法

  • TAOCP 计算机程序设计艺术。the art of computer programming(神书,无法看)
  • 挑战程序设计竞赛
  • CLRS 算法导论(最权威的)
  • 算法与数据结构 C语言描述(经典)
  • 算法 java
  • 算法设计与分析基础 levitin
  • how to think about algorithms 算法的证明
  • Competitive programmer’s handbook acm的基础知识
  • the algorithm design manual 算法设计手册
  • algorithms jeffE
  • 组合最优化 理论和算法

编译器

  • SICP 计算机程序的构造和解释
  • Programming Language Pragmatics。《程序设计实践之路》从编程语言、实现和编译、操作系统、硬件之间的联系做了比较好的分析,对各类语言中背后设计的抉择做了分析。
  • 《Engineering a Compiler, Second Edition》(中文:《编译器设计》)
  • 《编译原理》 龙书
  • 《C语言描述编译器》虎书
  • 《Advanced Compiler Design and Implementation》(中译版:《高级编译器设计与实现》) 鲸书
  • 《Optimizing Compilers for Modern Architectures》(中译版:《现代体系结构的优化编译器》)
  • 《Essentials of Programming languages 》
  • EAC TAPL
  • 《Advanced Virtual Machine Design and Implementation》
  • Static Single Assignment Book
  • Parsing Techniques
  • Concepts,+Techniques,+and+Models+of+Computer+Programming

PLT

  • Practical Foundations for Programming Languages
  • Advanced Topics in Types and Programming Languages

操作系统

  • CSAPP《深入理解计算机系统》,原版《Computer Systems: A Programmer’s Perspective, Second Edition》
  • MOS 现代操作系统
  • 程序员的自我修炼
  • Operating_Systems_Three_Easy_Pieces_

体系结构

  • CAAQA 计算机体系结构-量化研究方法
  • 计算机组成与设计:硬件/软件接口
  • 计算机体系结构精髓
  • 现代处理器设计 --超标量处理器设计
  • 并行计算机体系结构
  • 《计算机系统要素》
  • A Primer on Memory Consistency and Cache Coherence
  • intel开发者参考手册

网络

  • 《TCP/IP详解》卷一、二
  • 计算机网络,自顶向下方法。
  • http权威指南
  • ace A Design Pattern for Efficient Multi-threaded I/O Demultiplexing and Dispatching

分布式

  • 分布式算法
  • 从Paxos到Zookeeper
  • 大规模分布式存储系统
  • Sukumar Ghosh - Distributed Systems -An Algorithmic Approach Distributed Systems

数据库

  • 《数据库系统概论(第5版)》王珊 / 萨师煊 著
  • 数据库系统概念
  • 数据库系统实现
  • 数据密集型应用系统设计
  • 高性能Mysql
  • 《数据库事务处理的艺术》,李海翔 著
  • 《数据库查询优化器的艺术》,李海翔 著
  • 《Transaction Processing: Concepts and Techniques》, Jim Gray / Andreas Reuter 著

硬件

  • 《PCI Express 系统结构标准教材》,《pci express system architecture》的中文版
  • 《深入浅出SSD》

内核

  • 《linux内核源代码情景分析》
  • 《Linux内核设计与实现》
  • 《深入理解Linux内核》
  • 《深入linux内核架构》
  • Windows内核情景分析
  • linux内核完全注释
  • 深入理解linxu内核网络技术内幕
  • 深入理解linux虚拟内存管理
  • 深入理解linux设备驱动
  • 现代体系结构上的unix系统

windows

  • windows内核原理与实现

操作系统API

  • unp1/2,apue
  • linux/unix系统编程手册,The Linux Programming Interface

windows

  • 《Windows程序设计》
  • 《Windows核心编程》
  • windows高级编程指南

多线程

  • 《多处理器编程的艺术》
  • 深入理解并行编程

语言

c

  • TCPL C程序设计语言
  • C和指针
  • C陷阱与缺陷

cpp

  • CPPP C++ Primer
  • effective c++/more effective cpp/ modern effective cpp
  • 深度探索cpp对象模型
  • 提高C++性能的编程技术

汇编

  • 王爽老师的《汇编语言(第2版)》
  • 老码识途
  • 格蠹汇编
  • 80X86汇编语言程序设计教程
  • Professional Assembly Language linux下
  • Programming from the Ground Up (Jonathan Bartlett, Dominick Bruno Jr)
  • https://en.wikibooks.org/wiki/X86_Assembly
  • https://sourceware.org/binutils/docs-2.25/as/index.html

java

  • Java并发编程实践,Java Concurrency in Practice
  • 深入理解Java虚拟机
  • Java核心技术(卷2):高级特性(原书第9版)
  • JAVA核心技术(卷1)

调试

  • 《软件调试》
  • 《软件调试的艺术》
  • 《Debug hacks》
  • Debugging with gdb
  • python灰帽子 黑客与逆向工程师的python编程之道
  • GCC Complete Reference
  • Linker and Loader
  • Why Programs Fail, Second Edition A Guide to Systematic Debugging by Andreas Zeller

源码剖析和实战

  • Windows PE权威指南
  • Hadoop权威指南:大数据的存储与分析(第4版)(修订版)(升级版) 、
  • Redis实战
  • Linux高性能服务器编程

数据库

  • 《MySQL内核:InnoDB存储引擎 卷1》,姜承尧 / 蒋鸿翔 / 饶珑辉 / 温正湖 著
  • 《分布式数据库系统原理(第3版)》 [Principles of Distributed Database Systems(Third Edition)],by M.Tamer Ozsu / Patrick Valduriez
  • 《PostgreSQL数据库内核分析》,彭智勇 / 彭煜玮 著
  • 《Spark SQL内核剖析》

工具

  • 《精通正则表达式》
  • 鸟哥的Linux私房菜

经验之谈

  • 代码整洁之道
  • 重构
  • 程序员修炼之道
  • UNIX编程艺术
  • 《The design for the unix operating system》对理解UNIX设计大有裨益

其他

  • 分布式机器学习:算法、理论与实践
  • 深度学习
  • 计算理论导引
  • 并行算法 陈国良
演算法的handbookPreface ix I Basic techniques 1 1 Introduction 3 1.1 Programming languages . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Input and output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Working with numbers . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.4 Shortening code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.5 Mathematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.6 Contests and resources . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Time complexity 17 2.1 Calculation rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.2 Complexity classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Estimating efficiency . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4 Maximum subarray sum . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Sorting 25 3.1 Sorting theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 Sorting in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.3 Binary search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4 Data structures 35 4.1 Dynamic arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2 Set structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.3 Map structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.4 Iterators and ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.5 Other structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.6 Comparison to sorting . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5 Complete search 47 5.1 Generating subsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.2 Generating permutations . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.3 Backtracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.4 Pruning the search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 5.5 Meet in the middle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 Greedy algorithms 57 6.1 Coin problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6.2 Scheduling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 6.3 Tasks and deadlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.4 Minimizing sums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.5 Data compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 7 Dynamic programming 65 7.1 Coin problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.2 Longest increasing subsequence . . . . . . . . . . . . . . . . . . . . . 70 7.3 Paths in a grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.4 Knapsack problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.5 Edit distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.6 Counting tilings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 8 Amortized analysis 77 8.1 Two pointers method . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 8.2 Nearest smaller elements . . . . . . . . . . . . . . . . . . . . . . . . . 79 8.3 Sliding window minimum . . . . . . . . . . . . . . . . . . . . . . . . . 81 9 Range queries 83 9.1 Static array queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.2 Binary indexed tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 9.3 Segment tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.4 Additional techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 10 Bit manipulation 95 10.1 Bit representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 10.2 Bit operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 10.3 Representing sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 10.4 Bit optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 10.5 Dynamic programming . . . . . . . . . . . . . . . . . . . . . . . . . . 102 II Graph algorithms 107 11 Basics of graphs 109 11.1 Graph terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 11.2 Graph representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 12 Graph traversal 117 12.1 Depth-first search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 12.2 Breadth-first search . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 12.3 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值