书,永远的朋友

2023-05-16

        我自己认为我是一个不大喜欢看书的人, 相对于书,我可能跟喜欢看视频和同高手一起讨论交流。 但是, 真正静下心来, 想着这么多年来,对我影响很大的一些书, 也能想到一些。 索性, 总结一下, 就当是是为了那过去的岁月来一次简单的重新来过。


      我是上大学的时候, 因为学的专业是软件工程, 所以才开始接触计算机,接触到编程的。 当时在学校里面, 学习了很多有关计算机的课程, 站在现在工作了三年的角度来看, 当时的专业课程中, 应当说大部分都是都用的。伴随着这些课程, 其实相对应的教材也是很经典的。

    1.   《数据结构》(C语言版) 严蔚敏 编著   清华大学出版

 评论:  这本书算是编程基础中的基础, 里面将计算机中最常见的数据结构,从链表、栈、队列、数组, 到树、图、哈希表等, 都进行了详细的讲述。 当时学习的时候, 可能比较机械, 因为是大二开始学的, 所以对计算机的操作系统、编译器等知道的不多,所以理解不深。  后来, 尤其是参加工作后, 去研究LInux系统的内核, 内核中的各种实现, 其基础的数据结构,都来源于当年学习的那本书。

    2.    《编译原理》  刘坚著   西安电子科技大学出版

评论:  编译原理, 在当时看来, 是计算机中比较难的课程了。 各种抽象的概念,比如自动机、有向图等, 当时学习的时候那是一个吃力。 随着在编程方面的经验越来越多, 到现在工作了 , 感觉如果要想更加深入理解程序,理解计算机的工作原理, 就不得不必须知道点 有关编译的知识了。 了解了编译, 让我们写代码时更加深层次的考虑,写出高效高质量的程序来。

   3.   《C++程序设计语言》(影印版)  高等教育出版社

评论:  这本书是当年学习C++的教材, 英文影印版的。 当时我们学校的学院院长,号称将这本书读了17遍。 虽然是英文的, 但是读起来还是比较轻松的。 我个人曾经在学校里面也读过, 确实是C++ 的经典教材。 这本教材的经典在于, 会将作者(C++之父)的心得写在每个章节后面,提示如何做更好。 

  4.  《C++  Primer》  

评论: 这本书也是经典了, C++学习的入门级别的作品, 初学者,对面向对象理解不深刻的同学,可以从中学到很多。 现在都不知道出第几版了

5.   《C语言程序设计》   唐浩强     清华大学出版社

评论:  说了《C++ Primer》 , 就不得不说 这本书。 这本书是我认为的C语言,甚至是高级程序设计的语言最最入门级的书籍。 虽然有些老师说这本书写的太注重语法了,不太重视程序设计的理念。 但是, 从我的角度看, 作为入门级的学习,还是可以的。 不过, 不能僵化的使用这本书, 读的太深入了,会导致“走火入魔”, 也就是老师谈到的真正忘了程序设计的精髓了。

6.  《Java编程思想》  

 评论:  这本书因为多年不搞Java , 几乎都要遗忘了。 一直在想, 当年面向对象的学习对我影响最大的是哪本书, 应该就是这本了。Java 是纯面向对象的, 各种面向对象的语法支持。  这本书最大的收获, 是结合Java的语言特性, 详细解答了面向对象的编程思想。 对于学习和理解面向对象, 是再合适不过了。


       以上几本书, 是在我上学的时候学习的, 现在还保存的几本书,  平时也会翻一翻。  后来找工作的时候, 又看了一本《程序员面试宝典》(第二版) , 这本书应该说总结的也还不错, 既有关于工作方面的经验之谈, 也有关于技术面试的常见题型, 这些题目会让我们学习到一些书本上没有的东西,  对要找工作的人确实起到一定的帮助。

     工作三年多了, 看的技术类别的书籍不多, 断断续续的看了一些, 有一些经典书籍,也是值得大家读一读的。

7.   《代码大全2》   电子工业出版社

评论:  这本书重点讲述了有关如何写好代码, 写出好代码要注意什么, 怎么样才能写好代码。  总这本书中, 可以收获关于代码的编程规范要求, 写出高质量代码的必要意识等。   在学校里面, 或许要求只要写出代码来就行。 虽然讲过一些规范,但是很少。 但是工作之后, 代码写的不规范,以后维护起来就很痛苦了。 如果你想让自己的代码更上一个台阶, 推荐读一读这本书,并且按照书里面说的去做, 我想一定会有质的变化。

8.  《敏捷软件开发  原则、模式和实践》  邓辉译     清华大学出版社

