本文共 2018 字,大约阅读时间需要 6 分钟。
Linux 是上世纪 90年代问世的,与之相伴的还有许多基础功能的开源软件。那个时代的开发者使用的工具和语言,反映了当时的技术印记——C语言。
尽管如今 C语言已经不再流行,但对于许多资深开发者来说,它是他们在实际开发中使用的第一个语言。这一点在他们推荐的书单中也得到了体现。Torvalds曾表示:“你不应该再选用我那个时代使用的语言或者开发方式。”他从 BASIC 转向机器码,然后是汇编语言和 C语言,认为这些语言已经不再适用于现代开发。
尽管如此,他也承认 C语言的价值。他认为,Linux是用 GNU C语言写的,C语言的简单语法和适应性是其最大的优点。但他也提醒说,从 C语言入门会面临很大的挑战。与之相比,现代开发者可能更倾向于选择其他语言,但这并不意味着 C语言已经没有价值。
在这方面,K&R 的《C 编程语言,第二版》是 Torvalds 推荐的书籍之一。他认为这本书简洁而深刻,对于有编程背景的开发者来说,是了解 C语言的绝佳选择。许多顶级 Linux 开发者也对这本书表示认可,包括 Wim Coekaerts、Alan Cox 和 Pete Garner。
此外,Jeremy Allison 推荐了《21st Century C: C Tips from the New School》,并强调学习 C语言的重要性。他还建议阅读《Expert C Programming: Deep C Secrets》和《Programming with POSIX Threads》。
Linux 开发者推荐的书籍自然是他们认为适合当今开发项目的语言工具。这也反映了开发者自身的个人偏好。例如,Jeremy Allison认为年轻的开发者应该学习 Go语言和 Rust语言。
不过,Torvalds 提出了一种不同的观点。他认为,语言本身的选择并不如基础架构重要。他建议开发者从现有的基础架构入手,例如 Java 或 Kotlin,或者选择游戏开发引擎,因为它们通常有自己的脚本语言。
在这方面,Pete Garner 运用了自己的经验。他在读完了 K&R 之后,还阅读了 W. Richard Steven 的《Unix Network Programming》和《TCP/IP Illustrated, Volume 1: The Protocols》。即使经过 30 年,这本书仍然被认为是必读之作。
Coekaerts 也是一位忠实的 Bach 的粉丝。他认为《The Design of the Unix Operation System》是理解 UNIX 系统设计的重要书籍之一。James Bottomley 也曾用 Bach 的知识研究 Linux 内核。
Stevens 强调,所有开发者都应该在学习语法之前,先研究如何设计。《The Design of Everyday Things》是他的最爱。Coekaerts 喜欢 Kernighan 和 Rob Pike 合著的《The Practice of Programming》。这本书即使在 Coekaerts 进行时也未出版,他也表示会推荐给每一个人。
无论何时,当你问一个长期从事开发工作的开发者他最喜欢的计算机书籍时,你迟早会听到一个名字和一本书:Donald Knuth 的《The Art of Computer Programming, Volumes 1-4A》。尽管 Hohndel 认为这本书的价值在今时今日可能不如以前,但它仍然是开发者必读之作。
编程书籍能教会你很多,但别忘了开源社区提供的学习机会。《Code Reading: The Open Source Perspective》有许多代码实例,展示了如何解决编程问题(以及如何让你陷入麻烦)。Stevens 认为,Unix 源代码是最好的“书”。
Cox 更加强调实践。他从《Mastering machine code on your ZX81》和 Honeywell L66 B 编译器手册中学习了如何编写机器码。他认为,最好的学习方法是和一群人一起解决共同关心的问题,并从中学到快乐。
Greg Kroah-Hartman 推荐了 Steve Oualline 的《Practical C Programming》和 Samuel Harbison 与 Guy Steels 合著的《C: A Reference Manual》。接下来请阅读《HOWTO do Linux kernel development》,你已经准备好启程了。
最后,别忘了大量编码,祝你在跟随顶级 Linux 开发者脚步的道路上好运相随。
转载地址:http://nial.baihongyu.com/