In no particular order, a list of things that I found helpful in learning the
things I know today. Hopefully, somebody else may find them useful in their own
- Unicode and character sets. This is, like, super important.
- Comparing Floating Point Numbers. This article series was pivotal in
me learning what floating point numbers even are, let alone how to compare
- Beej’s Guide to Network Programming. A truly wonderful resource for
learning networking. It’s based on C, but the Socket API is pretty consistent
everywhere (especially in Python).
- Intro to MIPS Assembly. Although I later learned this in EECS 314
(Computer Architecture), I first learned MIPS assembly from this great guide.
- Implementing Regular Expressions: A series of articles by Russ Cox. I
consider this to be some of the best practical information out there about
implementing regular expressions, that is still firmly rooted in theory.
- Python Challenge. This is an excellent puzzle/riddle set for
- TI-Basic Developer. At one point, this was one of my main
programming resources! Of course, it was for a graphing calculator.
- The Lost Art of Structure Packing. A really useful overview of how
the C compiler lays out variables in memory.
- Things Every Hacker Once Knew. Some really fun insights into the
history of why things are the way they are now.
- Eudyptula Challenge. The challenge is now closed. I got in just
under the wire. Hopefully it will reopen some day.
- Anatomy of a Program in Memory. This is the first in a series of
articles describing how modern operating systems manage memory, at a fairly
detailed level. Very useful.
Somewhat related, The Beginner’s Creed is an excellent attitude we
all should have when learning new things. Learning is the most exciting thing we
do in life, and we should never be afraid of being a beginner.
Some books I recommend:
I’ve developed a real appreciation for blogging, both writing my own and reading
those of my friends. So here is a
whole directory of blogs from my friends
at HacSoc you should check out!