I'm new to programming and computer science, and I'm a bit overwhelmed figuring out how to study math effectively to enhance my skills in this area. I know that various fields approach math differently—pure mathematicians might focus on proofs, physicists might apply math to modeling, but what about us in the tech world? What's the most productive way to approach math for programming?
Are there specific math topics like discrete math, logic, or linear algebra that I should prioritize? Should I concentrate on understanding mathematical concepts in-depth or more on applying them through coding? Also, how important are proofs if I want to be a skilled software engineer? I'd love to hear from seasoned programmers about how they tackled math to improve their programming skills.
5 Answers
For the first couple of years, approach math like pure mathematicians do. This foundational method will help if you're considering diving into Theoretical Computer Science.
Take a look at the OSSU CS project on GitHub. They have math courses tied to the CS curriculum that would be perfect for you to explore.
My approach? I usually grab a complicated research book that’s way above my head. I spend a few months struggling through it, and eventually, I start to make sense of it. Not the best method, but I feel like I learn a lot quickly. Also, understanding bits, binary arithmetic, and powers of two is crucial if you're working on performance-related tasks.
Check out the **FAQ** for helpful links to OSSU Computer Science and TeachYourselfCS. Those resources lay out math curricula that are really useful for your studies.
You should definitely focus on linear algebra and discrete math since they're super relevant to programming. If you get into machine learning later, a bit of calculus (including multivariable calculus) wouldn’t hurt either. While these aren’t strictly necessary, being familiar with them can give you an edge, especially if you're pursuing a CS degree.
Regarding proofs, I suggest getting into them as much as you can. They parallel the logical thinking required in programming, which is a big plus. Personally, I like to learn by grasping the theory first and then moving on to practice. Understanding both is crucial, since knowing the theory without being able to apply it isn't very useful, and vice versa.
That's a solid tip! I love the idea of learning all that content for free on GitHub. Seems like a great way to build knowledge without breaking the bank.