当前位置: 首页 > news >正文

20年程序员生涯,读了200多本技术书,挑了几本精华好书分享给大家

不知不觉已经又走过了20个年头了,今年已经44了,虽然我已经退休在家,但一直都保持着读书的习惯,我每年平均要读10本技术书籍,保持不让自己的技术落伍。

在这里插入图片描述

这些年读的技术书不下200本,很多好书我都会保存在家,时长去翻阅。今天给大家推荐其中几本精华好书,建议做程序员的都去拜读一下。

借用著名作家冰心的一句话“读书好,多读书,读好书”。

除了编程语言的经典好书外,我还会给大家介绍算法等其他方面的进阶书籍,希望能帮到大家。

本文所涉书籍均已和出版社协商妥当,只为技术交流,无消费和其他引导,仅做参考。


一、C语言书籍

首先来说一下C语言书籍,这也是很多人问到我的一个问题了,C语言看什么书比较好? 我推荐这本《C Prime Plus》。

在这里插入图片描述

这本书基本上C语言的方方面面基本全涉及到了,相信有很多人都看过谭浩强先生那本教科书《C语言程序设计》,谭先生的这本书我也看过很多次了,但以我经验来看,我推荐的这本它要全得多、深得多,多吃透几遍很有用的。

在这里插入图片描述

版本的话, 建议大家去看最新版本的书籍,技术书籍经常会因为技术的更新而出新的版本,虽然改动不会很大,但咱们尽可能跟上最新的技术趋势为好。

对于C语言,进阶的话可以看看别的书,主要两方面的书籍,一个是指针,一个是内存,这两个是C语言里面最重要的东西了,《C和指针》、《C陷阱缺陷》、《C专家编程》都是不错的。


二、C++书籍

C+++书籍我给大家推荐两本,一本是非常经典的《C++ Primer》,另一本是《C++ Primer Plus》。

图片

这两本书的区别就在于,《C++ Primer Plus》更适合零基础的人去看,因为里面的内容更为简单一些,如果你具备或看过C++的东西,或者C语言基础比较好,《C++ Primer》这本书会更适合你。


三、Java书籍

Java书籍我力荐《Java编程思想》,在我看过的所有Java书籍里面,这是最全、最有深度的一本,如果错过了那就太可惜了。

在这里插入图片描述

当然,如果你Java基础不怎么好,可能看到后面会有点费劲,那么你可以从《Java核心技术》这本看起,它会比较合适,这本书有I卷和II卷,都非常不错。

图片

如果你想把Java作为一门职业语言的话,这3本书是一定要看的。


四、Python书籍

现在Python学习的人数是越来越多了,很多小伙伴在网上问我学Python应该看哪本书比较好,那么我给大家推荐两本。

第一本是《流畅的python》,这是一本适合中高级程序员去的Python好书。

在这里插入图片描述

当你学了一些Python之后想要进阶学习,《流畅的Python》就相当适合,它会让你从底层进一步了解Python,它基本不涉及入门级内容,反而聚焦在数据模型、数据结构、函数对象、面向对象、控制流程与元编程等话题上。

如果你是新手的话,就不要去读《流畅的Python》了,可以去读《Python从入门到实践》。

这也是Python的经典好书之一,内容通俗易懂,新手上路没有问题,里面还结合了很多练手项目,就像书名所说的,学完你就能从入门到实践。

在这里插入图片描述


五、Go语言书籍

GO语言给大家推荐一本我最近也在看的书《GO语言实战》,也叫《Go In Action》,这本书是由国外书籍翻译过来的,比较薄,但非常通俗易懂,市面上经典的Go语言书籍并不多,这本书作为入门书籍我觉得是不错的。
在这里插入图片描述


进阶一:数据结构与算法书籍

当我们掌握了C语言/C++/Java/Python/GO中的一两门语言,已经入门了之后,就满足了找工作的第一要素,那么我们就需要深入地了解IT行业里面比较重要的IT技术了,这不仅会是面试的时候会涉及的内容,面试官会探测你的技术深度,而且会在工作中实际经常用到。

对于编程工作而言,除了语言的精通,最最重要的就是数据结构与算法了。

这方面我给大家推荐《算法导论》这本书,这本书不适合初学者,因为这本书要求你有很强的数学功底以及比较深的数据结构与算法的基础底子。

在这里插入图片描述

相比较上一本书而言,《算法》这本书就比较好接受了,应该适合绝大多数学数据结构和算法的小伙伴们。这本书它基础的数据结构与算法都非常全面的涉及了,基本上就是可以成为你把数据结构和算法学得不错的一本书了。
在这里插入图片描述


进阶二:计算机网络书籍

计算机网络也是找工作很重要的一个东西了,必须掌握,计算机网络在狭义一点理解其实就是TCP/IP协议栈。

首先我一直觉得《TCP/IP详解》这本书是我看计算机网络或者说TCP/IP协议栈最好的一本书。虽然说这本书大家觉得很晦涩,太经典了,所以是必须要推荐。当然还有一本《计算机网络 自顶向下》,纵观所有计算机网络方面的书籍,我觉得目前是没有其他比它们俩更好的书籍了,那么可以从中二选一来看。

