A collection of resources useful for learning programming
A talk by Larry Wall about the kinds of qualities a programmer should have, and why Hobbits would make good programmers.
An interesting blog post providing advice to new programmers.
Advice about how to tackle programming problems.
Beginners should read this and take it to heart.
Experienced programmers should find themselves nodding along in agreement.
Normally I'm against numbered list articles because they're typically heinous clickbait,
but I found myself agreeing with these items, so I've approved it.
Binary and hexadecimal explained simply.
A Youtube video by '3Blue1Brown' demonstrating how knowledge of binary can allow you to count to 1023 (210-1) using two hands.
The piano music is pretty annoying, you might want to mute the video while watching.
Counting in binary on your hands is actually pretty difficult, this is here just to demonstrate that it's possible and to get you thinking about binary and its uses, I'm not suggesting that this is something you ought to be able to do.
One of the most common types of versioning systems.
An interesting article about unicode and character encodings.
An interesting article about 'big O notation'.
Justin Abrahms is something of a man after my own heart:
Big-O notation used to be a really scary concept for me. I thought this is how "real" programmers talked about their code. It was all the more scary because the academic descriptions (such as Wikipedia) made very little sense to me. This is frustrating because the underlying concepts aren't actually that hard.
Another 'big O notation' article with diagrams.
A discussion of various interpolation methods by Paul Bourke.
Interpolation functions are an incredbily useful tool in any programmer's toolkit.
They can be used to transform discrete data into continuous data in a variety of ways.
An online book discussing how to implement various different kinds of collision detection, by Jeff Thompson.
Covers both the more comon kinds of collision and some more obscure kinds.
A kind of fixed-sized queue commonly used when memory is severely constrained.
These data structures are particularly obscure. You aren't likely to need to know about them, but I'm listing them here because they're interesting and have some particularly niche applications.
A data structure used for traversing sequences that's popular in purely functional languages.
Represents a series of edits performed on a text document.