评论:  这本书是我在敏捷当SM的时, 重点学习的。 虽然过去一年多了,但是对这本书中的内容,仍然记忆犹新。  这本书好像是分为三个部分, 首先还是谈到了敏捷的价值观、原则等有关敏捷开发的内容。 其次是介绍了软件设计的SOLID的原则, 这几个原则相对于《设计模式》 那本书中谈到的, 更加具有实用性和广泛性。 后来,这些原则指导着我对软件的设计,受益匪浅。 最后一部分, 谈到了一些具体的实践, 这些实践也是经验之谈,  能够让我们在日常开发中少走很多弯路。

9.   《 设计模式:可复用面向对象的软件基础》   机械工业出版社

评论:  这本书号称是软件设计中的经典, 如果要学设计,就必须得看这本设计模式。  不过我个人感觉经典之作,可能对于初学者来说, 入门有点难。 因为初学者对面向对象的伟大思想,还没有理解到这一层次,甚至对抽象、多态、接口编程等这些基本的概念,还没有理解透彻。  我觉得这本书可以先看看, 然后等有了一定的面向对象设计经验, 再回过头看, 感觉就不一样了。 学设计模式,  最好的方法还是学习、实践、再学习,再实践。 只有实践了, 才能对面向对象的设计模式理解的更加透彻。 不过话说回来, 也不能过分设计,不能为了设计而设计。

10.    《高质量程序设计》  林锐博士著

评论: 这本书也算是C/C++的经典之作吧。  这本书的特点是语言并不是一般技术书籍的枯燥, 而是比较口语化且带有一些幽默。 同时, 将程序设计中最容易犯的常见错误,都进行了讲解。 作为代码的质量提升方面, 和《代码大全2》 一起,算是同类型的书籍。 关于在代码提升方面, 还有比如《C和指针》、《C专家编程》、《C缺陷和陷阱》…… 

11.  《重构: 改善既有代码的设计》  人民邮电出版社

评论:  这本书算是代码重构方面的经典中的经典了。 讲述了各种关于重构方面的技巧,重构的意识等。 这本书我没有完全读完,  因为一些内容和代码大全中也有。 


这些年, 除了上述列举的我认为对我的工作和技术有帮助的书籍外, 还阅读过如下:

1. 《 测试驱动的嵌入式C语言开发》  -----这本书重点讲述了采用TDD的方式进行嵌入式C语言开发, 教你一些实践经验,比如软件模拟硬件逻辑来打桩等

2.  《C嵌入式编程设计模式》     -----------这本书重点讲述了嵌入式编程方面的C语言常用设计模式,属于过程式语言的实践经验。 对于常常写驱动程序的同学, 这本书值得一读。

3.  《深入理解Linux网络技术内幕》  --------这本书 对Linux 网络编程方面 有深入的讲解,尤其是好的设计

4.  《深入理解LInux内核》    -

5.  《 解析极限编程——拥抱变化》   ------XP如何实践, 这本书可以借鉴


除了这些外,  我更喜欢从网络上来获取相关的资料, 尤其是CSDN的各位专家的博客, 有关于技术的、有关于程序人生的、有关于生活的…… 总之, 你能想到的, 这些这里都有, 给我以指导, 其经典不亚于上述这些书籍。 


从2004年上学开始接触计算机开始, 从第一个C语言的Hello World 程序, 到现在独立完成某个大型项目的模块功能; 从当时邮件都不知道怎么发的菜鸟, 到现在可以熟练的操作控制计算机, 虽称不上专家, 但是也还凑合; 这些年过去了, 一直以来,都是这些书籍, 让我一点点的进步。 书, 是我永远的朋友 !


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

书,永远的朋友 的相关文章

  • Windows下小狼毫输入法(Rime)的安装与配置

    首先去官网 http rime im 下载小狼毫输入法的安装程序进行安装 xff1a 安装好后设置 xff0c 我只选择了 朙月拼音 和 朙月拼音简化字 两种输入法 xff0c xff08 一 xff09 繁体转简体 刚装好默认输入的是繁体
  • 在UEFI模式下,linux误删EFI分区后,重新恢复引导

    遇到上面情况 xff0c 我们通常使用boot repair修复引导 但是这时会弹出一个错误 xff1a GPT detected Please create a BIOS Boot partition 遇到这个情况以后 xff0c 我就疯
  • mysql 报错ERROR 1064 (42000),原因使用了mysql保留字

    执行select语句 xff1a select from cfg parameter where key 61 39 nSJtifqVSI7HkPrKHlxhD6 39 ERROR 1064 42000 You have an error
  • Unable to preventDefault inside passive event listener due to target being treated as passive.

    最近做项目经常在 chrome 的控制台看到如下提示 xff1a Unable to preventDefault inside passive event listener due to target being treated span
  • GBK 编码

    GBK编码范围 xff1a 8140 xff0d FEFE xff0c 汉字编码范围见第二节 xff1a 码位分配及顺序 GBK编码 xff0c 是对GB2312编码的扩展 xff0c 因此完全兼容GB2312 80标准 GBK编码依然采用
  • 子类能否重写父类的静态方法?

    今天在看到了一道面试题 xff0c 题目是一道代码阅读题 xff0c 问下面的代码输出结果是什么 xff1f 我最开始的理解 xff1a 上面的代码我们可以看到 xff0c 上面的类中有两个内部类Sub和Super xff0c Sub继承了
  • Blazor 从入门到放弃

    Blazor 从入门到放弃 Intro Blazor 是微软在 NET 里推出的一个 WEB 客户端 UI 交互的框架 xff0c 使用 Blazor 你可以代替 JavaScript 来实现自己的页面交互逻辑 xff0c 可以很大程度上进
  • WPF知识学习

    RelativeSource 61 RelativeSource AncestorType 61 x Type Window 是一种 WPF XAML 绑定方式 xff0c 它表示要从当前控件的父级元素中找到类型为 Window 的元素 x
  • C#表达式树解析步骤

    C 表达式树是一种将 C 代码表示为对象树的方式 xff0c 它提供了一种在运行时动态构建和执行代码的能力 表达式树可以用于构建 LINQ 查询 动态生成代码 ORM 框架等场景 表达式树的解析过程可以分为两个步骤 xff1a 构建表达式树
  • 关于ConstraintLayout自适应高度遇到的坑

    关于ConstraintLayout自适应高度遇到的坑 记录下来 android layout height 61 34 wrap content 34 为了缩减嵌套层及采用了ConstraintLayout作为dialog布局 但是发现d
  • FluentValidation使用示例

    FluentValidation 是一个 NET 平台下的验证库 xff0c 用于验证对象的属性是否符合预期的规则 它提供了一种简洁的方式来编写验证规则 xff0c 支持链式编程 xff0c 可以轻松地构建复杂的验证逻辑 在 NET 6 中
  • SQLServer创建索引的5种方法

    前期准备 xff1a span class hljs operator span class hljs keyword create span span class hljs keyword table span Employee ID s
  • 正则表达式(匹配第一个花括号)

    学习正则 xff0c 工作中使用正则让我对 有了新的认知 xff1a 正则中 匹配输入字符串的开始位置 xff0c 除非在 方括号表达式中使用 xff0c 此时表示不接受该字符集合 废话不多说 xff0c 直接看栗子吧 xff0c 如下图所
  • windows驱动注册中断服务程序

    一个驱动程序的标准中断服务例程的必要功能和建立一个ISR的需求 1 1 ISR需求 一个产生中断的物理设备的所有驱动程序必须有一个ISR 中断服务例程由内核定义如下 xff1a span class hljs built in BOOLEA
  • Android Studio 出现“Cannot resolve symbol” 解决办法

    一 Android Studio 无法识别同一个 package 里的其他类 xff0c 将其显示为红色 xff0c 但是 compile 没有问题 鼠标放上去后显示 Cannot resolve symbol XXX xff0c 重启 A
  • input[type=file] 获取上传文件的内容

    上代码 xff1a span class token tag span class token tag span class token punctuation lt span input span span class token att
  • 解决pyinstaller打包后C盘出现 windows/TEMP/_MEI文件夹爆满的问题

    背景 xff1a 一每分钟执行的python脚本 xff0c 打包成exe后 xff0c 在有些机器出现 IME文件过多的问题 解决 xff1a 1 参考 Python转exe方法与 MEI清除方法 Don 39 t expect me t

随机推荐

  • 关于Android studio 升级到4.2文件缺失问题

    一 背景 当我把Android studio 开开心心的更新到4 2版本后 xff0c 结果就爆了一个类文件找不到的异常 xff08 如下图 xff0c 幸好只有一个 关于这个类的缺失是高版本JRE中剔除了这个类 xff0c 那只要把And
  • 求正整数n所有可能的和式的组合

    求正整数n所有可能的和式的组合 xff08 如 xff1b 4 61 1 43 1 43 1 43 1 1 43 1 43 2 1 43 3 2 43 1 43 1 2 43 2 xff09 首先说一下 xff0c 群里面很多人在问这个东东
  • Error:FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:t

    今日份遇到的 bug xff1a Error 注 某些输入文件使用或覆盖了已过时的 API 注 有关详细信息 请使用 Xlint deprecation 重新编译 注 某些输入文件使用了未经检查或不安全的操作 注 有关详细信息 请使用 Xl
  • JVM调优-解决native heap持续增长

    问题的提出 xff0c 分析 xff0c 请参考JNI 小心 xff0c 内存怪兽出没 xff08 简单的说起来 xff0c 就是java进程占用了4G内存 xff0c 但是折腾来折腾去 xff0c 整个JVM的堆才100M上下 xff0c
  • Centos 7 安装openjdk8 /jdk8/jre8 mvn-3.5.2 其他版本雷同

    文章目录 openjdk8jdk8 jre8maven 3 5 2源码下载指导 openjdk8 一 使用yum命令搜索支持jdk版本 yum search java grep jdk 二 使用yum安装jdk8 yum install y
  • 【2023最新版】Hexo+github搭建个人博客并绑定个人域名

    Hexo 43 github搭建个人博客并绑定个人域名 本篇教程完整讲述了如何利用Hexo 43 github搭建个人博客并且绑定自己的域名 xff0c 成为自己的网站 xff01 我的博客网站 xff1a 武师叔 做一个有趣而不甘平庸的人
  • H13-531云计算HCIE V2.0——1~400常错题和知识点总结

    1 100 35 FusionStorage Block无法是被配置RAID的磁盘 一定要将RAID信息删除后 Fusionstrage block才能识别到这些磁盘 错误 61 Ceilometer监控通过在计算节点部署Compute服务
  • 我的2013

    今天是2013年的最后一天 xff0c 天气格外的晴朗 xff0c 站在公司的写字楼上 xff0c 能够看到远处的山水 一直都习惯在一年的最后总结一下 xff0c 总结自己哪些地方在成长 xff0c 哪些地方有收获 xff0c 哪些地方需要
  • 项目管理中的TR点

    TR的意思是技术评审 xff0c 是英语Technical Review的简写 一般项目管理中有以下一些技术评审点需要关注 xff1a TR1 概念阶段技术评审点 xff1a 产品需求和概念技术评审 xff08 业务需求评审 xff09 T
  • linux ln 命令使用参数详解(ln -s 软链接)

    这是linux中一个非常重要命令 xff0c 请大家一定要熟悉 它的功能是为某一个文件在另外一个位置建立一个同不的链接 xff0c 这个命令最常用的参数是 s 具体用法是 xff1a ln s 源文件 目标文件 当 我们需要在不同的目录 x
  • 别再让C++头文件中出现“using namespace xxx;”

    在这里 xff0c 我毫不回避地说了这句话 xff1a 引用 我再也不想在任何头文件中看到 using namespace xxx 了 作为一个开发者 团队领导者 xff0c 我经常会去招聘新的项目成员 xff0c 有时候也帮助其他组的人来
  • Linux 查看监听端口的方法

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • SVN MERGE 和冲突

    摘要 xff1a 最佳做法是避免冲突 冲突时 xff0c 不要把branch merge到trunk 先由最新版本的trunk得到branch 然后再修改文件 xff0c 直接merge过去就行 这样不会有冲突 先用svn merge dr
  • Linux命令之basename使用

    basename 命令 首先使用 help 参数查看一下 basename命令参数很少 xff0c 很容易掌握 basename help 用法示例 xff1a basename usr bin sort 输出 34 sort 34
  • android log详解

    之前两篇文章之后 xff0c 打算再分享一点儿经验 xff1a 之前文章见这里 xff1a 1 xff0c 全看懂了 加两年经验 语音朗读 语音识别 语音控制软件源码 2 xff0c 学生作品 配置NDK集成开发环境全过程第一版 这次打算通
  • 各种编码知识简介

    本文主要介绍我们在日常开发中接触到了latin1 xff0c GBK xff0c GB18030 xff0c UTF 8 编码几种 下面首先来看看这几种编码的的区别 latin1 1 先来看看latin1 参考百度百科 Latin1 是IS
  • Linux 技巧:让进程在后台可靠运行的几种方法

    我们经常会碰到这样的问题 xff0c 用 telnet ssh 登录了远程的 Linux 服务器 xff0c 运行了一些耗时较长的任务 xff0c 结果却由于网络的不稳定导致任务中途失败 如何让命令提交后不受本地关闭终端窗口 网络断开连接的
  • nohup命令浅析

    要将一个命令放到后台执行 xff0c 我们一般使用nohup sh command amp amp 都知道是放到后台执行这个命令 xff0c 那么nohup是做什么的 xff1f 这就要从unix的信号说起 xff0c unix的信号机制可
  • 《曾国藩家书大全集》读书笔记——励志篇

    曾国藩将立志作为人生第一要义 xff0c 只要能立志 xff0c 便人人都可以做圣贤豪杰 人生不但要立志 xff0c 还要持之以恒 xff0c 持之以恒是人生第一美德 xff0c 人而无恒 xff0c 将一事无成 曾国藩很重视逆境对人心志的
  • 书,永远的朋友

    我自己认为我是一个不大喜欢看书的人 xff0c 相对于书 xff0c 我可能跟喜欢看视频和同高手一起讨论交流 但是 xff0c 真正静下心来 xff0c 想着这么多年来 xff0c 对我影响很大的一些书 xff0c 也能想到一些 索性 xf