APUE《UNIX 环境高级编程》读后感
今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里。
之前看完《unix/linux编程实践教程》时,有一种豁然开朗、心旷神怡的感觉,在代码级别了解了linux很多系统机制,和一直不理解编程细节,而且对UNIX编程的整体知识结构有了很好的把握。
APUE是公认的经典,事无巨细的把每个知识讲解很透,还有很多细心的提示。但是看起来的过程并不觉得那么美好,原因有以下几点:
- 1.译者那糟糕的水平!很多句子根本就不是中国人能说口的。无奈英语烂,顶多能看看man的水平,只能看中文版了。这本书是尤晋元和几个研究生一起翻译的,有的地方勉强能通畅的阅读,但是有的章节,真的要去仔细揣摩原意到底是什么。如果恰巧遇到一些难以理解的知识点,感觉坑爹到家了,非要百度google一番才能愉快下去。虽然翻译如此,还是能够体会到作者严谨的编撰水平。
- 2.很多章节对细节抠得太多了。导致很容易陷入纷繁的细枝末节,而忘了该章节整体的知识脉络。系统编程很多功能并列的函数,很多位旗标,很多参数设置,让人叫苦不迭。
- 3.只限于讲解接口,没有多少扩展的知识,对UNIX系统本身的一些机制和原理涉及得并不多。这个实践教程做得比较好,目录结构,重定向,进程,脚本特性,shell原理讲得津津有味。
- 4.图例很少,内存分析,结构体关系,程序结构,系统内核交互图,这些都是非常有助于理解知识的图。
- 5.实例非常少,很多都是特定为了一个接口做的例子,很少有一些实际意义的将知识点串联的例子。而且有些难以理解的章节,没有实例,只是介绍一下接口功能,而至于怎么去用,在实际编程中起到什么作用,并不知道。仿佛就在说,现在给你看看,有这个接口,等哪天你用到了,来参考吧。
- 6.学院派研究精神体现的太多,很多时候都到了一种挑剔的地步。全篇充斥着各个平台的各种对比评判。我相信很多人第一次,都不会乐于纠结这些东西。可能大而全的书,特别是UNIX like这么多版本,想要一本书涵盖所有情况,不得已所造成的结果吧,但这也是跨平台所必须考虑的细节。
- 7.它的确像是一本UNIX重点接口的参考手册,不要指望能一下子吃透,看完理想情况下应该是这样的:记得有哪些功能、接口和特性,至于细节和用法,再查一查应该能够马上理解。
- 8.他对新手很不友好,仿佛看书的人就已经在unix上编程领域摸爬滚打过,只是还没形成经验、知识体系而已。没有linux操作经验,是完全不能直视这本书的,就算有了很多linux运维(常用命令,linux系统机制,文件系统,管道,进程特点,shell脚本)的功底,但没有完整的c语言、数据结构,和一点操作系统、gcc编译知识的功底,也会碰到很多大小困难。其实这本书,本质上算参考书,不算入门之作,已经尽力循序渐进了。
至于这本书优点,不消说,网上歌颂的太多。对我而言,最主要的是,对一个操作系统能够为用户程序层提供的功能,也就是所谓系统接口 ,有了一个全面深刻的了解——让我知道程序究竟能够做哪些事,也能大致知道复杂的软件,底层到底用的是哪些技术。对C语言安全、稳定编程,和跨平台程序开发有了很好的认识。终于理解了 直来直去、直击要害的C语言 和 简约至上、只做好一件事的UNIX 之间的血缘关系。
最后说一下,看这本书的过程 。当然是对着电脑,而且是对着有UNIX like系统的联网电脑,这是必须的。
没有用vi,但我不反对用他,甚至很欣赏用得6的人。我只是不想被那些宗教信仰所束缚,不想为其他细节干扰着我的精力,只想痛痛快快的学编程,做好一件事,这才是主要的,不舍本求末。
虚拟机Ubuntu12.04带控制台的gedit和gcc是开发环境,不断手动编译和调试,才能理解程序的构造运行过程。
有一句话不是说,在信息时代,所有客观困难几乎不存在,有一台速度过的去的电脑,加上一条宽带,和与之献身的决心,你即可拥有任何你想拥有的编程境界。
网络资料太有用处了,学习上遇到的困难,前辈几乎都遇到过,这几乎是最好的老师了。
APUE《UNIX 环境高级编程》读后感的更多相关文章
- APUE(unix环境高级编程)第三版---first day---部署书中实例的运行环境(apue.h)
操作环境:RHEL7.0 部署apue.h实例运行环境 1.下载头文件src.3e.tar.gz 2.解压 tar zxvf src.3e.tar.gz 3.创建普通用户(我仿照书上创建的sar用户) ...
- (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- (八) 一起学 Unix 环境高级编程 (APUE) 之 信号
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
随机推荐
- 【转】服务器证书安装配置指南(Weblogic)
服务器证书安装配置指南(Weblogic) 详情请点击: http://verisign.itrus.com.cn/html/fuwuyuzhichi/fuwuqizhengshuanzhuangpe ...
- DataGridView 添加行 分类: DataGridView 2014-12-07 08:49 263人阅读 评论(0) 收藏
说明: (1)dgvGoods 是DataGridView名 (2)index 是最大行索引 一. DataGridViewRow row = new DataGridViewRow(); int i ...
- win7重装系统时,使用PE工具箱进入系统看到的“C盘变成0.2G,D盘变成48G左右”这是什么回事?
引入: 今天帮同学重装系统,重装系统使用的方法是利用PE工具箱制作出启动U盘,进行重装系统. 我的步骤是 第一步:开机按F2挂载U盘优先启动,于是开机时就进入PE微系统 第二步: 用分区工具(Disk ...
- sql server 获取每一个类别中值最大的一条数据
/* 数据如下: name val memo a 2 a2(a的第二个值) a 1 a1--a的第一个值 a 3 a3:a的第三个值 b 1 b1--b的第一个值 b 3 b3:b的第三个值 b 2 ...
- 【BZOJ1833】【ZJOI2010】数字计数 数位DP
链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...
- java websockect
https://github.com/TooTallNate/Java-WebSocket (websockect类库包) http://blog.openlg.net/index.php/archi ...
- 基于amoeba实现mysql数据库的读写分离/负载均衡
一.Amoeba的简述:[来自百度百科] Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy.它集中地响应应用的请求,依据用户事先设置的规则,将SQL请 ...
- how tomcat works 读书笔记四 tomcat的默认连接器
事实上在第三章,就已经有了连接器的样子了,只是那仅仅是一个学习工具,在这一章我们会開始分析tomcat4里面的默认连接器. 连接器 Tomcat连接器必须满足下面几个要求 1 实现org.apache ...
- 字符串 赋值 以及gets
我们知道字符串用字符数组或用指针实现,但是在赋值的时候产生了不少疑惑 使用方法一: char a[ ]={"I LOVE YOU!"}; 但是以下这样就是错的: char a[20 ...
- linux ----Inode的结构图
http://www.ruanyifeng.com/blog/2011/12/inode.html 先看看Inode的结构图 再来了解一下文件系统如何存取文件的 1.根据文件名 ...