【提问】如果读完了 APUE 和 UNP,编程大概是个什么水平?

能算是掌握系统编程技能了吗?

另外迷茫的是到底要不要去读计算机的那些论文,感觉离敲代码很远。

我觉得是不能,问了chatGPT,下面是回答

大概可以达到以下编程水平:

- 理解操作系统的基本概念和原理,熟悉 Unix 系统调用和库函数的使用;
- 能够编写基本的 Unix 命令行工具,如文件操作、进程管理、管道等;
- 熟悉网络编程基本概念和技术,能够使用 Unix 网络编程 API 进行 Socket 编程;
- 能够编写基本的网络应用程序,如服务器和客户端;
- 熟练使用 Unix 系统和工具,如 shell、awk、sed 等;
- 理解 Unix 系统的安全机制和实现,能够编写安全的程序,如用户身份验证、权限管理等。

当然,这只是一个大概的评价,实际上读完这两本书之后,还需要不断的实践和学习,才能不断提高自己的编程水平。
1 个赞

光读完不能看出来是什么水平,一般还是看能不能写项目

比如如果你能用书中的 api 实现一个 http server ,那应该算了解网络编程了

1 个赞

不用问读完会怎么样,想想如果不去读这些书,有没有可能掌握系统编程

既然不读的话也没有别的捷径,那瞎想这些有什么用么

什么,其实你也不需要会系统编程,就是听着炫酷觉得好玩想学?那我只能说挺叔一句劝,你这样自己下不了决定怎么学的话啥也学不会的。

至于读不读论文,只是为了装逼读论文的话,读得少一些光读些经典的还好,多读是读不出啥用的

2 个赞

曾经我也以为读完APUE后会有很大的提高。实际上这个大部头还是更适合作为工具书。它确实能补全你对操作系统基础的理解,但是脱离了具体目的和应用场景,看这个书也只是匆匆一瞥,很难熟练。

1 个赞

主要还是得多做项目,才能掌握编程技能,需要多多实践,不然看完还是会很快忘掉的。

1 个赞

两本书都草草翻过的表示可以提供一个学习目标:

  1. 怎么理解 “同步” “异步” “阻塞” 与 “非阻塞” 这四个名词在这两本书里的含义?
  2. 这两本书成书已久,现在Linux用户喜闻乐见的io_uring与书中描述的IO模型相比有什么特点?

我自己的读后感就是弄清楚这两个问题之后,书中剩下的内容就是(很可能过时的)API reference了。

3 个赞

The Linux Programming Interface 更新、更推荐吧?

https://man7.org/tlpi/index.html

看不起用 FreeBSD/Solaris/Plan9/macOS 的是吧 :sweat_smile:

1 个赞

但凡他们争点气也不至于一点气也争不到

1 个赞

可以先熟悉 Linux,应用广泛,有兴趣再了解其他小众的

2 个赞

代码大全(Code Complete)我觉得很不错,介绍了常用的编程技巧。

APUE对我没有直接的帮助,因为我当时是在已有系统上维护,C使用自己代码封装的少量api(基本上就是字符串处理),后续很多代码迁移到python/perl上了。

系统编程技能还是要参加一些大项目(开源闭源都行)。

2 个赞

编程本质上是个手艺活,不把自己的手弄脏,不亲自动手做个项目应用书上的知识是没办法提高自己能力的。读完了这两本书,只能说明你了解了其中的一些概念。

2 个赞

提个学习的建议,看书的过程中可以自己封装一套库出来

1 个赞