作为程序员计算机基础的书推荐几本呗?

Remons


作为程序员,大家可能都太过注重编程的学习。当然编程是很重要的!但很多底层基础的知识也是不可缺少的部分。我曾经也是一个知注重学习各种新知识的程序员,没有太在意底层的基础学科知识。虽然工作影响不大,但总是感觉缺点东西,很多知识不能很透彻的理解。所以以我的经验这里推荐几本书

第一,《现代操作系统》

《现代操作系统》是机械工业出版社出版的图书,作者是(荷兰)AnderwS.Tanenbaum。书中不仅涵盖了现代操作系统的原理和实践,认识了操作系统的基本结构,对我现在所用的电脑系统有了全新的认识。不仅如此这本书还特别关注了Linux操作系统,WindowsVista操作系统、嵌入式操作系统、实时操作系统以及多媒体操作系统。几乎涵盖了目前所用到的所有操作系统。



第二,《数据结构与算法分析+java语言描述(原书第3版)》

作为一个程序员无论工作中用不用得到一定要知道数据结构以及算法。本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。本书把算法分析与有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。

当然要想把以上两者连起来,需要的就是网络了,所以下面推荐的关于网络方面的书籍

第三,《计算机网络》和《TCP/IP详解》

网络方面最经典的教材就是谢希仁编写的《计算机网络》,这也是第一次推荐国人写的计算机方面的数,这本书是非常好的,尤其往网络方面发展的同学一定要看看,绝对有收获;当然有的同学可能喜欢外国作家写的书,这里就推荐这个国外经典计算机教材《TCP/IP详解》共三卷; 在计算机网络技术方面,最经典的就是思科认证教材CCNA,CCNP及CCIE系列认证教材。

要说基础知识以上三本书就够了,要推荐当然还是有的,主要没有多少空闲时间去读而已!希望能够帮到你。欢迎关注留言哦


安易之之


计算机编程书有很多种类,在确定方向后以下书籍可作为参考:

C/C++

1、《C程序设计语言》 入门推荐

2、《C Primer Plus》 入门推荐

3、《C和指针》

4、《C陷阱与缺陷》

5、《C++ Primer》入门推荐

为了更深入地理解程序原理,建议再学一下汇编语言

《现代x86汇编语言程序设计》

Linux

《UINX环境高级编程》 后台开发必读

《鸟哥的Linux私房菜》 Linux运维推荐入门系列

《Linux内核设计与实现》

网络

《TCP/IP详解卷1:协议》

Java

《Java编程语言》 入门推荐

《Java编程思想》

Python

《Python核心编程》(第2版),第3版难度加大,内容变更较多,用2版入门足够,perl现在已经没落了,可不学

数据库

《MySQL技术内幕》,目前企业所用后台大多是linux+mysql,所以主要学习下mysql就足够

如果对网站开发有兴趣可以一并看下《php和mysql web开发》

系统原理

《深入理解计算机系统》强烈推荐,搞懂这本就基本能阅读大部分计算机相关著作

计算机组成原理

《编码:隐匿在计算机软硬件背后的语言》

windows编程,估计你们会有windows编程的课程,如果有学下面这两本就足够了

《Windows程序设计》charles petzold(著)

《Windows核心编程》

编译原理

龙书《编译原理》,如果看不懂,推荐下面一本

《编译系统透视:图解编译原理》

数据结构与算法

《数据结构与算法分析——C语言描述》,也有一本是C++语言描述

《算法导论》

编程主要靠实践,多电脑敲代码,最好以开发某款软件为目标去多写代码

学完基础课程,建议也学习下服务器安全方面的知识

上面不少书在网上有电子版,可以先下载看看,不清晰的再买实体书,或者图书馆去借

其它一些进阶与提升的书,可以多逛逛图书馆。


Gemmy辜


首先要明确什么是计算机基础,它包括哪些,大多数认为包括以下几个方面:

  • 编程语言(如C/C++/Java/Python)

  • 数据结构与算法(如字符串、数组、链表、树、图、查找、排序、归并、动态规划等)

  • 操作系统(包括操作系统原理、Linux命令行以及更高阶的系统编程)

  • 计算机网络(OSI七层协议、TCP/UDP、路由选择、各种应用层协议等)

  • 计算机组成原理

  • 数据库

  • 编译原理

  • 设计模式

  • 软件工程

编程语言方面的就不说了,下面推荐一些比较火的入门级书籍吧,经典计算机书籍没什么变化,经典必读书籍可以搜索一下互联网各种书单。


计算机网络、组成、系统方面

