扣丁学堂Linux培训之Linux开发工程师编程书籍推荐

2018-11-30 14:09:17 358浏览

今天扣丁学堂Linux培训老师给大家分享一下关于Linux开发工程师的编程书籍推荐,首先Linux是由那些拥有深厚计算机知识背景而且才华横溢的程序员发明的。让那些大名鼎鼎的Linux程序员向如今的开发者分享一些曾经带领他们登堂入室的好书和技术参考资料吧,你会不会也读过其中几本呢?下面我们一起来看一下吧。



熠熠生辉的C语言

Linux是在大约上世纪90年代开发出来的,与它一起问世的还有其他一些完成基础功能的开源软件。与此相应,那时的开发者使用的工具和语言反映了那个时代的印记,也就是说C语言。可能C语言不再流行了,可对于很多已经建功立业的开发者来说,C语言是他们的第一个在实际开发中使用的语言,这一点也在他们推选的对他们有着深远影响的书单中反映出来。

Torvalds说,“你不应该再选用我那个时代使用的语言或者开发方式”,他的开发道路始于BASIC,然后转向机器码(“甚至都不是汇编语言,而是真真正正的‘二进制’机器码”,他解释道),再然后转向汇编语言和C语言。

“任何人都不应该再从这些语言开始进入开发这条路了”,他补充道。“这些语言中的一些今天已经没有什么意义(如BASIC和机器语言)。尽管C还是一个主流语言,我也不推荐你从它开始。”

并不是他不喜欢C。不管怎样,Linux是用GNUC语言写就的。“我始终认为C是一个伟大的语言,它有着非常简单的语法,对于很多方向的开发都很合适,但是我怀疑你会遇到重重挫折,从你的第一个‘HelloWorld’程序开始到你真正能开发出能用的东西当中有很大一步要走”。他认为,用现在的标准,如果作为入门语言的话,从C语言开始的代价太大。

在他那个时代,Torvalds的唯一选择的书就只能是BrianW.Kernighan和DennisM.Ritchie合著的《C编程语言,第二版CProgrammingLanguage,2ndEdition》,它在编程圈内也被尊称为K&R。“这本书简单精炼,但是你要先有编程的背景才能欣赏它”,Torvalds说到。

Torvalds并不是唯一一个推荐K&R的开源开发者。以下几位也同样引用了这本他们认为值得推荐的书籍,他们有:Linux和Oracle虚拟化开发副总裁WimCoekaerts;Linux开发者AlanCox;Google云CTOBrianStevens;Canonical技术运营部副总裁PeteGraner。

如果你今日还想同C语言较量一番的话,Samba的共同创始人JeremyAllison推荐《C程序设计新思维21stCenturyC:CTipsfromtheNewSchool》。他还建议,同时也去阅读一本比较旧但是写的更详细的《C专家编程ExpertCProgramming:DeepCSecrets》和有着20年历史的《POSIX多线程编程ProgrammingwithPOSIXThreads》。

如果不选C语言,那选什么?

Linux开发者推荐的书籍自然都是他们认为适合今时今日的开发项目的语言工具。这也折射了开发者自身的个人偏好。例如,Allison认为年轻的开发者应该在《Go编程语言TheGoProgrammingLanguage》和《Rust编程RustwithProgrammingRust》的帮助下去学习Go语言和Rust语言。

但是超越编程语言来考虑问题也不无道理(尽管这些书传授了你编程技巧)。今日要做些有意义的开发工作的话,要从那些已经完成了99%显而易见工作的框架开始,然后你就能围绕着它开始写脚本了,Torvalds推荐了这种做法。

“坦率来说,语言本身远远没有围绕着它的基础架构重要”,他继续道,“可能你会从Java或者Kotlin开始,但那是因为你想为自己的手机开发一个应用,因此安卓SDK成为了最佳的选择,又或者,你对游戏开发感兴趣,你选择了一个游戏开发引擎来开始,而通常它们有着自己的脚本语言”。

