Math for Software Engineering
It’s no secret that I push Math and mathematical thinking a lot.
That is because Math is truly one of the best bases to become a better software engineer. It is a fundamental tool for software engineers, and understanding it is essential to be able to write efficient, reliable, and maintainable code. However, people often struggle to understand what topics to study and how much they should get into.
In this newsletter, I will cover some of the most important math topics for software engineers and explain why they are relevant. This way, you can study these topics, not just for the sake of it, but to develop your skills in becoming a much better developer.
The Math for Software Engineers
- Linear Algebra: Linear algebra deals with linear equations and matrices. It is used in machine learning, computer graphics, cryptography, and many other fields. Understanding linear algebra is essential for implementing algorithms that involve vector and matrix operations. The extent to which you need Linear Algebra changes based on your needs (AI research people will need a lot, but normal SWEs don’t need much). However, the idea of spaces and using matrices to codify transformations are beneficial to all, since it is similar to the principle of chaining functions together in programming. Final Verdict- For most of you, study the basics. It will teach you most of what you need to know.
- Probability and Statistics: Probability and statistics are used to analyze and interpret data. They are essential for machine learning, data analysis, and optimization algorithms. Understanding probability and statistics can help you design better algorithms that make predictions or estimate parameters. However, even none AI folks can benefit from sharpening their probabilistic thinking and learning how to set up experiments/isolate causes. Thus, this is a topic you can study in-depth and still gain a lot from. Final Verdict- Learn about the foundational probs and stats, then focus heavily on the principles of causal inference, graphical probability, and experiment design. Even if you don’t understand the math, the concepts will help you a ton.
- Calculus: Calculus is used to model and analyze continuous systems. It is essential for optimization algorithms, physics simulations, and machine learning. Understanding calculus can help you design algorithms that find optimal solutions to complex problems. However, this is not as make or break in SWE as you would think. Final Verdict- Study till Calc-2. You don’t really need multi-variate calc or advanced differential equations (unless you get into AI). Calc is mostly only useful because it shows up in a lot of other topics.
- Discrete Mathematics: Discrete mathematics deals with discrete structures, such as graphs, networks, and combinatorics. It is essential for algorithms that work with discrete data, such as graph traversal, shortest path, and network flow. Understanding discrete mathematics can help you design efficient algorithms for solving combinatorial problems. This can be a little all over the place, so focusing on the topics you like most will be your best bet. Final Verdict- Useful, but a very broad field. Pick the ideas you are most interested in. A good way to see how different components of computing interact with each other.
- Number Theory: Number theory deals with the properties of numbers and their relationships. It is essential for cryptography, computer security, and hashing algorithms. Understanding number theory can help you design secure algorithms that protect sensitive data. Also makes for some fun puzzles. Final Verdict- Studying number theory is a great way to boost your problem-solving skills.
- Linear Optimization: Linear optimization is a mathematical technique for finding the best solution to a problem with linear constraints. It is essential for optimization problems in operations research, supply chain management, and finance. Understanding linear optimization can help you design efficient algorithms for solving complex optimization problems. Final Verdict- The focus on LO of framing word problems as solvable systems of equations is great practice. I would even argue that this is more important than the actual problem-solving methods you will learn.
- Mathematical Modeling: Mathematical modeling is the process of creating mathematical models of real-world phenomena. It is essential for designing simulations, predicting the behavior of systems, and optimizing processes. Understanding mathematical modeling can help you create accurate and reliable models that can inform decision-making and improve system performance. Final Verdict- Just like LO, the process of setting up your math models is more important than the actual solving procedures. Use it to learn how to formulate abstract business cases as numerical systems.
Depending on what you need, prioritize different topics. If you’d like to figure out what works best for your needs/resources to study them, feel free to reach out to me. We will work together to figure out your ideal game plan.
That is it for this piece. I appreciate your time. As always, if you’re interested in working with me or checking out my other work, my links will be at the end of this email/post. If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here. And if you found value in this write-up, I would appreciate you sharing it with more people. It is word-of-mouth referrals like yours that help me grow.
Save the time, energy, and money you would burn by going through all those videos, courses, products, and ‘coaches’ and easily find all your needs met in one place at ‘Tech Made Simple’! Stay ahead of the curve in AI, software engineering, and the tech industry with expert insights, tips, and resources. 20% off for new subscribers by clicking this link. Subscribe now and simplify your tech journey!
Using this discount will drop the prices-
800 INR (10 USD) → 640 INR (8 USD) per Month
8000 INR (100 USD) → 6400INR (80 USD) per year
Reach out to me
Use the links below to check out my other content, learn more about tutoring, reach out to me about projects, or just to say hi.
If you like my writing, I would really appreciate an anonymous testimonial. You can drop it here.
To help me understand you fill out this survey (anonymous)
Small Snippets about Tech, AI and Machine Learning over here
Check out my other articles on Medium. : https://rb.gy/zn1aiu
My YouTube: https://rb.gy/88iwdd
Reach out to me on LinkedIn. Let’s connect: https://rb.gy/m5ok2y
My Instagram: https://rb.gy/gmvuy9
My Twitter: https://twitter.com/Machine01776819