有哪些比较基础的优质计算机书籍?

2023-11-02

不废话,推荐6本书。

不是直接罗列6本书,而是有一个看书顺序,按我说的顺序看,学计算机基础事半功倍。

1. 《C程序设计语言典藏版套装》

首先,由于很多经典书籍大部分是用 C 语言或者类 C 语言实现,所以,C 语言本身应该作为计算机学习前的任何前置基础。

C 语言设计最经典的书籍《C程序设计语言典藏版套装》是一定要提及的。

这本书原著即为 C 语言的设计者之一 DennisM.Ritchie,另外一位作者则是著名的计算机科学家 BrianW.Kernighan。

这本书是 C 语言最经典的著作。我们现在见到的大量论述 C 语言程序设计的教材和专著均以此书为蓝本。

这本书本身比较薄,内容充实紧密,花费不长的时间即可读完。对于程序员来说,更是耗费两三天即可读完。

2. 《深入理解计算机系统(原书第3版)》

当完全了解 C 语言特性后,我们自然要开启一系列的计算机基础知识之旅。

首当其冲的自然是神书《深入理解计算机系统(原书第3版)》

这本书评分高达9.9分,可以说是豆瓣上计算机相关书籍中评分最高的一本了。

这本书像一张网一样,从计算机硬件讲起,描述了一台主机中都有什么部件,主板上有什么零件,CPU、内存和硬盘之间怎么连接起来的。

这本书还描述了一个程序是怎么从一个文本文件被编译、链接变成汇编码,又是怎么从汇编语言变成机器码,以及怎么被计算机执行的。

同时,这本书还讲到了计算机网络、组成原理、进程、线程等等。它从硬件讲到软件,从里讲到外,它把我们整个计算机生涯中可能遇到的知识给组织起来了。它就像我们整个职业生涯中所需要的所有基础知识的总纲,有了总纲,我们才能更有调理更有自己的节奏的去进一步学习各种总纲中的知识。

但是,这个总纲对新手甚至对一些基础知识不扎实的程序员可能都不是那么友好,所以建议配合哈佛大学的 CS50 课程一起配合为佳。

当我们看完了总纲之后,我们就可以按照一个固定的体系去安排我们自己的学习计划了。

3. 《算法导论(原书第3版)》

在我们学习完计算机系统后,我们需要明白,计算机能运行本质是通过运行在硬件之上的软件来实现的。我们这些IT从业人员的职业生涯也主要就是围绕着这些计算机软件展开。

而计算机软件中最为核心的就是其数据结构和算法。谈到这些,我们就自然需要推荐史上最权威最经典的《算法导论(原书第3版)》

这本书英文名为"Introduction to Algorithms",有时也被称为 CLRS(取自作者四个人名字的首字母),在计算机领域经典书籍中有时会与 SICP(计算机程序的构造和解释)、CSAPP(深入理解计算机系统)相提并论。

算法导论是国内外公认的算法学习的经典教材,国内外很多知名院校如 MIT、CMU 都有开《算法导论》的课。

这本书号称如果一个人能用一种语言独立完成 90% 以上的算法,那么全世界工作就可以随便挑选了

如果我们了解了数据结构以及相关算法,那么随后我就需要知道这些数据结构与相关算法的最佳实践:操作系统

4. 《现代操作系统(原书第4版)》

为什么我们要学习操作系统?

我们学习操作系统并不是为了去实现一个操作系统。我们学习操作系统可以知道操作系统能做什么,在实际项目中,我们对一些莫名其妙的问题,我们就能更好的归类,更好的追踪,更快的去解决这些问题。

同时,操作系统可能是我们职业生涯中可以遇见的最复杂的软件。

作为复杂的软件,它的设计,它的接口,它的抽象,它的体系架构都是我们自己做软件设计,做系统设计,做架构设计的最佳实例。

另外,操作系统本身也是并发并行的最佳实践。这里,你也可以学习到时序,分时,信号量,各种调度算法。明白了操作系统的并发,你再遇到任何并发问题,都可以从容的迎刃而解了。

