C programmers need to know
successgo opened this issue · comments
C programmers need to know
C 语言值得学习。它值得深入。它值得掌握。
C 之秀
C 语言是众多语言的根本。如:PHP、Java、Lua、V8 等。
C 语言可写系统。如:UNIX、Linux、路由器系统等。
C 语言可写驱动。如:网卡驱动、显卡驱动、USB 驱动等。
C 语言可写服务端软件。如:Nginx、Memcached、Mongodb 等。
C 语言基础
了解数据类型,函数,指针,结构体 struct
及联合 union
。
掌握编译程序,调试程序的方法。
了解多文件的使用,及 make
工具使用。
Book: The C Programming Language
Compiler: gcc or llvm
Debugger: gdb
Editor: vim or emacs, and many others
C Library: glibc, musl c, and many more
See c-basics
C 语言数据结构
Linux/UNIX 系统中的 C 语言
C 语言进程间通信
C 语言网络编程
C 语言项目研究
既然说 C 语言可以做大到系统,小到驱动。那么长久以来诞生了许多的优秀开源的 C 项目。我们可以由小到大选择一部分来研究。一来是研究软件实现的原理,二来是学习大项目是如何组织代码,三来是内里使用的算法与数据结构,四来还可以参与开源中贡献自己。
Tinyproxy
简单的无缓存的 HTTP 代理软件。
Lua
脚本语言,经常用来写游戏,经常作为 Nginx 的模块使用。
sqlite
轻量级的数据库。
Memcached
仅仅是缓存服务器软件。
Swoole
作为 PHP 的底层扩展,提供协程能力,可进行常驻进程开发。
Redis
Key-Value 型内存数据库,不仅可作为缓存服务器软件,它还支持更多的数据类型。
Nginx
俄国人开发的 Web 服务器软件,Web 市场份额增长强劲,且最近被收购。
NetBSD
BSD 系列系统。