Here’s a list of some of the books that I’ve been spending some of my spare time reading.
- Java Concurrency in Practice (Brian Goetz et al.)
I’ve certainly had a fair bit of experience with using the java.util.concurrent classes, but not so much with how they actually work. Incidentally as part of the Computing degree I’ve done a few modules that discuss some of the topics (executors, condition-queues, liveness).
- An Introduction to Quantitative Finance (Stephen Blyth)
Computational Finance (though it was one of my weaker modules, clocking in at an 85) didn’t go as far as I would have liked with some of the details (e.g. concerning options and derivatives); even though I don’t plan on directly investing in these apart from workplace compensation it certainly seems like something worth knowing.
- The Intelligent Investor (Benjamin Graham, edited by Jason Zweig)
This one is largely in anticipation of starting full-time work. Investment is necessary for the obvious reason of outpacing inflation, and for the less obvious reason that cash is actually a high-risk investment in that it will almost certainly fall in real value over time.
- Introduction to Algorithms “CLRS” (Thomas H. Cormen et al.)
I’m largely familiar with quite a lot of the material discussed in the book. There are some bits, particularly in the last few sections concerning some of the more random “advanced” topics (e.g. computational geometry) that may be useful for reference. I’m used to coding these from a book in contests, sometimes admittedly without fully understanding how some of the algorithms work (e.g. monotone chain).
- Algorithmic Game Theory (Stanford CS364A) (Tim Roughgarden)
Imperial Computing didn’t really have a course on this, and I didn’t have space in my course load to try Decisions, Risks and Games from Mathematics.
- Lectures on Digital Photography (Marc Levoy)
I inherited my dad’s old camera, and have used it for a number of photos (mainly for events, birthdays etc.) though it would be nice to understand how to use the tools I have better. I have a vague understanding of ISOs, focal lengths, shutter speeds, composition etc. though not so much how to employ them effectively in practice.
Selected Past Reads
- Cracking the Coding Interview (Gayle Laakmann McDowell)
In terms of interview preparation I would see this as the absolute baseline. I first studied this book when preparing for my Google interviews in second year – though it didn’t turn out to be directly relevant I think it did reinforce my understanding of various basic concepts. CLRS has more fancy tricks (which I did employ in some of the programming interviews I had, such as the potential method for algorithm analysis, quick-select etc.) but this certainly gives a good grounding.
- The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin)
I think my technical skills in terms of code, algorithms and design have, at least, seen quite a fair bit of development. However, a part of being a good developer involves one’s behaviour beyond the code as well.
- Effective C++ (Scott Meyers)
I picked this up in second year. I like C++ with its seemingly libertarian approach, letting the user do lots of fancy tricks, though actually I’d say I’m most comfortable with Java. Nonetheless I’ve done several large projects in C++; my internship at Google as well as MCMAS-Dynamic were written in C++. It’s also my go-to language for competitive programming.
- Effective Java (Joshua Bloch)
A pretty good refresher on how to use the various tools and constructs that the language gives. I picked this up in third year during the industrial placement; though many of the lessons were already being learned through code reviews and the like, at various internships and among peers, it was nice to see it outlined a bit more clearly.
- The Millionaire Next Door (Thomas J. Stanley, William Danko)
I’m not sure when or how I figured out that diminishing marginal utility can kick in pretty quickly; very often, I’ve failed to see the value in paying premiums for certain things (there are exceptions, such as my chair and mattress). It was interesting to look at some past data on this.
- The Essays of Warren Buffett: Lessons for Investors and Managers (Lawrence Cunningham)
I tend to bias towards execution and results, and thus would naturally have an interest in looking at what someone who has done very well has done.