Linux 软件工程师的书籍推荐

2019年2月13日 11.79k 次阅读 0 条评论 4 人点赞

目录

自接触计算机开始前前后后大约接触过不下于 100 本计算机相关的书籍,这其中有写得很棒的当然也有写得很糟糕的书籍 1,写得棒的我接下来将为入行者一一推荐。

新手入行

C 程序设计语言

如果你是新手入行者,那么我推荐你先从学习 Linux 操作以及基本的 C 语言开始, 不论你之后从事什么工作,C 语言学习了总是有好处的,毕竟他能够使你一通百通,作为远古语言并且一直长青自然是有他的道理。



以上三本书从头至尾全部看一遍并且照着例子全部都在键盘上敲一遍,那么你的 C 语言基本上在理解水平,算是可以入门了,有几次在面试的时候看到有些人写者精通 C 语言,而且确实也看过我推荐的这几本书,但是对 C 语言的理解仅仅停留在对书本上的内容死记硬背上就会让我很尴尬,真正的 C 语言的精通是建立在多年的使用经验上,不论书本上介绍 C 语言的技巧有多么的详细,不自己在实际项目上遇到且坑过都不算掌握该知识点,所以少年郎沉下心多使用多犯错之后你会有对 C 语言新的理解,才会不断的进步。

关于 C 语言的进阶,如刚毕业的我一脸茫然不知所措,总觉得 C 语言到处都是需要注意的地方,到处都是需要去踩的坑,好在我的一位老师发给一篇 PDF 文档(当时还不是书),林锐博士写的《高质量 C/C++ 编程》,如获至宝十分得意,说真的如果不是这份文档开启 C 语言的新征程,我估计也不会在这条路上走这么久。

Linux 操作系统与命令

既然是做 Linux 开发工程师的书籍推荐,那么首先需要了解的就是 Linux 是个啥,以及如何正确2的使用 Linux。《鸟哥的 Linux 私房菜》是我极力推荐的一本入门书籍,写得很详细而且例子很全,基本上能够覆盖到所有的常用命令,通过此书一定可以将你领入 Linux Terminal 世界。

中级开发

如果到了这个阶段,我默认你已经明白了 C 语言的精髓 - 指针的执行原理以及如何正确的使用它,此外我也默认你对于 Linux 的操作熟练掌握,包括对软件包的安装升级以及使用 VIM 进行程序编写3。你已经掌握了最基本的开发利剑,那么就可以编写一些你所需要的软件程序。

命令行程序

首先介绍用于开发命令行程序的书籍,本文的立足点在于 Linux,自然我只介绍 Linux 相关的开发书籍,那么最佳的命令行开发书籍就是 W.Richard Stevens 写的三本书。



诀窍仍然是多动手,照着书本的例子一个一个的编写,然后分门别类的保存到自己能够随手翻越到的地方,因为你不可能一次就记住书本上写的大量的开发 API,没有关系,你只需要在用到的时候打开自己写的小用例即可很快的回忆起来如何编写自己想要实现的功能。

说道这其中的 Linux 环境网络编程,除了 W.Richard Stevens 写的相关编程方案之外,进阶书籍可以看一下陈硕写的《Linux 多线程服务端编程》,这本书很好的解释了当前主流的网络服务程序编写的逻辑以及实现方法,代码也很详细推荐新手去一字一句的理解,不但可以提升网络编程能力,也能提升 C++ 的水平。自然学习 C++ 最好的书籍就是 C++ 的祖师爷 Bjarne Stroustrup 自己写的一本《C++程序设计语言》和他的同事 Stanley B.Lippman 写的《C++ Primer 中文版(第 4 版)》。



图形程序

了解完毕命令行程序的开发,也许你还有对图形程序开发的想法,没有错,这可能是很多入行者的一种执念,不论自己从事的什么方向的工作,总想着自己能有开发应用程序,这其实也没有什么,工作需要被人认可最好的方式就是通过应用程序展现出来。这一章节我没有去读过特别多的书籍,主要是学习的 Qt 程序开发,参考资料主要为 Qt 自己的官方文档,对于图形程序开发最好的学习方式就是去看官方的文档以及示例,其他的资料只能作为辅助材料。


Qt 还有一种更为优雅的图形开发方式就是 QML,他是一种类似于 HTML5 开发的方式,我比较推崇于这种开发方式进行开发,如果你有兴趣也可以去学习一下,当然最好的学习方式还是看官方的文档。

高级进阶

代码版本控制

作为一个正经的 Coder,代码版本管理是非常有必要的,那么 git 又是代码管理中的佼佼者,推荐你去看一下《Pro Git》这本书,有中文版本很容易上手,重要的是多练习,现在的 IT 公司基本上都需要做代码版本控制,这些都是基本技能属于一定要学习的知识。

Linux 内核开发

如果你有志向开发更为底层的 Linux 内核,想要了解 Linux 到底如何工作,那么仍然有一些书籍值得你去深入理解:




其实不仅仅是以上推荐的书籍,现在在 Linux 社区有许多的华人参与设计以及维护,他们也会不断的产生各种高技术含量的博客,蜗窝科技这个地址就很不错,我经常去瞧一瞧。

其他

当然学习是永无止境的,不能因为我只推荐这几本书就仅仅如此,鉴于水平有限我认为值得推荐的书大概如此,自然还有一些别的技术体系的好书,比如针对链接加载的《程序员的自我修养》就很不错,还有关于 TCP/IP 详解的书都很不错;如果你还想了解如何搭建一个完整的 Linux 系统,那么 《Linux From Scratch》 这本书会对你很有帮助。



也欢迎你向我推荐好书,我们共同进步。


  1. 有些很糟糕的书籍真的仅仅是为了骗钱,而且还弄花里胡哨的,什么彩印啊什么牛逼的纸张啊,搞得我现在只要一看到彩印的书都不想买,感觉是个坑,当然不能一棒子打死一船人,但是 90% 都是该死的。 ↩︎
  2. 我为什么说叫正确的使用 Linux?那是因为 Linux 虽然被称之为与 Windows 并列的操作系统,但是他的精华部分并不是通过鼠标点击各窗体部件,而是使用键盘在 Terminal 上尽情的挥洒你的智慧。 ↩︎
  3. 我不是什么 vim 党或者 emacs 党之类的人士,也不是要求写代码一定得在命令行开发,但是我希望你最好能找到一个你用得顺手的,且照顾别人的开发工具进行开发,因为大型项目是很多人一起开发的,也许你的 IDE 工具很莫名其妙的就对一份源代码进行了格式化,调整了空格与 TAB,那么就会造成别的同事的困扰,所以我还是希望你能用 VIM 来编写代码,稍微花 2 天时间,真的要求不多。 ↩︎
标签:
最后编辑:2020年12月30日