一、书
《UNIX环境高级编程》(第2版),史蒂文斯著 ,推荐指数:★★★★★
《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux网络通信。对于初学者,如果你能将《操作系统》这门课程结合着这本书来学习,试着用 Linux程序实践《操作系统》这门书中讲的进程间通信、进程调度、进程同步等内容,相信这将是一个一举两得的事情。哦,忘了告诉大家,上次 CNN采访 Google 总裁佩林的时候,水煮鱼看到佩林的书架上就有这本书的英文版,可见它真的是一本全球开发者必备的一本书。
《嵌入式 Linux 应用开发完全手册》,推荐指数:★★★
要说 Linux 应用最广泛的地方,那一定是无处不在的嵌入式设备了,《嵌入式 Linux 应用开发完全手册》就是一本教会您怎样开发Linux嵌入式系统软件的一本好书。水煮鱼与本书作者韦东山老师曾有过一面之缘,当时韦老师正在写作这本书。这本书综合了常见的嵌入式开发经验技巧,以及常见的嵌入式系统应用,系统移植,调试及异常处理等,内容非常丰富,是中文Linux领域难得的一本好书。嵌入式处理器种类繁多,韦老师着重讲了目前国内最常用的ARM系统,实用性很强,是国内嵌入式程序员不容错过的一本工具书。
《人月神话》,推荐指数:★★★★★
水煮鱼上面为大家推荐了几本 Linux编程经典书籍,但要问编程的最终目的是什么,那一定还是要应用到实际项目中。做项目,那就一定离不开《人月神话》这本书。《人月神话》的作者布鲁克斯,是水煮鱼所在公司的超级大牛人,也是图灵奖的获得者。去年,他到中国访问的时候曾经表示,《人月神话》这本书,浓缩了项目实践中的正反两方面经验,是项目经理和系统分析师必读的一本书。水煮鱼认为,各位年轻的朋友,最终还是会要管项目的,与其你临时再学习,还不如早点接触这方面的知识比较好。可以说,Linux的项目,对开发者的要求都很高,大家不要去跟 Windows程序员学一些不好的习惯,特别是项目实施方面的一些不好的习惯,而应该深入体会大师的书籍。目前,《人月神话》的32周年纪念版已经上市了,有志于成为项目经理和产品经理的人,不应该错过这本做项目的圣经。
《快乐的Linux命令行》(适合开发)
强烈推荐给大家,正如书中所说的“就像有位老师在你身边,指导你学习”,这本书的特点是语言简洁流畅,即使是英文版,看起来也不费劲。涵盖了大部分命令行工具和Shell编程。最重要的是这本书是基于 CC 协议共享的,任何人都可以免费下载到这本书,感谢作者的无私奉献,公众号回复“lm”获取 ps.原书标题:The Linux Command Line
《鸟哥的Linux私房菜》
相信不少程序员的Linux启蒙老师都来自《鸟哥的Linux私房菜》,我刚开始学 Linux 也是看鸟哥的教程,鸟哥是台湾人,所以书中也带有台湾腔,用词和大陆也有区别,比如程序他们说成程式,服务器说成伺服器,所有刚开始会有点不适应。他的书分为基础篇和服务器篇,前者适合任何想学Linux的人,后者适合想从事服务器运维开发,到目前这本书已经出到了第四版,这本书可以在网上免费阅读:http://linux.vbird.org/linux_basic/
《Linux命令行与shell脚本编程大全(第3版)》
这是一本非常适合Linux小白的入门教程,内容通俗易懂、深入浅出,除了日常工作中用的基础命令之外,像正则表达式、sed、awk 这样的高级命令也有介绍,书上还配有大量的实例,如果你想精通 shell 编程,那么这本书就是为你准备的。也是有志于从事系统运维开发的朋友必备读品,总之,只要你能跟着这本教程学完,使用 Linux 就能轻车熟路了。
《只是为了好玩》
严格来说,这不是一本技术书,而是Linux之父林纳斯•托瓦兹的自传,在外人看来都是“书呆子”的顶尖程序员,比如 Linux 之父林纳斯、苹果的发明者史蒂夫•沃茨,都是非常幽默风趣的人。比如开篇谈到他的写作计划时,开玩笑地说:“我们可以在第一章里对人们解释生命的意义何在。这样可以吸引住他们。一旦他们被吸引住,并且付钱买了书,剩下的章节里我们就可以胡扯了。”
林纳斯更像一位哲学大师,能把事物的本质看透彻。在阐述生命的意义时,任何事物都是始于生存,发展于社会秩序,娱乐至死的过程,性是如此,技术亦如此,技术最初也是为了生存,为了生存得更好,现在技术大体上还处于社会的层面,但正在朝娱乐的阶段发展。另外,声名远扬的分布式版本管理工具 Git 也是他的作品。
推荐大家闲暇之余阅读此书。
二、网址
学习网站:
Linux中国 https://linux.cn/
实验楼 https://www.shiyanlou.com/
鸟哥(更适合运维工程师) http://linux.vbird.org/
以及与鸟哥配套的b站上的视频https://space.bilibili.com/32059965/channel/detail?cid=12082
干货总结:https://zhuanlan.zhihu.com/p/22654634
三、公开课:
MIT的C语言公开课,以linux和mac os 为主的(还没找到)
四、C语言的学习路线
c primer plus(入门)—>c和指针(进阶)—>c陷进与缺陷,c专家编程(深入)。c和指针个人感觉主要针对有c语言基础的人。