
Eskil Steenberg
8 HN recommenders · recommended in 14 months, 2017–2025
2:11:32 · 1M views · Nov 21, 2016
Eskil Steenberg's two-hour talk on his personal approach to writing C, covering code style, structure, naming, pointers and large-project organization. He warns it contains a fair bit of programming religion.
HN recommends it as the one long programming video worth watching, a provocative and influential take on C.
19 comments from Hacker News
[LINK] If you have lots of time: [LINK] If you can't be bothered reading a whole book: [LINK] Exercises: [LINK] and [LINK] Once you have syntax and basic algorithms down well, watch this, the only 2 hour YouTube video I'll ever recommend: this video Both r/cprogramming and r/C_programming are active, also full of lazy students trying to get people to do their homework. If you come by, describe your problem well with code. Say you're learning for yourself, not for school. Together C & C++ is a good Discord if you prefer live chat: [LINK]
Hi Eskil from Australia :-) I remember you posted that on the page from 40 days ago also hehe. I have too many ideas myself already, so that one wasn't so useful to me, but was interesting. However, I really liked Drama in games [0] and I seriously loved How I Program C [1]. It's been a big influence. Thank you! [0] [LINK] [1] this video
> Once you have syntax and basic algorithms down well, watch this, the only 2 hour YouTube video I'll ever recommend: > this video Hard +1 on this! I think Eskil Steenberg work in C is really top notch - the video is heavily recommended, as is an overview of his work in general, he does some awesome stuff with C.
For what it's worth I think this is an excellent choice. Back in 2019 I was deciding whether I wanted to pursue Zig full-time and one of the upsides that I determined was that once you reach critical mass writing all of your code for tools and things in Zig you end up with things that are really exactly what you need and with a very high baseline for speed, flexibility, and so on. Right now I'm considering the same thing but with Odin and for many of the same reasons that I had for Zig; it's an excellent language to write foundational code in and once you do, you end up being able to build significantly more understandable, reliable, stable and consistent things. This, but on a company level, is a real multiplier. Once you adopt a couple of Python scripts and that's OK, you give up the possibility of wielding this sharp spear. Edit: I think "How I program C" by Eskil Steenberg is an interesting window into what you can get if you laser focus on a language and environment and allow yourself to build up a mountain of code that you dogfood: this video At some point I will likely soft-retire and at that point it's exceedingly unlikely that I'll bother with using other people's libraries except a few key ones that I think are decent, and at that point there really is no reason I'd sit down and write these fundamentals in anything but a lower-level language. Odin, Zig or something like it would pretty much be the only thing on the table.
All code written in C89 Written from scratch, without any dependencies. All operating system interaction is warped and ported. FreeBSD License. -Forge: stdlib with math, text, A*, geometry math, memory debugger and much more. -Imagine: Threads, timing, setting, lib loading. -Betray: Platform layer, with plugin support, VR, Multi-touch, controllers and more. Win32 , Linux and limited MacOS support. -Relinquish: Rendering library, wrapping OpenGL supports and hides a wide range of extensions. -Seduce: 3D UI toolkit, text rendering and editing, fonts, 3D manipulators, cameras. Mouse / multi-touch / multi-user / controller support. -Testify: Networking and serialization. TCP, UDP, Files, NAT Holepunching, local/global service discovery. -Hxa: asset file format, FBX and PNG implementation. Graphics processing. -Json parser. These libraries have been used extensively in software production for all my applications including LOVE, Exo, Stellar, MoF, and Loq Airou (source included). You can find out more about these at: [LINK] . For more on my programing style, and philosophy watch this: this video