经常会有人问我:
C 入门应该做些什么项目?
应该学习什么项目来提高自己的C 水平?
今天给大家推荐三个我认为不错的项目(视频版本已经更新到B站上,大家可以去B站关注程序喵大人,然后观看哈,上面还有更多精彩内容呢)。
(一)手撸STL
STL是C 的重要组件,C 开发几乎没有不使用STL的,然而光会用是不够的,还需要明白它的实现原理。
智能指针 vector array stack queue deque map set string 这些常用的数据结构最好自己都实现一遍。
水平高的可以直接参考gcc源码(https://github.com/gcc-mirror/gcc)
刚入门的朋友可以参考这个大佬写的简易STL(https://github.com/Alinshans/MyTinySTL)
(二)手撸Json
Json是特别常用的序列化数据结构(https://tech.meituan.com/2015/02/26/serialization-vs-deserialization.html)
之前面试时候还被问过如何实现一个Json(我答的不是很好)。大家可以通过手撸一个Json来提高自己的C 水平哈。
水平高的可以直接参考这个C 中常用的Json三方库https://github.com/nlohmann/json
刚入门的朋友可以参考这个大佬写的简易Json(https://github.com/dropbox/json11)
(三)网络编程
后端的事我不大懂,只看过少数书籍,实现过简单的聊天小程序,个人认为陈硕的muduo库(https://github.com/chenshuo/muduo)和《Linux多线程服务器编程》很不错,推荐给大家。
(四)直接看这个网站
https://en.cppreference.com/w/cpp/links/libs
这个网站列举了很多C 的开源库,大家对哪个感兴趣就学哪个也行的。