学习Unix编程应该看的书籍整理

最近看到网上的一段关于Unix底层工作方面的评论,深以为然:

 

============================================================

底层个人觉得有两个方向,一个是前面说的内核和驱动;另一个就是网络方面了,主要也就是协议栈。
如果想做内核和驱动,建议加深操作系统原理,加深linux操作系统原理和实现的部分。推荐这样几本书《操作系统设计与实现》(第三版),《linux内核完全剖析》,《UNIX环境高级编程》(第二版),《深入理解linux内核》(第三版),《linux设备驱动》(第三版)。
如果是网络方面,那推荐这几本书《UNIX网络编程》,《TCP/IP详解》,然后再加上RFC和各种协议规范。
另外再补充一句,以上两方面并不冲突,而且也经常有linux的大牛,是以上两个方面都精通的!毕竟离开了网络,linux基本就是没牙的老虎。所以你要是有能力,也可以通吃!
一般来说搞linux 无外乎几条出路,数据库维护,并行机,Web 开发,软件工程,嵌入式,网络安全
如果你学过单片机,C 语言,并且数电模电也不错的话可以搞嵌入式
如果你觉得自己的网络知识比较扎实可以搞网络安全
如果你原来弄过数据库,linux 的数据库也是不错的选择
至于并行机一般来说学校的搞得比较多些。
现在的问题是你能学到多深,上面的几个方面你只需要一个方面很精深就可以满足你的生活需要。
如果你不能精深的话,即使你学了linux 你一样还是要为自己的饭碗发愁。

============================================================

 

近些日子也深感英语在IT工作中的重要性,在总是编码或者做一些杂事的工作中,如果没有阅读英文资料的习惯,那么要不了多久,不但听说写,就连读的能力也会被荒废掉,每每想起这点,总让我不寒而栗……

 

技术工作者,没有平台、环境的话,英语的听说能力是很难达到什么质的飞跃的,除非你去做外企的售前之类的岗位。但是阅读不一样,总还是能通过自己的努力逐渐改变的。英语阅读的最高境界,自然是能够熟练的阅读外国的著名原版小说,哎,可这谈何容易,就拿最儿童化的哈利波特来说,能轻松自如的读懂它,实非易事,单词量首先是一个问题,再加上数不清的人名、地名等专有名词,足以把任何一个人搞晕。哈7里面有个参加婚礼的章节,里面去了不少人,在那婚礼现场的杂乱无章的对话,再加上无数的人名、地名的涌现,一下子就把我砸懵了,我不知道是怎么撑过去的,真是噩梦啊。

 

好在我们的技术书籍还没那么难搞定,而且以现在我的水平,就连自如的读技术书籍也还是办不到,于是,先退而求其次,甭看那些小说浪费时间了,看英文技术书籍得了,加以时日,必有质变,到时再转其他不迟。

 

在巩固英语阅读能力和学习Unix以强化技术实力的双重动机驱使下,再加上上面对底层工作的分析,我整理了一下一些必要的英文书目(看英文书目的一大好处是,很多著名的书在网上都能找到电子版pdf和chm,而不是那些纸页的扫描版,而中文计算机电子书,一般以纸页扫描版居多):

 

 

一、算法和数据结构类:

 

要做Unix下的编程,不可避免的要向系统编程方面努力,而系统编程方面,数据结构和算法的知识必然是重中之重,所以它们必须要被单独整理出来:

 

1、Data Structures and Algorithm analysis in C

这是一本很权威的书了,搞它完全是奔着其名气去的

 

2、数据结构C和C++语言描述

中文版的,以前买的,一直没怎么看,由于自己太懒,哎,其实这本书挺不错的

 

3、数据结构与算法分析C++版

中文版的,以前的教材,侧重于算法分析,里面还用点到为止的方式讨论了不少高级话题,每个高级话题都列出了详细的参考资料

 

4、微软编程之美

中文版,这个也是大名鼎鼎的书了,微软里面的人写的,讲了一些微软的面试题目背后所涉及的东西

 

5、Beautiful Code

