How does functional programming allow you to avoid reasoning about state? Don't you always have to reason about state, no matter what paradigm you use? Otherwise, how are you going to build anything useful if you're not keeping track of any variables?
Just skimmed the essay and wow, what amazing advice. I totally agree with the whole "figure out what your options are and just pursue what interests you" ordeal, rather than try to figure out exactly what you want to do in 20 years. Thanks so much!
Thank you for the thorough advice! Thing is, I'm interested in so many areas of computer science from low level compiler stuff all the way to machine learning. Hopefully from taking classes, I'll be able to narrow these downs.
[0] http://notational.net