C++编程新手怎么学习?推荐这10个代码库,20个免费网站+学习资料

博主介绍:程序喵大人

  • 35- 资深C/C++/Rust/Android/iOS客户端开发
  • 10年大厂工作经验
  • 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
  • 《C++20高级编程》《C++23高级编程》等多本书籍著译者
  • 更多原创精品文章,首发gzh,见文末
  • 记得订阅专栏,以防走丢
    C++基础系列专栏
    C语言基础系列专栏
    C++大佬养成攻略专栏
    C++训练营
    个人网站

推荐十个我整理的一些高质量现代C++风格的开源仓库:

  • spdlog:https://github.com/gabime/spdlog
    • 现在最热门的C++日志库,支持多种输出格式和级别,有header only和compile source两种模式,源码还简单易学,关注我,后面我出一期spdlog的源码分析文章。
  • abseil:https://github.com/abseil/abseil-cpp
    • Google内部的C++轮子库,各种基础能力都包含,值得学习。abseil还有个官方网站:https://abseil.io/
  • folly:GitHub - facebook/folly: An open-source C++ library developed and used at Facebook.
    • Facebook内部的轮子库,线程池、内存池、异步IO、executor等,应有尽有。
  • chromium:https://github.com/chromium/chromium
  • google浏览器源码仓库,包括edge等很多浏览器和应用都会基于chromium二次开发,阅读它的代码后,也改变了我的部分编程习惯。
  • fmtlib:https://github.com/fmtlib/fmt
  • 现代化、快速的 C++ 格式化库,方便易用的API且高效,不使用C++20可以使用这个库做format。
  • godot engine: https://github.com/godotengine/godot
  • 看到挺多朋友这个仓库代码质量高
  • ctpl: https://github.com/vit-vit/ctpl - 简易的C ++线程池,代码行数看了下,约为500左右。
  • libzippp: https://github.com/ctabin/libzippp - 基于zlib和libzip的跨平台封装,代码行数2000左右。
  • cista:https://github.com/felixguendling/cista - header only的序列化-反射库,代码行数1500左右。
  • sqlite_orm: https://github.com/fnc12/sqlite_orm - Sqlite的C++ ORM封装,代码行数3000左右。

那如何阅读这些开源代码呢?推荐:如何去阅读并学习一些优秀的开源框架的源码?

再推荐一些我常阅读的C++技术网站:

  1. 我的网站(C++ 编程指南
  2. ISO C++ 官方网站 (Standard C++)
    C++标准委员会官方站点,这个网站会提供最新的C++标准动态以及消息。
  3. C++ Reference (403 Forbidden)
    C++语法、标准库的相对权威文档,但中文版本可读性比较一般。
  4. C++ Core Guidelines (GitHub - isocpp/CppCoreGuidelines: The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++
    C++最佳实践合集,由Bjarne Stroustrup等专家编写,国内也有中文翻译版。
  5. Fluent C++ (Fluent C++ 也是个探讨C++设计模式、性能优化的非常高质量的博客。
  6. Arthur O’Dwyer’s Blog (Stuff mostly about C++ C++标准委员会成员的博客,会讲解一些语言细节和陷阱。
  7. GitHub Trending C++ RepositoriesBuild software better, together 这里可以搜索热门C++开源项目,相当于C++的热榜。
  8. Boost C++ Libraries (Boost C++ Libraries 非常高质量的C++库集合,涵盖算法、并发、元编程等等,应该都知道,不多介绍了。
  9. Compiler Explorer (Godbolt)Compiler Explorer 在线查看C++代码的汇编输出,分析编译器优化行为,还可以在线运行,非常好用,我经常使用。
  10. Reddit - r/cpp (https://www.reddit.com/r/cpp/
    C++开发者聚集地,需要注册登录。
  11. C++ Forum (Forum - C++ Forum
    专注C++的交流论坛,适合新手提问和进阶学习,目前用的比较少了,stack overflow用的居多。
  12. Bartek’s Coding Bloghttps://www.cppstories.com/p/start-here/
    大佬的博客,深入解析现代C++特性(C++11/14/17/20/23),含代码示例。
  13. C++ Insights (C++ Insights 可视化C++代码的编译器转换过程(如模板实例化、Lambda展开)。
  14. Quick Bench (https://quick-bench.com/ 快速对比C++代码片段的性能,验证优化效果。
  15. CppCon (The C++ Conference 全球顶级C++会议,视频和幻灯片都资源免费开放,英语好的同学可以多看看,B站上也经常会有中文翻译版,但翻译的比较一般。
  16. Meeting C++https://meetingcpp.com/ 欧洲C++社区。
  17. C++ Weekly (YouTube) (https://www.youtube.com/@cppweekly YouTube上的C++ weekly,每周都会更新实用技巧,如果能跟着学习,肯定收货满满。
  18. Microsoft C++ Docs (Microsoft C/C++ 文档 Windows平台C++开发工具链(MSVC)的官方文档,这个可以和cppreference组合着看。
  19. Stack Overflow - C++ Tag (Newest 'c++' Questions 解决C++问题的首选问答社区,积累了大量高质量讨论,绝大多数C++问题这里都能找到讨论和答案。

再推荐我自己整理的C++学习资料汇总:

  • C++知识库:C++ 编程指南
  • C++学习资料库:C++学习资料库
  • 内存泄漏检测工具:内存泄漏检测工具
  • RPC项目:从 0 到 1 开始实现一个 RPC 项目
  • 飞书机器人项目:飞书机器人项目来了
  • 高性能日志项目:高性能日志项目来了
  • 埋点SDK项目:埋点SDK项目
  • STL项目:为什么要研究STL?
  • 音视频项目:音视频项目来了,含音视频行业现状与前景分析

码字不易,欢迎大家点赞关注评论,谢谢!


C++训练营

专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,已帮助多名学员获得大厂offer!

你可能感兴趣的:(CPP编程指南,c++,c语言,面试,校招)