linux c++ 服务器端开发面试必看书籍整理

题外话: 推荐一个 github 上的 开源书籍,有各种语言版本的,建议看 英文版 ,当然也有 中文版 非常之棒!!

一、算法基础系列

  • 数据结构基础(C语言版)》朱仲涛 译
  • 《剑指Offer》
  • 《编程之美》
  • 《编程珠玑》
  • 《CareerCup-Top 150 Questions 4th》
  • 《[算法导论].(美国)Cormen.扫描版》

二、C/C++面试题基础系列

  • 《程序员面试宝典》
  • 《程序员面试攻略》
  • 《C/C++程序员生存手册》

三、高质量代码系列

  • 《高质量程序设计指南》
  • 《高质量程序设计艺术》

四、C语言系列(对很好的掌握C++有很大帮助)

  • 《编程精粹:编写高质量C语言代码》
  • 《C语言深度解剖》
  • 《C和指针》
  • 《C专家编程》

五、C++系列

  • 《C++ primer》 
  • 《C++程序设计语言》
  • 《effective C++》
  • 《more effective c++》
  • 《C++语言99个常见编程错误》
  • 《c++沉思录》
  • 《c++ 编程剖析-问题、方案和设计准则》刘未鹏译
  • 《提高C++性能的编程技术》左飞
  • 《STL 源码剖析》

六、LINUX系列

  • 《鸟哥的LINUX私房菜基础篇》
  • 《鸟哥的LINUX私房菜服务器架设篇》
  • 《Linux/Unix系统编程手册》
  • 《Linux程序设计》马修
  • 《UNIX 环境高级编程》
  • 《Linux内核设计与实现》
  • 《Linux内核完全注释(修正版v3.0)》
  • 《Unix 编程艺术》

七、LINUX 工具系列

  • 《VIM中文手册》
  • 《轻松学用linux shell编程》
  • 《Linux命令、编辑器与Shell编程》 / (美) Mark G. Sobell著; 杨明军, 王凤芹译
  • 《跟我一起学makefile》

八、多线程编程系列

  • 《多核多线程编程》
  • 《LINUX 多线程服务器端编程》 陈硕

九、其它辅助系列

  • 《处理器架构》
  • 《英特尔平台编程》
  • 《深入理解计算机系统》
  • 《深入浅出设计模式》
  • 《[设计模式]:可复用面向对象软件的基础》机械工业出版社
  • 《深入理解计算机系统》
  • 《汇编语言程序设计》

再补充几本书可以作为后面后备

一部分书反复读3遍以上。比如apue,unp,tcp/ip v1等。
重点圈几本推荐下:(*号书籍 强烈推荐)
c/c++:
初级 c语言解惑/C和指针
专家:C专家编程 *
c++ primer/effictive c++/inside c++ *
tcp/ip书籍
tcp/ip v1(tcp/ip 详解 卷I) *** 卷2/3没必要买,也没必要看,这本卷1主要将tcp/ip原理
unp *** 这本主要将linux socket编程API,两本结合看,效果最佳
unp2(unix 网络编程第2卷) 这本主要讲IPC,有时间可以看看
linux书籍:
apue ***
深入理解linux内核 *
其他系列linux源码书籍,适量看即可。
应试算法及智力题:
编程之美、编程珠玑
海量数据处理:
这个网上收集资料,或者有时间我传上来。
数据结构:
数据结构与算法分析-C语言描述 Weiss *
考研数据结构1800红色题集

(0)

