码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 学习 C++ 编程,怎么才能找到合适的练手项目?


    如果要找C++项目,在Github上可以找到数不胜数的项目。

    但是,如果要把范围限定在“练手”,这就对项目有了更多的要求。

    不能太难、也不能太简单,此外,还要系统成体系,便于学习者循序渐进的接收,同时还能够学到全面而系统的知识,从而达到一种提升的作用。

    由于我每周都要分享《DevWeekly》系列文章,所以每天都会花费大量时间再Github上,在这个过程中接触过数不胜数的项目。

    今天,就从中抽取出几个非常适合练手的C++项目!

    1. 用LLVM实现一种编程语言

    LLVM是一个编译器框架,这个项目就展示了如何在C++中使用LLVM组件实现一个名为Kaleidoscope的简单编程语言。

    img

    编辑切换为居中

    添加图片注释,不超过 140 字(可选)

    它包含如下部分:

    • Kaleidoscope介绍和Lexer
    • 实现解析器和AST
    • 代码生成到LLVM IR
    • 添加JIT和优化器支持
    • 控制流
    • 用户定义的操作符
    • 可变的变量
    • 编译成目标代码
    • 添加调试信息

    2. 高性能的矩阵乘法

    img

    编辑切换为居中

    添加图片注释,不超过 140 字(可选)

    这是一个比较小的项目,解释了如何在现代处理器上编写一个高性能的矩阵乘法程序。

    3. 从零开始实现《太空入侵者》游戏

    img

    编辑

    添加图片注释,不超过 140 字(可选)

    这个项目包含了5部分,介绍了如何利用C++实现一款名为《太空入侵者》的游戏,循序渐进,由浅入深。

    • Part 1
    • Part 2
    • Part 3
    • Part 4
    • Part 5

    4. 俄罗斯方块

    img

    编辑切换为居中

    添加图片注释,不超过 140 字(可选)

    在这个项目中,将学习如何使用简单而干净的C++语言从头开始创建一个俄罗斯方块游戏。

    项目简单明了,从头至尾也只需要花费一到两个小时的时间,这是为初学者准备的完美教程。

    5. 编写一个Linux调试器

    调试器是任何开发人员工具包中最有价值的工具之一。

    然而,尽管这些工具被广泛使用,但并没有很多资源告诉你它们是如何工作的,以及如何编写一个调试器。

    在本系列文章中,可以学习调试器的工作原理,并为调试Linux程序编写一个调试器。

    • Part 1: Setup
    • Part 2: Breakpoints
    • Part 3: Registers and memory
    • Part 4: Elves and dwarves
    • Part 5: Source and signals
    • Part 6: Source-level stepping
    • Part 7: Source-level breakpoints
    • Part 8: Stack unwinding
    • Part 9: Handling variables
    • Part 10: Advanced topics

    6. 开发一款编译器

    提到编译器、解释器,都不陌生。

    编程开发中必不可少的东西,那么编译器是如何工作的?以及如何实现一款编译器?

    和前面开发调试器一样,让我们从一个使用者的角度切换到开发者的角度,去剖析它背后的原理,不仅能够锻炼C++开发能力,而且能够更加深入的理解编译器的原理。

    • Part 1: Introduction, selecting a language, and doing some planning
    • Part 2: A lexer
    • Part 3: A parser
    • Part 4: Testing
    • Part 5: A code generator
    • Part 6: Input and output
    • Part 7: Arrays
    • Part 8: Strings, forward references, and conclusion

    我一向人为,授人以鱼,不如授人以渔。项目数不胜数,但是好的项目也在不断推陈出新。

    正是因为如此,我每周都会特意花费很多时间去寻找优质的开源项目,其中包括但不限于Python、Java、C/C++、Go、JavaScript。除此之外,还会分享开源的工具资源、优质技术文章,每周五定期更新,欢迎大家star并收藏:

    https://github.com/Jackpopc/DevWeekly

  • 相关阅读:
    Codeforces Round #814 (Div. 2) A.B.C
    科普文:一文搞懂jvm实战(三)AutoCloseable回收jvm资源
    echarts 仪表盘统计图
    Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验
    【论文翻译】变更数据捕获和实时数据仓库框架
    STC单片机23——T2定时器的使用
    Windows服务器监控工具
    c# 任务(Task)介绍
    maven本地仓库同步上传到nexus远程仓库
    mybatis插入数据不返回主键id可能原因及解决
  • 原文地址:https://blog.csdn.net/jakpopc/article/details/126445039
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号