您好,我现在大三了,请问我想往 Linux C++ 服务器方向发展该怎么走,比如现在在看 Linux 程序设计,还应该在看哪些书,可以完成一些什么项目?谢谢。
有 C++、C 基础,算法数据结构还不错。
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:陈硕
链接:http://www.zhihu.com/question/22608820/answer/21968467
来源:知乎
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:陈硕
链接:http://www.zhihu.com/question/22608820/answer/21968467
来源:知乎
既然你是在校学生,而且编程语言和数据结构的基础还不错,我认为应该在《操作系统》和《计算机体系结构》这两门课上下功夫,然后才去读编程方面的 APUE、UNP 等书。
下面简单谈谈我对学习这两门课的看法和建议,都是站在服务端程序员的角度,从实用主义(pragmatic)的立场出发而言的。
学习操作系统的目的,不是让你去发明自己操作系统内核,打败 Linux;也不是成为内核开发人员;而是理解操作系统为用户态进程提供了怎样的运行环境,作为程序员应该如何才能充分利用好这个环境,哪些做法是有益的,哪些是做无用功,哪些则是帮倒忙。
学习计算机体系结构的目的,不是让你去设计自己的 CPU(新的 ISA 或微架构),打败 Intel 和 ARM;也不是参与到 CPU 设计团队,改进现有的微架构;而是明白现代的处理器的能力与特性(例如流水线、多发射、分支预测、乱序执行等等指令级并行手段,内存局部性与 cache,多处理器的内存模型、能见度、重排序等等),在编程的时候通过适当组织代码和数据来发挥 CPU 的效能,避免 pitfalls。