相关推荐

  • linux c++ 服务器端开发面试必看书籍整理

    题外话: 推荐一个 github 上的 开源书籍,有各种语言版本的,建议看 英文版 ,当然也有 中文版 非常之棒!! 一.算法基础系列 数据结构基础(C语言版)>朱仲涛 译 <剑指Offer> <编程之美> <编程珠玑> <CareerCup-Top 150 Questions 4th> <[算法导论].(美国)Cormen.扫描版> 二.C/C++面试题基础系列 <程序员面试宝典> <程序员面试攻略> <C/

  • linux脚本判断条件总结(必看)

    如下所示: -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d file 若文件存在且是一个目录,则为真 -e file 若文件存在,则为真 -f file 若文件存在且是一个规则文件,则为真 -g file 若文件存在且设置了SGID位的值,则为真 -h file 若文件存在且为一个符合链接,则为真 -k file 若文件存在且设置了"sticky"位的值 -p file 若文件存在且为一已命名管道,则为真 -r fil

  • Linux磁盘分区实战案例(必看篇)

    一.查看新添加磁盘 [root@localhost /]# fdisk -l 磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘标签类型:dos 磁盘标识符:0x0009f1d1 设备 Boot Start End Blocks Id System /dev/s

  • 面试必问Linux 命令su和sudo的区别解析

    目录 1. 准备工作 2. su 命令介绍及主要用法 2.1 - 参数 2.2 切换到指定用户 2.3 -c 参数 3. sudo 命令介绍及主要用法 3.1 主要用法 3.2 sudo 工作原理 3.3 思考 4. 二者的差异对比 之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下. 1. 准备工作 因为本篇博客中涉及到用户切换,所以需要提前准备好几个测试用户,方便后续切换. Linux中新建用户的命令是 us

  • Linux shell脚本输出日志笔记整理(必看篇)

    1.日志方法简介: #日志名称 log="./upgrade.log" #操作日志存放路径 fsize=2000000 #如果日志大小超过上限,则保存旧日志,重新生成日志文件 exec 2>>$log #如果执行过程中有错误信息均输出到日志文件中 #日志函数 #参数 #参数一,级别,INFO ,WARN,ERROR #参数二,内容 #返回值 function zc_log() { #判断格式 if [ 2 -gt $# ] then echo "parameter

  • Linux下查看.so和可执行文件是否debug编译的方法(必看)

    今天同事问我,如何判断一个.so是否是debug编译的. 我记得以前自己是用file来查看一个.so,根据是否包含"not stripped"来判断该.so是否是debug编译的,于是就没做实验就回答. 然而,stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后,得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了. 根据<Computers Systems - A

  • 关于java开发的性能问题总结(必看)

    1:hibernate的hql如何处理分表问题?如果不能处理,hibernate是不是比mybatis的扩展性差,灵活性差. 2:where in()效率真的很低吗? 3:spring事物配置,如何配置子事物的异常不会让主事物回滚? 4:数据库做删除操作,会影响查询吗?锁获取异常在每天2万数据量的情况下,真的会经常出现. 以上这篇关于java开发的性能问题总结(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 详谈Linux写时拷贝技术(copy-on-write)必看篇

    COW技术初窥 在linux程序中,fork()会产生一个和父进程完全相同的子进程,但子进程在此后多会exec系统调用,出于效率考虑,linux中引入了"写时复制"技术,也就是只有进程空间的各段的内容要发生变化时,才将父进程的内容复制一份给子进程. 那么子进程的物理空间没有代码,怎么去取指令执行exec系统调用呢?? 在fork之后exec之前两个进程用的是相同的物理空间(内存区),子进程的代码段.数据段.堆栈都是指向父进程的物理空间,也就是说,两者的虚拟空间不同,其对应的物理空间是一

  • linux C编程常见的错误总结(必看篇)

    定义 所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向 的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起 始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息.分段错误(通常简称为段错误)是一个特定的错误条件,计算机软件的操作期间发

  • linux修改tomcat默认访问项目的具体步骤(必看篇)

    tomcat服务器的默认访问路径是webapps目录下的ROOT.如果更改tomcat服务器下的默认访问工程,需要修改tomcat/conf/server.xml配置文件. 打开server.xml可以找到类似下面的配置: <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="fal

随机推荐