图灵日语图解系列,特别棒的入门系列,以极简和形象生动的风格深入人心。

《图解HTTP》172张图解,对互联网基盘——HTTP协议进行了全面系统的介绍。作者由HTTP协议的发展史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。

《图解TCP/IP》一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容。

《网络是怎样连接的》本书以探索之旅的形式,从在浏览器中输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。

《编码——隐匿在计算机软硬件背后的语言》一本讲述计算机工作原理的书。不过,你千万不要因为“工作原理”之类的字眼就武断地认为,它是晦涩而难懂的。作者用丰富的想象和清晰的笔墨将看似繁杂的理论阐述得通俗易懂,你丝毫不会感到枯燥和生硬。更重要的是,你会因此而获得对计算机工作原理较深刻的理解。这种理解不是抽象层面上的,而是具有一定深度的,这种深度甚至不逊于“电气工程师”和“程序员”的理解。

不管你是计算机高手,还是对这个神奇的机器充满敬畏之心的菜鸟,都不妨翻阅一下本书,读一读大师的经典作品,必然会有收获。

设计模式、软件工程

《Head First设计模式》畅销12年,累计印刷40余次,销量近20万册,荣获第十五届Jolt通用类图书震撼大奖,读者喜爱的十大IT图书之一!


《大话设计模式》本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解,中国人写的一本比较知名的。


《构建之法,现代软件工程(第三版)》做中学 Learning By Doing的现代方式教授软件工程 李未院士鼎力推荐 众多软工教师一致好评 微软研发总监邹欣力作

《程序员修炼之道——从小工到专家》全球票选程序员读物 常读常新的不老神话,由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,知道用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,《程序员修炼之道:从小工到专家》都适合你阅读。


能把上面的基本认真看我就很不错了,加油!


希望对你有帮助,喜欢的话可以点个关注点个赞。


做工程师不做码农


然后我们聊聊平常程序员能用到的基础,计算机是一门很大的学科,下至离散数学、微积分、自动机理论,中间还有硬件、计算机组成原理、编译器、程序语言、操作系统、算法,上到各种设计模式、架构设计其实都可以算作基础,但是很多其实程序员平常可能不太用得到,我们就说一个做web的后端程序员可能需要用到的基础知识,假设程序员已经掌握一门编程语言,足够完成自己想的事情,并对一些基础概念有了解

我们从一个http请求说起,请求通过网络将一些数据通过网络发送到服务端,这中间首先要经过HTTP协议进行数据的传递(不讨论数据链路层和IP层、TCP的那些事情),这里面就会涉及到HTTP协议的问题,比如header里面有那些常用的字段,比如指定字符集、编码方式、会话方式等等,然后通过header就知道对body里面的数据进行如何的处理,比如序列化或者反序列化, 还有为什么会有跨域的问题?为什么要用 https?什么又是http1.0 2.0,然后通过这些通常就要再去学习一个web框架,就会涉及到这个框架是怎么对上面这些进行处理的了, 关键点:http协议与web框架

请求处理部分,通常就要做具体的业务逻辑处理了,什么是cookie、session、token、jwt?为什么要保存这些数据?什么又是表单?中间件又是什么鬼?此处通常又会涉及到分层架构比如什么是MVC?数据库又是什么?为啥又要出个缓存?消息队列又是啥?然后就会涉及到我们的业务类型和业务数据,比如该用什么数据模型?什么存储?什么序列化方式?什么索引方式?什么又是事务?关键点:分层架构、数据库与事务、NOSQL、数据结构与算法

如果把上面这些都学完已经可以做个CRUD程序员了,大多数培训出来的也就这个样子,然后就是单机不行了,首先是业务上做水平或者垂直拆分?拆着拆着,就是一堆服务了,好吧就叫微服务吧?怎么发现彼此?怎么通信?怎么传递数据?怎么管理?挂了怎么办?怎么提供统一接口?关键点:微服务、服务发现、通信方式、故障隔离、网关

经过上面的学习你已经是一个入门级别的程序员了,但是你还只是个会使用各种工具的程序员,那么我们要开始独立去面对一个小的业务模块了,怎么设计模块?什么是架构?怎么协作开发?怎么做测试?TTD是啥?敏捷又是啥?持续集成是什么鬼?服务怎么部署?docker是啥?kubernetes是啥?监控日志又是啥?关键点:敏捷、测试驱动开发、持续集成、持续交付、docker与kubernetes、监控与日志