图片


进阶三:Linux系统书籍

找工作必备的一个技能就是Linux操作系统,众所周知,C语言开发很少在windows上做,基本上都是基于Linux操作系统在做,作为一名优秀的程序员,对于Linux的了解是必不可少的。

首先给大家推荐鸟哥的《linux私房菜》,这本书主要讲Linux操作系统的使用,因为就是主要还是命令,很适合当工具书,如果你对里面的内容基本都熟悉,那你一定能派上用场,不需要你记住细节,但你要大致能知道哪个命令是干啥的,建议大家诵读一遍。

在这里插入图片描述

《linux私房菜》讲的还只是Linux操作系统的使用层面,但如果你想学会在Linux操作系统上编程,建议去看这本叫《Unix环境高级编程》,C语言学得再好,不会在Linux操作系统上编程实战,那么也只是一个玩具而已。

《Unix环境高级编程》会讲很多实战方面的内容,比如文件IO、多线程编程、网络、套接字等等,非常实用和经典。

在这里插入图片描述


进阶四:代码质量书籍

最后给大家推荐一下代码质量方面的书,也是我对我影响最大的一本书,从中收获了很多的心得和技能,《重构 改善既有代码的设计》,这本书讲的就是最佳实战,当然你需要有一定的编程基础。

在这里插入图片描述

这些书都是非常经典,我觉得几乎都是必读技术书籍,如果你看完了,找工作应该不是问题,如果你再配上一些实操和开源项目联系的话,那找一份好工作也问题不大,很多书籍我觉得在读书的时候就应该看了的,所以分享给大家,一起共勉。


结语

学编程从来都不是一朝一夕的事情,那些跟你说几天就能精通某个语言的,全是在忽悠人

我自己很喜欢Python,收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你,干货内容包括:

在这里插入图片描述

点击文末的名片可以抱走
在这里插入图片描述

相关文章:

20年程序员生涯,读了200多本技术书,挑了几本精华好书分享给大家

不知不觉已经又走过了20个年头了,今年已经44了,虽然我已经退休在家,但一直都保持着读书的习惯,我每年平均要读10本技术书籍,保持不让自己的技术落伍。 这些年读的技术书不下200本,很多好书我都会保存在家&a…...

C++ 手写一个WebServer

文章目录 前言一、WebServer的原理刨析二、HTTP协议基础三、C++代码实战四、运行测试前言 本文由:我不会画饼呀 提供建议 大家如果有什么想看的文章(想了解的知识点),都可以在本专栏文章底部评论,或者私信我,在有能力的前提下,我都会尽量给大家写出来,供大家学习参考 …...

Elasticsearch 简介与安装

简介 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库—​无论是开源还是私有。 但是 Lucene 仅仅只是一个库。为了充分发挥其功能,你需要使用 Java…...

Qt5.12实战之QByteArray与字符指针及字符串转换

示例源码:#include <QCoreApplication> #include <QDebug> #include <QTextStream> static QTextStream cout (stdout,QIODevice::WriteOnly); #include <iostream> #include <QtGlobal> #include <QByteArray>void test() {qDebug() <…...

二、ElasticSearch基础语法

