<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/tags/c/best-of/2024" -->

---
title: Best C Programming posts of 2024 | daily.dev
description: The most upvoted C Programming posts of 2024, curated by the daily.dev community.
canonical: https://daily.dev/tags/c/best-of/2024
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/tags/c/best-of/2024
og:type: website
og:site_name: daily.dev
og:title: Best C Programming posts of 2024 | daily.dev
og:description: The most upvoted C Programming posts of 2024, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of C Programming — 2024

1. 1  
[](/posts/draw-is-now-open-source-jkhnddcbu "Draw! is now Open Source")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 3y  
Draw! is now Open Source  
Draw! is now open source. The game is available on GitHub under the MIT License. It was written in C programming using raylib. The code is not the best example of programming practices, but it serves as a reference for learning C programming or raylib.  
223  
6
2. 2  
[](/posts/end-the-war-once-and-for-all-c-or-rust-l9e9ke6rl "End the war once and for all: C++ or Rust")  
Article  
![Avatar of rich_tech123](https://media.daily.dev/image/upload/s--Qg6i8-_0--/f_auto/v1727250325/squads/9edc2a72-31e6-4f87-af85-67058e5f7d63)Tech Pioneers · 2y  
End the war once and for all: C++ or Rust  
A C++ developer explores the passionate competition between C++ and Rust communities and seeks advice on whether to switch to Rust or continue with C++, particularly in systems development for game engines, code editors, and operating systems.  
179  
85
3. 3  
[](/posts/how-to-make-games-in-c-from-0-experience--ejh0fwjvv "How to make games in C++ from 0 experience!")  
Video  
![Avatar of lowlevelgamedev](https://media.daily.dev/image/upload/s--Mggt4-BY--/f_auto/v1724390809/logos/lowlevelgamedev)Low Level Game Dev · 2y  
How to make games in C++ from 0 experience!  
Learn how to go from zero C++ experience to creating games with a 3-step framework. Start by learning the basics of the language through free tutorials, slow down and create simple projects to build practical coding skills, and finally make a simple game using libraries like SFML. Avoid getting bogged down by advanced concepts; focus on writing simple, functional code and taking action as soon as possible.  
174  
2
4. 4  
[](/posts/ep110-top-5-strategies-to-reduce-latency-0pdlu9zw6 "EP110: Top 5 Strategies to Reduce Latency")  
Article  
![Avatar of bytebytego](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/35be29234ee14d01a9cd049c52e12753)ByteByteGo · 2y  
EP110: Top 5 Strategies to Reduce Latency  
Learn about strategies to reduce latency, use cases of load balancers, and data sharding algorithms commonly used.  
133  
3
5. 5  
[](/posts/7-open-source-projects-you-should-know---c-edition--ny42knq91 "7 Open Source Projects You Should Know - C Edition ✔️")  
Article  
![Avatar of til](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/739e560f0f81492eb54055003476c505)This is Learning · 2y  
7 Open Source Projects You Should Know - C Edition ✔️  
Explore seven notable open source projects written in C, including LVGL, systemd, DOOM Retro, OBS Studio, raylib, Celluloid, and finit. Each project offers unique features and serves various purposes, from embedded graphics libraries and system management tools to video game programming and media playback.  
104
6. 6  
[](/posts/be-careful-with-primary-constructors-in-c--nzftixfrz "Be Careful with Primary Constructors in C#")  
Video  
![Avatar of nickchapsas](https://media.daily.dev/image/upload/s--T_RLq3JV--/f_auto/v1716024738/logos/nickchapsas)Nick Chapsas · 2y  
Be Careful with Primary Constructors in C#  
92  
7
7. 7  
[](/posts/shadps4-emu-shadps4-ps4-emulator-for-windows-linux-macos-vgm16hwb6 "shadps4-emu/shadPS4: PS4 emulator for Windows,Linux,MacOS")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 2y  
shadps4-emu/shadPS4: PS4 emulator for Windows,Linux,MacOS  
shadPS4 is an early PlayStation 4 emulator for Windows, Linux, and macOS, written in C++. Although it's still in the early stages with limited game compatibility, small games like Sonic Mania and Undertale are already working. Interested developers can check the build instructions for various platforms and contribute to the project via GitHub.  
91  
1
8. 8  
[](/posts/it-s-not-hard-to-make-games-in-c--phcbr62t0 "It's not hard to make games in C++")  
Video  
![Avatar of lowlevelgamedev](https://media.daily.dev/image/upload/s--Mggt4-BY--/f_auto/v1724390809/logos/lowlevelgamedev)Low Level Game Dev · 2y  
It's not hard to make games in C++  
C++ game development is often seen as challenging and unnecessary, but it holds significant value. The author shares personal experiences from attending game jams and developing games from scratch using C++ and OpenGL. Despite pushback and discouragement from peers, the author persisted in learning complex aspects like 3D rendering and multiplayer. The narrative underscores that while using game engines like Unity or Unreal is common, developing games in C++ can offer deeper programming knowledge and skill development. The author encourages others to explore game development in C++ and highlights its benefits and learnability.  
87  
3
9. 9  
[](/posts/ep105-the-12-factor-app-s270iz3xr "EP105: The 12 Factor App")  
Article  
![Avatar of bytebytego](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/35be29234ee14d01a9cd049c52e12753)ByteByteGo · 3y  
EP105: The 12 Factor App  
Learn about the 12 principles of the 12-Factor App, the functionalities of an API gateway, and the evolution of Redis architecture.  
78
10. 10  
[](/posts/how-to-become-a-game-developer--mevxpniqa "How to become a Game Developer?")  
Article  
![Avatar of game_developers](https://media.daily.dev/image/upload/s--wSF7-7I_--/f_auto/v1721427010/squads/f7966514-a5bb-4248-9895-4cbd51acd2c1)Game Developers · 2y  
How to become a Game Developer?  
An individual shares their journey from playing video games to studying game development in college, seeking advice on the key skills and knowledge required to become a game developer. They have basic knowledge of C/C++ with OOP concepts and are learning Data Structures and Algorithms, as well as some Java and Python basics.  
75  
22
11. 11  
[](/posts/the-two-factions-of-c--pjsulgxf6 "The two factions of C++")  
Article  
![Avatar of lobsters](https://media.daily.dev/image/upload/s--tl8v_Fku--/f_auto,t_logo/v1698841318/logos/lobste.jpg)Lobsters · 2y  
The two factions of C++  
The C++ community is divided on the language's future, particularly over backward compatibility and modernizing the language. While the Evolution Working Group aims to maintain ABI compatibility and avoid disruptive changes, other camps, including key tech companies like Google and Microsoft, are moving towards modern practices and adopting languages like Rust. The divide is notably between older industries with legacy systems and modern tech firms with sophisticated automated tooling. The C++ committee appears committed to maintaining backward compatibility, but this has created tensions within the community.  
73  
7
12. 12  
[](/posts/nvidia-cuda-in-100-seconds-lvkgfy7zt "Nvidia CUDA in 100 Seconds")  
Video  
![Avatar of fireship](https://media.daily.dev/image/upload/s--75ndqrkr--/f_auto,t_logo/v1702882094/logos/fireship.jpg)Fireship · 3y  
Nvidia CUDA in 100 Seconds  
CUDA is a parallel computing platform developed by Nvidia in 2007\. It allows users to harness the power of GPUs for tasks like deep learning. This post explains how CUDA works and provides a guide on building a CUDA application.  
67
13. 13  
[](/posts/understanding-c-8-default-interface-methods-raqyowuyw "Understanding C# 8 default interface methods")  
Article  
![Avatar of andrewlock](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/74ebd66cf7e840b6b29913eae3da9189).NET Escapades · 3y  
Understanding C# 8 default interface methods  
This post explains the concept of C# 8 default interface methods, how they work, and their benefits. It also highlights some issues and considerations when using default interface methods.  
67  
2
14. 14  
[](/posts/writing-gui-apps-for-windows-is-painful-q1ttz7nwb "Writing GUI apps for Windows is painful")  
Article  
![Avatar of hn](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn)Hacker News · 2y  
Writing GUI apps for Windows is painful  
Writing GUI applications for Windows using C++ can be challenging due to various limitations of popular libraries. WinUI 3 offers modern components but struggles with portability. Win32/MFC allows single .exe deployment but lacks easy styling. Qt has powerful features but is complex and expensive. wxWidgets is lightweight but lacks customization. hikogui is promising but difficult to compile. Sciter is a good alternative with rendering issues. Ultimately, Dear ImGui is found to be the most suitable for simple apps, despite its limitations with complex UIs and the need for a GPU renderer.  
62  
14
15. 15  
[](/posts/creating-a-real-time-physics-engine-with-c--9q4zahqzn "Creating a Real-Time Physics Engine with C++")  
Article  
![Avatar of evolvedev](https://media.daily.dev/image/upload/s--A__Xyjk7--/f_auto/v1727084454/squads/388bce1a-74c7-4271-809b-56aae71ec154)evolvedev · 2y  
Creating a Real-Time Physics Engine with C++  
Learn to build a basic real-time physics engine in C++ with this step-by-step guide. The tutorial covers implementing vector operations, rigid body dynamics, and collision detection, making it ideal for game developers and simulation enthusiasts.  
56  
2
16. 16  
[](/posts/learn-c-programming-kenbqwpj0 "Learn C# Programming")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 3y  
Learn C# Programming  
Learn C# programming from basics to advanced concepts with engaging mini-projects. Set up your C# development environment, understand data types and operators, and explore advanced topics like object-oriented programming. Watch the full course on freeCodeCamp.org YouTube channel.  
54
17. 17  
[](/posts/how-to-code-with-ai-svhwianjw "How to Code with AI")  
Article  
![Avatar of freecodecamp](https://media.daily.dev/image/upload/t_logo,f_auto/v1628412854/logos/freecodecamp)freeCodeCamp · 3y  
How to Code with AI  
Learn how to code using AI with a course that covers front-end development using HTML, CSS, and JavaScript. The course is divided into three sections: launching first projects, advanced AI projects, and database-powered applications.  
53  
1
18. 18  
[](/posts/under-the-hood---one-of-the-best-resource--cvy87m5ha "Under the Hood - 💯 One of the best resource 📖")  
Article  
![Avatar of ml_ai](https://media.daily.dev/image/upload/s--wTfCZw8v--/f_auto/v1726988043/squads/1ec69b57-19c4-4852-b196-6d9948e10bdb)ML & AI · 2y  
Under the Hood - 💯 One of the best resource 📖  
A comprehensive resource covering topics such as Machine Learning, Database Systems, C Programming, Memory Management, Advanced ML, and Operating Systems, curated by Mohit Mishra.  
52
19. 19  
[](/posts/forget-controllers-and-minimal-apis-in-net--eozt8nyjp "Forget Controllers and Minimal APIs in .NET!")  
Video  
![Avatar of nickchapsas](https://media.daily.dev/image/upload/s--T_RLq3JV--/f_auto/v1716024738/logos/nickchapsas)Nick Chapsas · 2y  
Forget Controllers and Minimal APIs in .NET!  
Learn how to get started with building APIs in .NET using the alternative to controllers and minimal APIs called Fast End Points. Fast End Points is a developer-friendly alternative that nudges you towards the request and response pattern and offers better performance than controllers. Discover the basic registration process and how to implement endpoints for getting all movies, getting a single movie, and creating a movie.  
51  
1
20. 20  
[](/posts/kate-a-refreshing-open-source-code-editor-to-replace-boring-options-fzblpwzgh "Kate: A Refreshing Open-Source Code Editor to Replace Boring Options")  
Article  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 2y  
Kate: A Refreshing Open-Source Code Editor to Replace Boring Options  
Kate, an open-source code editor developed by KDE, offers a robust set of features including syntax highlighting, auto-indentation, and a multi-document interface. Available for Linux, Windows, and macOS, it provides flexible multitasking with split windows and a built-in terminal using Konsole. It is a compelling alternative to popular editors like Visual Studio Code.  
50  
2
21. 21  
[](/posts/writing-a-game-the-hard-way---from-scratch-using-c-1-yp8zyxlsq "Writing a game the hard way - from scratch using C. #1")  
Video  
![Avatar of community](https://media.daily.dev/image/upload/t_logo,f_auto/v1655817725/logos/community)Community Picks · 2y  
Writing a game the hard way - from scratch using C. #1  
The post explores creating a retro-style video game from scratch using a C compiler and basic tools, mimicking the development processes of the 1980s and early 1990s. The author delves into the historical context of game development during that era, highlighting the use of shareware, lack of internet resources, and the simplicity of games driven largely by hardware limitations. The project is not intended as a tutorial but as a narrative journey, where the author plans to build a basic top-down arena shooter with rudimentary elements before expanding its features.  
48  
2
22. 22  
[](/posts/legendary-programmers-5o3voekow "Legendary Programmers")  
Video  
![Avatar of bigboxswe](https://media.daily.dev/image/upload/s--KMRj-zRu--/f_auto/v1711188128/logos/bigboxswe)bigboxSWE · 2y  
Legendary Programmers  
Legendary programmers who made significant contributions to the programming and software engineering world, including Lonus Tals, Richard Stallman, John Karmac, Fabr Bard, Dennis Richie, Ken Thompson, Kathleen Booth, and Terry Davis.  
47  
6
23. 23  
[](/posts/don-t-use-uuids-guids-in-databases-use-this-instead-057dsxa5h "Don’t Use UUIDs/GUIDs in Databases. Use this Instead")  
Video  
![Avatar of nickchapsas](https://media.daily.dev/image/upload/s--T_RLq3JV--/f_auto/v1716024738/logos/nickchapsas)Nick Chapsas · 2y  
Don’t Use UUIDs/GUIDs in Databases. Use this Instead  
46
24. 24  
[](/posts/dear-beginners-please-learn-to-use-the-debugger--mu1eqe6np "Dear Beginners, Please Learn to use the DEBUGGER!")  
Video  
![Avatar of lowlevelgamedev](https://media.daily.dev/image/upload/s--Mggt4-BY--/f_auto/v1724390809/logos/lowlevelgamedev)Low Level Game Dev · 2y  
Dear Beginners, Please Learn to use the DEBUGGER!  
The biggest mistake beginners make is not learning how to use a debugger. Debugging is crucial for narrowing down where problems in the code occur by checking each step in the process. The post provides practical examples of using debugging techniques and tools, emphasizing the importance of avoiding assumptions about where the bug is. Visual Studio debugger functionalities are explained, including setting breakpoints, stepping through code, and using the call stack window. Beginners are encouraged to install an IDE with a debugger to be more productive.  
44  
2
25. 25  
[](/posts/release-candidate-godot-4-3-rc-1-djqljxxwn "Release candidate: Godot 4.3 RC 1")  
Article  
![Avatar of godot](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/0ad32943cdb9485c875a13fc5810629c)Godot · 2y  
Release candidate: Godot 4.3 RC 1  
Godot 4.3 has reached the Release Candidate stage. All features are finalized, and critical regressions have been addressed. The community is encouraged to test this release candidate and report any issues. Highlights include Direct3D 12 support on Windows without the need for DXIL.dll and finalized support for Windows ARM64 devices. The release also includes numerous fixes for areas like audio, GUI, import, and rendering. Users are urged to backup their projects due to the pre-release nature of the software.  
42  
1

[See all C Programming archives](/tags/c/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/tags/c/best-of/2024#page","url":"https://daily.dev/tags/c/best-of/2024","name":"Best C Programming Posts of 2024","description":"The most upvoted C Programming posts of 2024, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/tags/c/best-of/2024#items","numberOfItems":25,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/draw-is-now-open-source-jkhnddcbu","name":"Draw! is now Open Source"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/end-the-war-once-and-for-all-c-or-rust-l9e9ke6rl","name":"End the war once and for all: C++ or Rust"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/how-to-make-games-in-c-from-0-experience--ejh0fwjvv","name":"How to make games in C++ from 0 experience!"},{"@type":"ListItem","position":4,"url":"https://daily.dev/posts/ep110-top-5-strategies-to-reduce-latency-0pdlu9zw6","name":"EP110: Top 5 Strategies to Reduce Latency"},{"@type":"ListItem","position":5,"url":"https://daily.dev/posts/7-open-source-projects-you-should-know---c-edition--ny42knq91","name":"7 Open Source Projects You Should Know - C Edition ✔️"},{"@type":"ListItem","position":6,"url":"https://daily.dev/posts/be-careful-with-primary-constructors-in-c--nzftixfrz","name":"Be Careful with Primary Constructors in C#"},{"@type":"ListItem","position":7,"url":"https://daily.dev/posts/shadps4-emu-shadps4-ps4-emulator-for-windows-linux-macos-vgm16hwb6","name":"shadps4-emu/shadPS4: PS4 emulator for Windows,Linux,MacOS"},{"@type":"ListItem","position":8,"url":"https://daily.dev/posts/it-s-not-hard-to-make-games-in-c--phcbr62t0","name":"It's not hard to make games in C++"},{"@type":"ListItem","position":9,"url":"https://daily.dev/posts/ep105-the-12-factor-app-s270iz3xr","name":"EP105: The 12 Factor App"},{"@type":"ListItem","position":10,"url":"https://daily.dev/posts/how-to-become-a-game-developer--mevxpniqa","name":"How to become a Game Developer?"},{"@type":"ListItem","position":11,"url":"https://daily.dev/posts/the-two-factions-of-c--pjsulgxf6","name":"The two factions of C++"},{"@type":"ListItem","position":12,"url":"https://daily.dev/posts/nvidia-cuda-in-100-seconds-lvkgfy7zt","name":"Nvidia CUDA in 100 Seconds"},{"@type":"ListItem","position":13,"url":"https://daily.dev/posts/understanding-c-8-default-interface-methods-raqyowuyw","name":"Understanding C# 8 default interface methods"},{"@type":"ListItem","position":14,"url":"https://daily.dev/posts/writing-gui-apps-for-windows-is-painful-q1ttz7nwb","name":"Writing GUI apps for Windows is painful"},{"@type":"ListItem","position":15,"url":"https://daily.dev/posts/creating-a-real-time-physics-engine-with-c--9q4zahqzn","name":"Creating a Real-Time Physics Engine with C++"},{"@type":"ListItem","position":16,"url":"https://daily.dev/posts/learn-c-programming-kenbqwpj0","name":"Learn C# Programming"},{"@type":"ListItem","position":17,"url":"https://daily.dev/posts/how-to-code-with-ai-svhwianjw","name":"How to Code with AI"},{"@type":"ListItem","position":18,"url":"https://daily.dev/posts/under-the-hood---one-of-the-best-resource--cvy87m5ha","name":"Under the Hood - 💯 One of the best resource 📖"},{"@type":"ListItem","position":19,"url":"https://daily.dev/posts/forget-controllers-and-minimal-apis-in-net--eozt8nyjp","name":"Forget Controllers and Minimal APIs in .NET!"},{"@type":"ListItem","position":20,"url":"https://daily.dev/posts/kate-a-refreshing-open-source-code-editor-to-replace-boring-options-fzblpwzgh","name":"Kate: A Refreshing Open-Source Code Editor to Replace Boring Options"},{"@type":"ListItem","position":21,"url":"https://daily.dev/posts/writing-a-game-the-hard-way---from-scratch-using-c-1-yp8zyxlsq","name":"Writing a game the hard way - from scratch using C. #1"},{"@type":"ListItem","position":22,"url":"https://daily.dev/posts/legendary-programmers-5o3voekow","name":"Legendary Programmers"},{"@type":"ListItem","position":23,"url":"https://daily.dev/posts/don-t-use-uuids-guids-in-databases-use-this-instead-057dsxa5h","name":"Don’t Use UUIDs/GUIDs in Databases. Use this Instead"},{"@type":"ListItem","position":24,"url":"https://daily.dev/posts/dear-beginners-please-learn-to-use-the-debugger--mu1eqe6np","name":"Dear Beginners, Please Learn to use the DEBUGGER!"},{"@type":"ListItem","position":25,"url":"https://daily.dev/posts/release-candidate-godot-4-3-rc-1-djqljxxwn","name":"Release candidate: Godot 4.3 RC 1"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Tags","item":"https://daily.dev/tags"},{"@type":"ListItem","position":3,"name":"C Programming","item":"https://daily.dev/tags/c"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/tags/c/best-of"},{"@type":"ListItem","position":5,"name":"2024"}]}]}
```