07年的书,网上电子版pdf随便下,是由十几个IT界的大牛共同写的,每人写一章节,每一章节讨论一个具体的编程问题

 

6、Introduction to Algorithm

这个可谓如雷贯耳,麻省理工学院的经典算法教材

 

7、the art of computer programming

…………IT界的思想巨哲,高爷爷的著作,据说里面的数学让人抓狂,我现在是甭想看懂了。

 

 

二、C

 

Unix下最主要的是C编程,C虽然是一门简单的语言,但是细节方面仍有不少琐碎的地方

这方面的书我找了6本,前三本属于系统学习C语言的书籍,后三本属于针对C的一些高级

特性以及疑难问题做专门分析的书籍。

 

1、The.C.Programming.Language 2nd

C语言教材公认的圣经

 

2、C和指针

另一本详细描述C语言极其高级特性的书,这本书虽然著名,但是却搞不到他的英文电子版,

就连他的高清中文版pdf,我都是费了很大力气才搞到。

 

3、C in a nutshell

除了详尽的介绍C语言之外,还对GCC、GDB、makefile这三个Unix编程利器做了详尽描述,

还提供了ANSI C的库函数使用说明实例,这本书除了作为教材之外,还可以作为参考资料随时

查阅。

 

4、C traps and pitfalls

对C语言容易出现的问题和各种应用中的陷阱做深刻的剖析

 

5、Expert C programming

这本书的英文版阅读起来较前面的要困难些,因为作者的写作风格类似于娱乐作品,一些表达方式

并非传统的技术类书籍,这本书个人认为也是这6本里面最特别的

 

6、C语言深度解剖

这本书是国内的一名做C语言培训多年的老师写的,各个出版社几次叫他增加页数以供出版都被他

拒绝,最后他把它做成了电子版放到网上免费供别人查阅,里面对C的各种语法及应用难点做了点到

为止的描述,还留了不少疑难问题供读者思考,当然了,其中的难题的解答在上面5本书里肯定能够

找到,这本书可以作为对C语言知识的查缺补漏吧

 

三、Unix编程类:

 

提到Unix的编程,就不能不说Richard Stevens,他生前留下了6本经典教材,tcp、ip详解共三本,

还有unix环境高级编程以及unix网络编程1、2卷

 

1、advanced pragramming in the unix environment

2、Unix network programming Vol1 The Sockets Networking API

3、Unix network programming Vol1 Interprocess Communication

 

前三本几乎囊括了Unix编程的一切重点问题

 

4、the art of Unix programming

这本书的英文版阅读难度相当高,作者用了很多复杂的表达以及生冷的词汇,而且其中涉及到了很多领域知识的

综合讨论,没有一定的高度很难全部理解,因此是本很难啃的书

 

5、Advanced Linux Programming

通俗易懂,简明扼要的linux编程教材,可以作为辅助来阅读

 

四、网络知识及协议编程:

 

主要是internetworking with tcp ip系列和tcp ip illustrated系列以及Computer Networks 4th

其中computer networks这本书以讲理论为主,对网络知识进行概览,篇幅中等。

tcp ip illustrated是Richard steven的大作,比较复杂,尤其是第二卷,真的是……

internetworking with tcp ip系列相对容易些,尤其是第一卷,通俗易懂,令人叹为观止。

 

五、shell编程类:

 

在Unix下工作,shell的运用是不可避免的,这解释性的脚本语言的语法不同于用惯了的C和java,很别扭,而且在vi下,

要是不小心敲了什么不可见的英文符号的话就惨了,连错误都发现不了,晕……

 

1、shell编程和unix命令

中文版,网上有电子版的中文版下载,早就泛滥成灾,随处可得。

 

2、Linux.Command.Line.and.Shell.Scripting.Bible

2008年出的书,写的是相当的通俗易懂,如果觉得自己英语差的话,那么看这本书一定能找到自信,我甚至怀疑技术书籍

没法写的比这再简单了,真的……里面的英语太tm简单了。

 

虽然是2008年出的书,但是可以从电驴上得到电子版pdf,非常棒的质量。

 

 

 

你可能感兴趣的:(职业生涯发展规划)