Beginner Programming Resources By Edward Willis (gopher://encw.xyz and http://encw.xyz) Published Aug/16/2024 I love programming books, including beginner books. I'm not a beginner, but I still love to read them anyway for their differences in pedagogy. I also enjoy the sense of nostalgia. Writers of beginner books often seem so excited and proud to be someone's introduction to programming, and they try to impart their enthusiasm. Anyway, here is my list of programming books for the new programmer, those desiring a refresher, or those simply looking for something new to read. I had for a long time considered C the best first programming language for a new programmer. But now I think that the best language to start with is actually assembly language itself. Rather than explain why I don't suggest Python or JS or any super high level language in my own words, I offer this excellent piece: https://www.evanmiller.org/you-cant-dig-upwards.html I'd say start with the excellent Programming From the Ground Up by Jonathan Bartlett. Fortunately it is available for free as a PDF. If you want to buy a physical copy, try to get the purple cover version, as that is the version the author publishes himself and therefore sees money from. Also The Personal Computer from the Inside Out by Murray Sargent III and Richard L. Shoemaker, and Assembly Language Step by Step by Jeff Duntemann. Buy all three books and read them concurrently for best effect. They each include things the other's miss, and with the differences in their pedagogy, and how your brain absorbs information, you will be less likely to get stuck. If you are a senior programmer who still hasn't slayed the dragon of imposter syndrome, then learning assembly language is a good way to gain confidence. Buy these books and kick that dragon's ass. If you have trouble with the above method, take a step back and work on your C skills, and then go back to x86 assembly. Or you could tackle something like 6502 assembly. I think every programmer should own a copy of K&R C. Remember to get the second edition! Of course, it is mandatory that a programmer own a copy of Introduction to Algorithms. This book is expensive at more than $100. But again, mandatory, so just buy it. Practical C Programming, by Steve Oualline is a great book for developing good practices and style. The Practice of Programming by Brian W. Kernighan and Rob Pike. Kernighan is the K in K&R C. Hacking: The Art of Exploitation by Jon Erickson. Do you want a book that is really about hacking, rather than about metaspoilt or some other tool? Then this is the book for you. But that's not all, not nearly. It is also a great book for programmers. I can't miss out on mentioning Michael Abrash's Graphics Programming Black Book. https://github.com/jagregory/abrash-black-book It is available for free here luckily, as a physical copy is very, very expensive. Abrash was there with Carmack at id in the early 90s, so he knows a thing or two about optimization! Of course there are other books I could recommend for more specialized endeavors, but this is a great jumping off point. If you've read these books, and written code to apply what you've learned, you'll be a good programmer indeed. There are actually some GREAT programming video games out there that are enjoyable AND educational! First up: Human Resource Machine. This game has you given an input, and having to write what is essentially assembly code to compute a desired output. Lots of fun, starts slow and is a great introduction to assembly principles. TIS-100 is a unique emulated computer system with its own assembly-like language. In order to play this game you will literally have to approach it like any new architecture and read the manual. Last but not least, Turing Complete. In this game you start by building simple electronic components, and over the course of the game we are combining what we've made into larger pieces until we've built a fully functional computer, which you can then program.