Started the day flipping through Mathematics for Computer Science (amazing old link here — it has the very incredible “What is a Proof?” introduction to Chapter one; a more recent iteration of MfCS is here). It was mentioned by the Coursera algorithms course I’m trying out, so, hey! I have indeed already been lost by some of the math stuff in CLRS, so it seems like having a concise-ish reference on hand will be…handy.
Really, all this algorithms stuff seems to be a knowledge rabbit hole. “But I need to learn more math!” I hear myself say. I took calculus in high school (it was fine, and then it was a disaster), and then again after I dropped out of college because it seemed like fun (hello, I was raised by engineers!), and then…that was a very, very long time ago at this point. I ran into trouble trying to use my phone calculator to compute logs of things yesterday. So. Fortunately I know some excellent math nerds, and now I have actual things to ask them about.
Also! Do you love algorithms, too? Or would you maybe like to? Maybe you would just like to “Netflix and chill” with some algorithms. The animated (i.e. lively, not a cartoon) lecturer of this Coursera course has some recommendations, which I’ll share here for fun.
Aside from the Eric Lehman and Tom Leighton document, there are also books! The instructor gives his four favorite algorithms books, the second and fourth of which are available for free (!) online:
- Kleinberg/Tardos, Algorithm Design, 2005.
- Dasgupta/Papadimitriou/Vazirani, Algorithms, 2006.
- Cormen/Leiserson/Rivest/Stein, Introduction to Algorithms, 2009 (3rd edition).
- Mehlhorn/Sanders, Data Structures and Algorithms: The Basic Toolbox, 2008.
Also there’s a brief “you may be rusty on this stuff” explanation of log base 2, which is just, like, plug a number
n into your calculator, then divide by two. Then keep dividing by two until the number is smaller than one. And the number of times you needed to do that is the log. WHAT. Awesome.
Trying to learn stuff and immediately apply it is still kind of terrifying. Maybe just with Postgres.
Also I had a way shorter afternoon than I intended, because I ended up going into the Apple Store to get my phone fixed. (There’s this thing with some early iPhone 5s, and I do indeed have a very early iPhone 5, and the sleep/wake button on top stops working, and it’s…not great. The fix requires sending the phone away, where they have to take EVERYTHING out, and you have to wipe your phone beforehand, so you have to have a recent backup, which I did not when I first went in in June.) The wait was especially long, I went to the library nearby and tried to study a bit, there was a really distracting dude nearby…and then Apple texted me to head back.
Here’s a fun fact: I got the iPhone 5 when it was new, to replace the iPhone 3 my dad had given me when he was fed up with it (I had no smartphone). Know when the 5 came out? A little over three years ago. Know how long this warranty fix is good for the faulty button? …Three years. So I was toast.
Fortunately, I had YET ANOTHER experience at an Apple Store where the people helping me intuitively understood the right thing to do (<3 to Erika/Erica and Mark, who modeled really good mentorship interactions during this whole thing). They found the note from when I came in early this summer, and they got a manager to sign off on…just swapping my phone out (!).
Anyway so I have a phone that just, like, works now.
This took forever, though, and I didn’t fancy studying til 7. Back to it Monday, then.