What are your favorit programming related papers?

Hello everyone,

Can you share what are the programming related papers you think young ones should read? Any kind of subject (computer/programming related) is very much appreciated. If there are math skills required for one to understand the paper that's fine, but overcomplicated writing is not so welcome. In other words, tell us what are accessible great papers that you recommend young folks to read, even if they must learn something before it (like calculus or something), in that case a list of the skills necessary for a complete understanding is very valuable.

(I will not be replying to every answer, my hope is that this topic can become a good list for people to use as reference/guide).

Hi,

Years before I encountered Handmade Hero, actually right after I went out of college (~2012), I encountered this presentation that introduced me to Data-Oriented Programming: http://harmful.cat-v.org/software/OO_programming/_pdf/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf

At the time I didn't understand everything that was going on, but I somehow knew it was something important and that I should keep this paper in mind :p I guess to be more comfortable with this paper you should know roughly how CPUs and their caches work. It was written with the PS3 in mind, but I think it should still be mostly relevant for modern CPUs.

(By the way, this one was referenced in the Library in the previous version of the handmade.network website, it should be available again when the Library comes back.)

gingerBill's article about relative pointers, which are a great way to flat-load structures that contain pointers:

https://www.gingerbill.org/article/2020/05/17/relative-pointers/

Intel's Floating Point Reference Sheet:

https://www.intel.com/content/dam/develop/external/us/en/documents/floating-point-reference-sheet-v2-13.pdf

As I said, when the library comes back, a bunch of interesting papers are going to be accessible again, maybe all of these were already part of it. In the meantime, you can also find a lot of interesting stuff in the Discord's #Library channel.

I guess none of these can be called "papers", but papers per se are often written as one abstraction away from "actual" programming so I have a hard time recommending them as I struggle myself to use them as reference :p