经过这些我感觉已经能做个基本的程序员了,但是目前也只是个更全面的工具程序员了,我们总不能一直使用各种工具吧,我得熟悉底层的各种源码吧?不说精读个数据库,泛读个web框架、几万行代码的中间件,貌似是得学习一下吧?你以为你可以读懂了?去一边去吧,你为什么读不懂源码?你说我会了数据结构,好吧程序都是并发的,作者可能为了并发的安全性又去改动了一下,比如结合操作系统的copy on write机制,实现个redis的备份?利用磁盘顺序写,搞个wal日志?写个os cache批量刷盘?数据可能是通过网络传输的, socket是啥?粘包拆包又是啥?IO又为啥要多路复用? 这些玩意是啥?并发!!关键词:操作系统、Linux底层机制、并发、网络

经过这些,你感觉完了?别闹,读完一个中间件源码就完了嘛?你知道编译器嘛?微机原理呢?电子技术呢?计算机组成原理呢?你了解分布式嘛?一致性呢?共识和时钟又是个啥?分布式锁怎么玩的?大数据了解嘛?service mesh明白嘛?data mesh呢?5G已经在路上,能赶上嘛?

阿弥陀佛,回头是岸,学海无涯,放下屠刀,立地下岗!

程序员:方丈我还没到34岁,能不能救救我?

方丈:施主,瞅你骨骼惊奇,但是我们只招985/211,计算机科班出身的996程序员,你愿意12127嘛?

程序员:方丈,我可以住公司!

方丈:那我们考虑考虑,拿起简历放到旁边的第1000零1的简历上做备选


编码大棚


起步

1、数据结构

2、数据库基础(人大)

进阶

3、图论

4、离散数学

5、概率统计


虎呼哥


生活不仅仅只有写代码,作为程序员,我们不仅要将数据结构、计算机网络、操作系统这三把斧玩好,更要拥有一个强健的体魄!


网络:

万物互联时代,如果你还不懂网络知识,那将寸步难行。这里推荐三本经典书籍:

  • TCP/IP详解

该书是网络专家、著名技术作家W. Richard Stevens的传世之作,内容详尽且极具权威,被誉为TCP/IP领域的不朽名著,就我认识的老通信行业的专业开发人员,基本人手一本。本书共三卷,其中卷一偏重于基础原理,卷二、卷三更多偏重于编程细节,作为基础书籍推荐,卷一即可,对于学有余力的童鞋,可学习二、三卷。

  • 图解HTTP

应用最广泛的协议之一,前端工程师分析抓包分析数据,后端工程师实现REST API、搭建自己的HTTP服务器等过程中都绕不开HTTP这一知识点,《图解HTTP》,用通俗易懂的语言讲解了HTTP协议的方方面面,本书列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面,实在是一本不可多得的好书。

  • Wireshark网络分析就这么简单

「授人以鱼不如授人以渔」,全书以诙谐幽默的写法为我们讲解了枯燥的技术问题,由浅入深的用Wireshark分析了常见的网络协议,还通过身边的真实案例分享了Wireshark使用技巧,对初学者是很好的启蒙书籍。本书可搭配前面介绍的两本基础理论书籍一起学习,必能达到事半功倍的效果。

操作系统:

  • 现代操作系统

  • 程序员的自我修养——链接、装载和库

如果你是高手,Linux Hacker或者geek,请绕行

但如果你是新手

如果你曾好奇过windows系统目录下和软件目录下大堆大堆的dll文件是什么?

如果你曾疑惑过我写下的代码经历的怎样的历程最后怎样到达了内存?

编译器每天用,它到底做了什么?

如果你已经学习或接触了C,汇编,计算机结构,但还是没办法把三者的关系理顺。

那么,《程序员的自我修养——链接、装载和库》这本书绝对是对你的有帮助。

数据结构

基础入门的话,这里推荐《大话数据结构》。本书以一名教师的教学为场景,用生动形象的语言讲解数据结构和相关算法的知识。全文大量引用了各种各样的生活知识来类比数据结构中的专业知识。


程序员必备书籍

重要!

重要!

重要!

作为本文的压轴戏,也是最重要的一本书《程序员健康指南》推荐给各位程序猿友们,专门为程序员量身制作的健康指南,针对头痛、眼部疲劳、背部疼痛和手腕疼痛等常见的问题介绍了其成因和对策。身体是革命的本钱,各位在长期面对996的同时,一定要注意身体,加强锻炼,提高免疫力!


一个程序员的奋斗史


python编程从入门到实践,现在python越来越流行了,从机器学习到数据分析,从自动化测试到单片机开发都能找到他的身影,所以推荐这本书



分享到:


相關文章: