程序员的自我修养—成为卓越程序员的必备书籍

2019-03-24 19:45:00 247点赞 2607收藏 223评论

前言

从小就对计算机比较感兴趣,大学学的是计算机专业,工作以后也是从事的软件编程工作,十几年下来,也屯了不少计算机方面的书籍,我买计算机类书籍有个特点,更倾向于“道”,形而上者谓之“道”,所谓道是一种原理规则类的抽象概念,不管时间如何流逝,其道不会改变,计算机发展了七十年,可直到今天计算机的体系结构基本没有改变,都是冯诺依曼体系结构,虽然还有一种哈弗结构,但是两者还是有很多共性的,今天的pc机性能不知道提升了多少倍,但是最早的X86程序依然能在今天的电脑上运行,为什么?因为PC的体系一脉相承,底层有很多相同的地方。形而下者谓之“器”,计算机领域的“器”我个人的理解是某个领域具体的应用,像office,photoshop等等很多上层应用软件,迭代很快,不同时期会有不同的流行应用。

在这里我就按几个类别介绍一下自己收藏一些经典书籍。这些书籍的作者我就不细细介绍了,毫无疑问都是技术大牛,否则不可能写出这些经典著作,我将从自己的阅读感受说一些值得买的理由。

计算机原理类

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

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书最早我是在网上看的PDF版,之前的名字叫编码的奥秘,作者同时也是另一本经典书籍《Windows程序设计》的作者,这本书最大的特点是将计算机原理用很简单的儿时游戏来说明,把复杂的概念简单化,不像大学计算机原理教材那么生硬死板,让你感觉其实计算机原理并不是那么晦涩难懂,非常好的计算机入门读物,同时也能让你对之前学过的计算机原理课程有更独特的理解。

深入理解计算机系统

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

国内外一众牛逼的大学指定的计算机体系结构教材,最大的特点是从程序员的角度来解读计算机体系结构,不像之前的教材,更多是从电子系统结构的角度来描述计算机系统,造成软硬件的脱离,从而让人难以理解,里面还穿插了不少计算机史上有趣的故事,挺有意思的,

计算机系统-系统架构与操作系统的高度集成

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

另一本视角独特的计算机体系结构书籍,主要介绍了计算机系统与操作系统之间的联系,如何通过底层实现上层应用,操作系统上的一些功能是如何通过底层硬件实现的。这种联动的描述能更容易让人理解两者之间的关联,你会明白硬件上的一些功能不是拍脑门弄出来的,而是为上层某些应用服务的。

现代操作系统

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

操作系统领域的经典书籍,当年Linus就是看了这本书写出了Linux,就冲这点,你就知道这本书多牛,不过话说回来,如今我看了还是写不出操作系统,但是能让我更深刻的理解操作系统是如何运作的,不管什么操作系统,内核干的活其实基本差不多。

汇编语言类

汇编语言

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本汇编语言是国内为数不多的写的通俗易懂的汇编入门书籍,没有晦涩的概念,通过一个一个简单的例程,实际操作,让你理解程序底层是如何运作的。

X86汇编语言从实模式到保护模式

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

上本书看完做完后,进阶就靠这本书了,深入全面的介绍了X86处理器在实模式和保护模式下的工作原理,让你直接控制硬件而不是通过操作系统或者其他应用软件来操作,对下加深对计算机体系的理解,对上加深对操作系统的理解。

X86/X64体系探索及编程

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书我真是收藏的,没打算看完,除非你是做操作系统,否者真的不用钻这么深了,前面两本汇编书籍足够你理解需要用到的底层知识了。这个也就是碰到问题了,翻下看看相关的知识点。

琢石成器-Windows32位汇编程序设计

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这个才是用来进一步进阶的,前面玩的汇编都是为了学习理解,没太大实用性,这个可是正儿八经能运行的32位汇编。需要用到这个的领域也不多,基本是加密,逆向工程,病毒分析,一般人用不上。我也没怎么看,收藏的。

编程卓越之道

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书的特点也是通俗易懂,用汇编语言的思想设计一种类汇编的高级语言,通过这种高级汇编让你理解汇编语言。有点反其道而行之的感觉,适合学过C语言但没有学汇编的人,可能是思维方式的问题,我还是觉得王爽老师的思路适合国内学生。

C语言/C++

C Primer Plus

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

C语言的经典,值得收藏的好书,没学过的适合入门,学过的对某个概念不理解可以查阅,C码农案头必备。

C++ Primer Plus

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

C++语言的经典,值得收藏的好书,没学过的适合入门,学过的对某个概念不理解可以查阅,C++码农案头必备。

就是这么简单,经典无需多言,这两种语言几十年经久不衰必有过人之处,C++虽复杂,却是面向对象语言集大成者,学好这两种语言,不管再学哪一种编程语言都会触类旁通。

编程思想

程序员的自我修养

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书主要介绍了系统软件的运行机制和原理,让你深入理解程序与操作系统是如何运作的,一个程序是如何在操作系统上运行起来的。国内几个大牛合著的,通俗易懂。

算法导论

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书我也是收藏的,数据结构的经典之作,研究算法的案头必备,但对我这种主要做控制的码农用处不大,但是书是好书,值得收藏。

编译原理

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书我能说我是**的吗?毕竟有几个码农是写编译器的呢,这玩意不是一般人弄得,不过毕竟干这行,没事翻翻理解编译器原理对编程也是大有好处的,直到什么样的代码能让编译器效率更高。看看这版本更新的节奏就知道多牛逼,好了,我还没看,是摆着膜拜的。

UNIX环境高级编程

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

这本书可不是只为UNIX服务的,其实更多的是为Linux服务,毕竟Linux是一种类UNIX操作系统,两者本质是相通的。

UNIX编程艺术

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

Unix的经典书籍,更多的讲的是编程思想,全书有点像讲故事,看着没那么累,Linux程序员必备的案头书。

个人工作用书

ARM Cortex-M3与Cortex-M4权威指南

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

介绍ARMCortex架构的书,这一系列的处理器占据了工控嵌入式市场的半壁江山,我工作基本大部分是和这类处理器打交道,编写底层驱动的参考必备,官方出品,权威性不容置疑。

嵌入式实时操作系统uC/OS-III

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

搞嵌入式软件开发的人没有不知UcOS这个操作系统,最早是2代,最早系统介绍这个操作系统的书,并且开源了操作系统代码,在国内行业应用非常广泛,这本书是其最新的第三版操作系统的。

FreeRTOS源码详解与应用开发-基于STM32

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

现在嵌入式领域最流行的操作系统是FreeRTOS,现在的占有率最高,开源,源码完全公开,同时也提供功能更全面的付费商业版本的,系统更精简,而STM32系列又是Cortex系列里最流行的处理器,资源极其丰富,这两者结合就是嵌入式行业开发的利器,相关从业人员必备参考案头书。

总结

书架上的其他计算机类书籍书架上的其他计算机类书籍

程序员的自我修养—成为卓越程序员的必备书籍

程序员的自我修养—成为卓越程序员的必备书籍

“道”类的书籍和“器”类的书籍各有特点,一个更新很慢,几十年也就几个版本,为什么?根本不需要,之前说了,计算机发展到今天体系上并没有本质区别,没有特别新的改变,自然不用重新编写。一个更新很快,没个两年就会有新的版本,再过个十多年可能有些应用就消失了,被新的取代更新。 所以我更喜欢收藏这些“道”类的书,不管放多久,不管什么时候看,都会有所收获有所感悟。


展开 收起
223评论

  • 精彩
  • 最新
  • 咋没有从删库到跑路

    校验提示文案

    提交
    那不是卓越的程序员 [邪恶]

    校验提示文案

    提交
    从入门到入坟也没有 [喜极而泣]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 我们是不是被谭浩强耽误了

    校验提示文案

    提交
    还好吧,现在C碰到问题有时候也会再去翻谭浩强的C语言

    校验提示文案

    提交
    谭浩强的书误导地方很多,应该讲而不讲的内容非常多,实际编程发现好多东西没讲清楚

    校验提示文案

    提交
    收起所有回复
  • 我想问这些书你都看完了吗?

    校验提示文案

    提交
    当然没看完,不一定买回来都要看完啊,需要哪方面的资料就翻下对应的书

    校验提示文案

    提交
    楼主感觉是程序员里的阳春白雪。

    校验提示文案

    提交
    还有4条回复
    收起所有回复
  • 30岁之前还有冲劲看书,可被现实一次次打脸,这个行业更新速度太快,新技术的生命周期太短。一本大部头看完没几年就成淘汰技术了。还是去学PPT技巧吧,还能多保值个几年。

    校验提示文案

    提交
    那是做上层应用的,嵌入式底层的更新没那么快

    校验提示文案

    提交
    设计,设计思想才是根本啊。什么语言,技术,框架,只是实现工具而已啊。不断修炼内功才行啊,不然真就随着时代的浪潮怕在沙滩上了

    校验提示文案

    提交
    还有12条回复
    收起所有回复
  • 楼主至少得来个证明自己有多卓越才能配得上这个标题吧

    校验提示文案

    提交
    要都能看懂绝对是公认的卓越程序员 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 先打赏碎银子,然后猜猜楼主是不是做嵌入式开发的。

    校验提示文案

    提交
    哈哈,懂行的,是搞嵌入式的 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 计算机专业毕业。。。想想当年都是学C语言,C#,哈哈哈,都忘了。。如今一个班,一半程序员,一半转行

    校验提示文案

    提交
    工作行业和专业联系不是那么大

    校验提示文案

    提交
    收起所有回复
  • 当年课堂教的是老谭的C语言,真正觉得是看了《汇编语言》才算入门的。

    校验提示文案

    提交
    嗯,王爽那本汇编语言看了才恍然大悟

    校验提示文案

    提交
    这么厉害?

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 没一本有用的,apue unp tcpip卷一 Python菜鸟 操作系统原理,比这些好太多。操作系统原理不如看看ucos。当初我也是研究语言,花了很多时间,后面看,没jb用,直接github,整个开发板撸。当然,我现在转算法了,资料都是原始的英文了,祝好。

    校验提示文案

    提交
    可能工作领域不同,我们做嵌入式的,必须和底层硬件打交道,所以对底层的东西必须了解的多一点,但是底层知识肯定不是没用的,这个会影响你高级语言的编程质量,也会帮助你查找错误,程序跑飞的时候,往往只能看汇编反向查找出错的点

    校验提示文案

    提交
    再怎么底层也是应用的一部分,人家是考虑框架跟OS了,考虑的更全面。搞个开发板撸确实要很多知识

    校验提示文案

    提交
    收起所有回复
  • 其实网上盗版资源挺多的 [观察] 不过技术类的书还是实体的好

    校验提示文案

    提交
    收藏必须正版啊,而且底层书籍不太受欢迎,盗版的少,王爽的汇编语言是特例,居然真有盗版的,可见其经典 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 行家行家,这些东西读完了博士都快能毕业了。这里面有几本书是我们硕士的教材。

    校验提示文案

    提交
    要是都能看懂看明白,博士问题不大 [高兴]

    校验提示文案

    提交
    编译原理那个,听说全世界只有几千人能写编译器?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 恭喜这位用户抽中本月碎银子余额

    校验提示文案

    提交
    感谢兄弟捧场 [高兴]

    校验提示文案

    提交
    收起所有回复
  • 居然没有,人月神话

    校验提示文案

    提交
    那个是软件工程的,也值得案头收藏

    校验提示文案

    提交
    收起所有回复
  • 敢问阁下,现在薪资待遇啥水平?

    校验提示文案

    提交
    惭愧,不好意思说,主要是书买了没看完 [高兴]

    校验提示文案

    提交
    写底层驱动的,待遇上比传统行业高不到哪去,还没入坑前请三思

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 没有机器学习,人工智能 [观察]

    校验提示文案

    提交
    机器学习主要是算法的,可得要了解底层知识

    校验提示文案

    提交
    [邪恶] 忍不住想回一下,机器学习请移步统计学,高数,组合数据与数据结构区域。

    校验提示文案

    提交
    收起所有回复
  • 我现在需要一本《颈椎病康复指南》

    校验提示文案

    提交
    对,这个是终极必备

    校验提示文案

    提交
    多推拿,挣得多,花的也就多

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 还缺一本《颈椎病预防与治疗》

    校验提示文案

    提交
    你们都是坏人 [喜极而泣]

    校验提示文案

    提交
    收起所有回复
  • LZ能不能讲讲为啥diff算法,就是求最长子序列?

    校验提示文案

    提交
    这个真不行,不是搞这块的,算法的设计靠数学,算法的优化实现可就得靠底层的基础了

    校验提示文案

    提交
    收起所有回复
  • 汇编语言竟然还是我们老师写的那本

    校验提示文案

    提交
    我去,居然是大神当你们老师,好羡慕

    校验提示文案

    提交
    收起所有回复
  • 这里面至少三分之一看过,所有的书都知道,楼主猜我是干什么工作的?

    校验提示文案

    提交
    跟我一样做嵌入式的? [高兴]

    校验提示文案

    提交
    再不然就是计算机专业老师 [高兴]

    校验提示文案

    提交
    还有2条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
2.6K
扫一下,分享更方便,购买更轻松