Hello all,
My goal is to learn some basic math + programming skills as quickly as possible, so that I can read research papers without being tripped up by the math, and because they are by far my weakest skill area at the moment and feel like a bottleneck for me. My plan is to spend 15-25 hours a week on this for the next five months and experiment with what works best.
My background:
- Have not taken a math class since completing Calculus.
- 1 year of intro CS classes only covering C++
These are my current ideas on what I should learn:
- Programming
- Python
- Data Structures + Algorithms
- Machine Learning
- Math
- Statistics / Probability
- Linear Algebra
- Multivariable Calculus
My hypothesis on what would work fastest is to hire a tutor for each of these topics from Bountied Rationality and work through the most highly recommended textbook on each topic (I suspect this would work better for math than for programming). Other than that, the options I’m currently aware of for learning are taking lectures from Coursera, Codecademy, and various coding BootCamps.
My Current Questions:
- What textbooks would you recommend for these topics? (Right now my list is only “Linear Algebra Done Right”)
- What other ideas do folks have for learning these topics that I can experiment with?
- What other topics might I be overlooking?
- What other feedback might you have for me?
Thank you so much!
My advice for math is that it's often possible to think you understand something even if you don't, so it's good to do at least some exercises. Also, the methodology, and general "mathematical maturity" is often what you'll reuse the most in research - being able to reason by following specific allowed/disallowed steps, and knowing that you can understand a claim by reading Wolfram Mathworld, Wikipedia, textbooks, etc. So to some extent it doesn't matter so much what you learn, as that you learn something well. Having said that, the first half of a math textbook tends to be much more useful than the second half - there are diminishing returns in each subfield.
For programming, the same is often true - what you're aiming to get is a general sort of maturity, and comfort with debugging and building programs. So probably you want to mostly read tutorials for initial few weeks, then mostly do a project after that.
In both cases, I agree that a tutor is super-useful for getting unstuck, if you have the luxury of being able to afford one.