这里提及的基础架构包括那些和操作系统本身相关的编程书籍。Garner在读完了大名鼎鼎的K&R后又拜读了W.RichardSteven的《Unix网络编程UnixNetworkProgramming》。特别是,Steven的《TCP/IP详解,卷1:协议TCP/IPIllustrated,Volume1:TheProtocols》在出版了30年之后仍然被认为是必读之书。因为Linux开发很大程度上和和网络基础架构有关,Garner也推荐了很多O'Reilly在Sendmail、Bash、DNS以及IMAP/POP等方面的书。

Coekaerts也是MauriceBach的《UNIX操作系统设计TheDesignoftheUnixOperationSystem》的书迷之一。JamesBottomley也是这本书的推崇者,作为一个Linux内核开发者,当Linux刚刚问世时James就用Bach的这本书所传授的知识将它研究了个底朝天。

软件设计知识永不过时

尽管这样说有点太局限在技术领域。Stevens还是说到,“所有的开发者都应该在开始钻研语法前先研究如何设计,《设计心理学TheDesignofEverydayThings》是我的最爱”。

Coekaerts喜欢Kernighan和RobPike合著的《程序设计实践ThePracticofProgramming》。这本关于设计实践的书当Coekaerts还在学校念书的时候还未出版,他说道,“但是我把它推荐给每一个人”。

不管何时,当你问一个长期从事于开发工作的开发者他最喜欢的计算机书籍时,你迟早会听到一个名字和一本书:DonaldKnuth和他所著的《计算机程序设计艺术(1-4A)TheArtofComputerProgramming,Volumes1-4A》。VMware首席开源官DirkHohndel,认为这本书尽管有永恒的价值,但他也承认,“今时今日并非极其有用”。(LCTT译注:不代表译者观点)

读代码。大量的读。

编程书籍能教会你很多,也请别错过另外一个在开源社区特有的学习机会:《代码阅读方法与实践CodeReading:TheOpenSourcePerspective》。那里有不可计数的代码例子阐述如何解决编程问题(以及如何让你陷入麻烦……)。Stevens说,谈到磨炼编程技巧,在他的书单里排名第一的“书”是Unix的源代码。

“也请不要忽略从他人身上学习的各种机会。”Cox道,“我是在一个计算机俱乐部里和其他人一起学的BASIC,在我看来,这仍然是一个学习的最好办法”,他从《精通ZX81机器码MasteringmachinecodeonyourZX81》这本书和HoneywellL66B编译器手册里学习到了如何编写机器码,但是学习技术这点来说,单纯阅读和与其他开发者在工作中共同学习仍然有着很大的不同。

Cox说,“我始终认为最好的学习方法是和一群人一起试图去解决你们共同关心的一些问题并从中找到快乐,这和你是5岁还是55岁无关”。

最让我吃惊的是这些顶级Linux开发者都是在非常底层级别开始他们的开发之旅的,甚至不是从汇编语言或C语言,而是从机器码开始开发。毫无疑问,这对帮助开发者理解计算机在非常微观的底层级别是怎么工作的起了非常大的作用。

那么现在你准备好尝试一下硬核Linux开发了吗?GregKroah-Hartman,这位Linux内核稳定分支的维护者,推荐了SteveOualline的《实用C语言编程PracticalCProgramming》和Samuelharbison与GuySteels合著的《C语言参考手册C:AReferenceManual》。接下来请阅读如何进行Linux内核开发HOWTOdoLinuxkerneldevelopment,到这时,就像Kroah-Hartman所说,你已经准备好启程了。

以上就是关于扣丁学堂Linux培训之Linux开发工程师编程书籍推荐的详细介绍,于此同时,还请你刻苦学习并大量编码,最后扣丁学堂有专业老师制定的Linux学习路线图辅助学员学习,此外还有与时俱进的Linux课程体系和Linux视频直播课供大家学习,想要学好Linux开发技术的小伙伴快快行动吧。扣丁学堂Linux技术交流群:422345477。


扣丁学堂微信公众号


【关注微信公众号获取更多学习资料】



查看更多关于“Linux培训资讯”的相关文章>>

标签: Linux培训 Linux视频教程 红帽Linux视频 Linux学习视频 Linux入门视频

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号