学习操作系统我推荐:《现代操作系统(原书第4版)》

这本书对进程、内存管理、文件系统、I/O 都有很详细地讲解,最后还有专门的的章节介绍 Linux 和 Windows Vista 系统。

与国内的教材相比其优点主要在于并非是知识点简单的罗列,而是通过一个个问题去引导出用以解决这些问题的技术,从而加深读者的理解。

5. 《计算机网络:自顶向下方法(原书第7版)》

知道了操作系统,我们就需要去了解当代社会最重要的发明:计算机网络。

《计算机网络:自顶向下方法(原书第7版)》

这本书对于网络就像是深入理解计算机系统这本书对于整个计算机基础知识,是对整个计算机网络体系的一个总纲。

你从这本书中可以学习到现代网络是如何通信的,最初网络是如何设计的以及为何要这样设计,协议和协议是如何互相沟通的。

这本书同样也需要在线课程搭配着来,可以参考如下两门课程(B 站上可以搜到):

  1. 国防科技大学-计算机网络(国家级精品课)
  2. 斯坦福大学 Introduction to Computer Networking

6. 《TCP/IP详解(套装共3册)》

当我们学懂了计算机网络之后,你会发现,这个网络的灵魂是网络通信和数据传输。而能达到这种目的,通信之间所凭借的核心就是 TCP/IP。

在实践中,我们会发现,我们只有深入理解了 TCP/IP 协议,才能从容的面对各种复杂混乱的网络问题,才能在生产中顺利的当我们的技术大牛,为公司各种项目的顺利进展保驾护航。

TCP/IP 的学习不用说,只能是唯一的经典书籍《TCP/IP详解(套装共3册)》

要注意的是,这是一套书,其中卷一是最经典的,需要反复看。

对于几个基础的协议一定要非常清晰,比如 IP、TCP、UDP、ICMP,一定记住每个协议所有字段细节,ping、traceroute 的工作原理。可以做一些小实验。

卷二、卷三更多偏重于编程细节,可以粗看了解内容即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有哪些比较基础的优质计算机书籍? 的相关文章