目录一、简单了解ik分词器(分词效果)1.standard(单字分词器&#xff0c;es默认分词器)2.ik_smart分词(粗粒度的拆分)3.ik_max_word分词器&#xff08;最细粒度拆分&#xff09;二、指定默认分词器1.为索引指定默认分词器三、ES操作数据1.概述2.创建索引3.查询索引4.删除索引5.添…...

Yolov8详解与实战

文章目录摘要模型详解C2F模块Losshead部分模型实战训练COCO数据集下载数据集COCO转yolo格式数据集&#xff08;适用V4&#xff0c;V5&#xff0c;V6&#xff0c;V7&#xff0c;V8&#xff09;配置yolov8环境训练测试训练自定义数据集Labelme数据集摘要 YOLOv8 是 ultralytics …...

多线程案例——阻塞队列

目录 一、阻塞队列 1. 生产者消费者模型 &#xff08;1&#xff09;解耦合 &#xff08;2&#xff09;“削峰填谷” 2. 标准库中的阻塞队列 3. 自己实现一个阻塞队列&#xff08;代码&#xff09; 4. 自己实现生产者消费者模型&#xff08;代码&#xff09; 一、阻塞队列…...

学习优秀博文(【国产MCU移植】手把手教你使用RT-Thread制作GD32系列BSP)有感 | 文末赠书5本

学习优秀博文&#xff08;【guo产MCU移植】手把手教你使用RT-Thread制作GD32系列BSP&#xff09;有感 一篇优秀的博文是什么样的&#xff1f;它有什么规律可循吗&#xff1f;优秀的guo产32位单片机处理器是否真的能成功替换掉stm32的垄断地位&#xff1f; 本文博主以亲身经历聊…...

写用例写的焦头烂额?看看摸鱼5年的老点工是怎么写的...

给你个需求&#xff0c;你要怎么转变成最终的用例&#xff1f; 直接把需求文档翻译一下就完事了。 老点工拿到需求后的标准操作&#xff1a; 第一步&#xff1a;解析需求 先解析需求-找出所有需求中的动词&#xff0c;再列出所有测试点。测试点过程不断发散&#xff0c;对于…...

基于深度学习的鸟类检测识别系统(含UI界面,Python代码)

摘要&#xff1a;鸟类识别是深度学习和机器视觉领域的一个热门应用&#xff0c;本文详细介绍基于YOLOv5的鸟类检测识别系统&#xff0c;在介绍算法原理的同时&#xff0c;给出Python的实现代码以及PyQt的UI界面。在界面中可以选择各种鸟类图片、视频以及开启摄像头进行检测识别…...

零基础搭建Tomcat集群(超详细)

&#x1f497;推荐阅读文章&#x1f497; &#x1f338;JavaSE系列&#x1f338;&#x1f449;1️⃣《JavaSE系列教程》&#x1f33a;MySQL系列&#x1f33a;&#x1f449;2️⃣《MySQL系列教程》&#x1f340;JavaWeb系列&#x1f340;&#x1f449;3️⃣《JavaWeb系列教程》…...

机器学习自学笔记——聚类

聚类的基本概念 聚类&#xff0c;顾名思义&#xff0c;就是将一个数据集中各个样本点聚集成不同的“类”。每个类中的样本点都有某些相似的特征。比如图书馆中&#xff0c;会把成百上千的书分成不同的类别&#xff1a;科普书、漫画书、科幻书等等&#xff0c;方便人们查找。每…...

注意下C语言整形提升

C语言整形提升 C语言整形提升是指在表达式中使用多种类型的数据时&#xff0c;编译器会自动将较小的类型转换为较大的类型&#xff0c;以便进行运算。在C语言中&#xff0c;整型提升规则如下&#xff1a; 如果表达式中存在short类型&#xff0c;则将其自动转换为int类型。 如…...

Go panic的学习

一、前言 我们的应用程序常常会出现异常&#xff0c;包括由运行时检测到的异常或者应用开发者自己抛出的异常。 异常在一些其他语言中&#xff0c;如c、java&#xff0c;被叫做Exception&#xff0c;主要由抛出异常和捕获异常两部分组成。异常在go语言中&#xff0c;叫做pani…...

讲解Linux中samba理论讲解及Linux共享访问

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

【C++笔试强训】第三十二天

&#x1f387;C笔试强训 博客主页&#xff1a;一起去看日落吗分享博主的C刷题日常&#xff0c;大家一起学习博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a;夜色难免微凉&#xff0c;前方必有曙光 &#x1f31e;。 &#x1f4a6;&a…...

OpenAI GPT-4震撼发布:多模态大模型

OpenAI GPT-4震撼发布&#xff1a;多模态大模型发布要点GPT4的新功能GPT-4:我能玩梗图GPT4:理解图片GPT4:识别与解析图片内容怎样面对GPT4申请 GPT-4 API前言&#xff1a; &#x1f3e0;个人主页&#xff1a;以山河作礼。 &#x1f4dd;​&#x1f4dd;:本文章是帮助大家更加了…...

手把手教你 在linux上安装kafka

目录 1. 准备服务器 2. 选一台服务器配置kafka安装包 2.1 下载安装包 2.2 解压安装包 2.3 修改配置文件 3. 分发安装包到其他机器 4. 修改每台机器的broker.id 5. 配置环境变量 6. 启停kafka服务 6.1 启动kafak服务 6.2 停止kafka服务 1. 准备服务器 1.买几台云服务…...

Spring Cloud(微服务)学习篇(五)

Spring Cloud(微服务)学习篇(五) 1 nacos配置文件的读取 1.1 访问localhost:8848/index.html并输入账户密码后进入nacos界面并点击配置列表 1.2 点击右侧的号 1.3 点击加号后,进入新建配置界面,并做好如下配置 1.4 往下翻动,点击发布按钮 1.5 发布成功后的界面 1.6 在pom.xml…...

道阻且长,未来可期,从GPT-4窥得通用人工智能时代的冰山一角!

大家这两天是不是又被满屏的ChatGPT相关的文章信息给轰炸得不轻&#xff0c;说实话&#xff0c;我真的对ChatGPT的热度如此经久不衰这个问题非常感兴趣。从去年刚面世时&#xff0c;小范围内造成的行业震荡&#xff0c;到今年二月份铺天盖地得铺舆论造势&#xff0c;引发全民热…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

莫兰迪高级灰总结计划简约商务通用PPT模版

莫兰迪高级灰总结计划简约商务通用PPT模版&#xff0c;莫兰迪调色板清新简约工作汇报PPT模版&#xff0c;莫兰迪时尚风极简设计PPT模版&#xff0c;大学生毕业论文答辩PPT模版&#xff0c;莫兰迪配色总结计划简约商务通用PPT模版&#xff0c;莫兰迪商务汇报PPT模版&#xff0c;…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...