随机推荐

  • spring aop的@Before,@Around,@After,@AfterReturn,@AfterThrowing执行顺序

    1 AOP的基本概念 切面 Aspect 通知和切入点共同组成了切面 aspect 可以从注解方式来理解 代码如下 aspect为类上面的注解 切面 pointcut 切入点 为此类内一个空方法上面的注解 可以把拦截的地址表达式表示为方法签
  • xgboost 可视化与结果分析

    xgboost 的可视化 调用 xgb to graphviz 或 xgb plot tree 接口 1 指定 fmap feature map https www kaggle com mmueller xgb feature impor
  • WPF界面开发使用技巧放送 - 如何支持WinUI 3预览版

    下载DevExpress v20 1完整版 DevExpress v20 1汉化资源获取 通过DevExpress WPF Controls 您能创建有着强大互动功能的XAML基础应用程序 这些应用程序专注于当代客户的需求和构建未来新一代支
  • python经典百题之兔子出生问题

    题目 古典问题 有一对兔子 从出生后第3个月起每个月都生一对兔子 小兔子长到第三个月 后每个月又生一对兔子 假如兔子都不死 问每个月的兔子总数为多少 这是一个经典的 Fibonacci 数列问题 可以通过递归或循环来解决 递归方法 由题意可
  • 过零检测电路图,220V转5V直流单片机供电电路

    1 软件模拟电路 实现了220v单相交流电AC输入 AB脚 输出5v直流DC输出 CD脚 和一个过零检测的针脚 E脚 共5个脚 主要使用了比较器 三端稳压器 阻容降压 稳压二极管 最好用瞬态抑制二极管 等 模拟电路软件是Multisim 1
  • SSL/TLS协议信息泄露漏洞(CVE-2016-2183)

    1 漏洞描述 法国国家信息与自动化研究所 French Institute for Research in Computer Science and Automation INRIA 的两名科学家发布了一项新研究 这是一种针对64位分组密码
  • 基础使用指南

    基础使用指南 创建数据库 create databases example db 赋权 grant all on example db to test 在复合分区中 第一层称为Partition 即分区 用户可以指定某一维度列作为分区列 当
  • android官方博客

    androids http clients http android developers blogspot com 2011 09 androids http clients html
  • QT中简单的emit使用

    1 在这里需要感谢一下九月小姐姐的亲情帮助 2 在这个一般使用emit的时候都是用户自定义的一个信号 废话少说上代码 1 这里是两个不相关的类 在qt里可以是两个界面也可以是别的什么 这个一般都是在 h里写的 class A public
  • Pinia与Vuex的对比:Pinia是Vuex的良好替代品吗?

    文章目录 介绍 设置 Pinia 设置 Vuex 设置 使用 Pinia使用 Vuex使用 社区和生态系统的力量 学习曲线和文档 GitHub 评分 性能 比较 Pinia 2 和 Vuex 4 Vuex 和 Pinia 的优缺点 何时使用
  • 【1day】iRDM4000智慧站房管理员密码重置漏洞学习

    注 该文章来自作者日常学习笔记 请勿利用文章内的相关技术从事非法测试 如因此产生的一切不良后果与作者无关 目录 一 漏洞描述 二 资产测绘 三 漏洞复现 四 漏洞修复 一 漏洞描述
  • 百度tangram框架开发工具小结

    根据在开发流程中出现的顺序 对每个工具简要介绍如下 firebug 几乎所有写html css js代码的人都熟悉的工具 tangram开发调试中用到 官方站点 http getfirebug com closure linter gjsl
  • Windows中使用MySQL 数据查询(三)

    一 排序 select from employees order by name 字符型默认字符顺序 也就是说z永远比a大 不管大小写 如果想按编码值排序 也就是说小写永远大于大写 则使用 select from employees ord
  • 【模拟】Redraiment的遭遇

    描述 Redraiment的老家住在工业区 日耗电量非常大 是政府的眼中钉肉中刺 但又没办法 这里头住的可都是纳税大户呀 今年7月 又传来了不幸的消息 政府要在7 8月对该区进行拉闸限电 但迫于压力 限电制度规则不会太抠门 政府决定从7月1
  • ffmpeg实现web在线转码播放

    Offer 驾到 掘友接招 我正在参与2022春招打卡活动 点击查看活动详情 前提 公司项目中上传的视频编码格式不一 但是在浏览器播放中 却出现了黑屏 有声音 的情况 即使是MP4格式的视频 也存在无法播放 查询一番 了解到chrome浏览
  • 基于IEEE 802.15.4z的UWB信道分配

    基于IEEE 802 15 4z的UWB信道分配
  • 探究|Go JSON 三方包哪家强?

    引言 为了小伙伴理解 汇总了一下文章中会提及的术语名词解释 请放心品读 欢迎一起讨论交流 图片 你真的了解 Go 标准库吗 问题一 标准库可以反序列化普通的字符串吗 执行下面的代码会报错吗 var s string err json Unm
  • C语言sort函数如何使用

    https zhidao baidu com question 1754076342544723828 html c语言和c 中 对于sort函数的使用 不同 c语言中没有预置的sort函数 如果在c语言中 要调用sort函数 就需要自定义
  • BP神经网络实现简单数据二分类实战(matlab实现)

    题目 企业到金融商业机构贷款 金融商业机构需要对企业进行评估 评估结果为0和1两种形式 0表示企业两年后破产 将拒绝贷款 而1表示企业2年后具备还款能力 可以贷款 表5 9中 已知前20家企业的三项评价指标值和评估结果 试建立神经网络 决策
  • 有哪些比较基础的优质计算机书籍?

    不废话 推荐6本书 不是直接罗列6本书 而是有一个看书顺序 按我说的顺序看 学计算机基础事半功倍 1 C程序设计语言典藏版套装 首先 由于很多经典书籍大部分是用 C 语言或者类 C 语言实现 所以 C 语言本身应该作为计算机学习前的任何前置