How Much Math Do You Need To Program? – Dev Leader Weekly 41
TL; DR:
There’s FREE stuff here!
Some people use tons of math
There’s a philosophical debate about math
Others *NEVER* use math, or so they say
I’ll be hosting a live Ask Me Anything stream on Monday, April 29th at 9:30 PM PST
First Off, We Need To Talk…
Two newsletters ago I tried giving away Architecting ASP.NET Core Applications (affiliate link) to a lucky subscriber. I have contacted 5 people now and nobody has responded — I want to make good on my giveaways but folks make it *very* difficult to give away free stuff if you don’t reply to emails! So if you want this book, the first person that’s following me on Twitter and messages “I’d like this book” will be the new winner. At least this way I know you’re going to reply for shipping information!
Next, because I like giving stuff away because you’re all awesome: Time for another DotUltimate 1 year license! Simply visit the link below and you can earn entries to win a free 1 year license with no strings attached! Once you have enough points, enter the draw!
The best part is, if you don’t win this time around, you can always use your points for a future giveaway. So far I’ve given away multiple books from PACKT and several dotUltimate licenses — more to come.
What’s In This Issue
Handle Exceptions Like a BOSS – Try Catch Finally and Disposable in C#
Startups vs Big Tech – Principal Software Engineering Manager AMA
How to Use Conditional Breakpoints to Debug in Visual Studio
Software Engineering, Big Tech, and Agile – Interview With Jade Wilson
How to Convert a String to Byte Array in C#: Encoding and Decoding Simplified
How Much Math Do You Need to Program?
I try to support as many aspiring software engineers as I can, and that means trying to lower barriers for folks who want to get into the industry. A common thing I hear is people self-sabotaging that they aren’t good at math and therefore can’t even consider becoming a programmer.
I have strong opinions about this, which is why I made a free mini-course to introduce people to the idea of building software. But I figured I’d take to Twitter and get the opinion of the Internet!
You can check out the tweet here.
Yes, You Need Math to Program!
One group of people that responded to this tweet came outright and said things like “I use algebra in programming” or “I need to know how to do statistics”. They’d mention a specific aspect of mathematics that they were regularly using for their software development.
At first sight, I find this odd because I’m trying to think of these specific math use cases they’re calling out. Why is it that someone needs to understand vector math when they’re programming? I certainly don’t touch any kind of vector math when I’m building systems…
But the answer is kind of obvious if you think about it: The domain that these people are building for requires math.
The more I poked back at these people, the more it became clear. “What sorts of things are you building?” or “What kind of software are you developing that requires calculus”?
Folks were generally happy to elaborate. They shared things like:
They’re working on financial applications
Building data analysis systems
Machine learning systems
Game engines and game design
Graphics
… All sorts of things that need math to be able to do. So far, these answers don’t indicate that math is required for programming in general, but certainly if you wanted to do things in these particular spaces you’d need math. I mean, imagine building financial applications without knowing much math. Probably not a fun time.
EVERYTHING Is Math! Sort Of…
This next group of people was interesting. More often than not, these sorts of people reply because they have a problem with the question in the first place. If you spend enough time on social media, you’ll see this kind of pattern. Instead of answering yes or no, or giving an example for or against what’s being proposed, they focus primarily on dismissing the question as being correct in the first place.
Not everyone was like this — but that’s generally the sentiment I get for this camp. Still, the responses are helpful to go through.
For example, there were claims that programming is math, therefore you must know math to program. Or that because programming is boolean logic and boolean logic can be represented mathematically, therefore you must know math to program.
In one particular case, I tried to clarify that maybe my question could be improved as the point was if you’re consciously thinking about math when writing code. The response was that mathematicians don’t think about math concepts when doing math. So at some point, I just give up on the conversations.
A few interesting things came up though for folks that were willing to have a constructive conversation: algorithmic thinking and logic seem to be a very common element between the two.
So interestingly, it seems like having strong math skills can help improve your logical and algorithmic thinking. As a result, your programming abilities are improved. So this seems to suggest it’s not that math is required, but math can help improve a core skill that you rely on when programming.
And Everyone Else Says…
An overwhelming amount of:
Zero
None
0%
Never
Not once in X years
Counting
Maybe grade 5 math
There were SO many people that straight up said that they don’t do ANY math when they are programming aside from essentially counting. That is, there could be trivial math involved, but none of these people are even considering if there’s math in front of them when writing code.
This was also alongside other responses where people would state they had terrible math skills. Or, for example, if they needed math to program they would have failed a long time ago.
There was absolutely no doubt that the number of people who don’t even think about math was the majority.
Closing Thoughts on How Much Math Do You Need to Program
So, what are my thoughts:
You don’t need math to program unless you want to program things in a domain that requires math. With that said, there are skills you learn as you become better at math that HELP with your technical programming skills, but doing math to gain those skills is not necessary.
I am in the camp of people who never think about math when programming. The only time it comes up for me is when I need to acquire statistics of things — but that’s because the domain is data analysis. And you can bet for anything remotely complex I am right on the Internet searching for answers.
If you are concerned about math skills for software engineering, I can tell you confidently that your ability to problem solve and your communication skills are significantly more important. If you love doing math though, you might find an interesting overlap in the algorithmic thinking!
Join me and other software engineers in the private Discord community!
All of my weekly vlogs are now on YouTube which are accessible via membership!
Remember to check out my courses, including this awesome discounted bundle for C# developers:
Weekly Recap
Handle Exceptions Like a BOSS – Try Catch Finally and Disposable in C#
Exception handling is an important part of programming, and in C# in particular. We have try catch in C# to help us with being able to catch exceptions, but we can take it a step further with try catch finally!
The finally block is often used for helping run clean up code. It wouldn’t be fair to make this video without mentioning another related pattern that we have, and that’s the dispose pattern using IDisposable in C#!
Startups vs Big Tech – Principal Software Engineering Manager AMA
This is an AMA livestream! Come with your questions about programming, software engineering, career progression, etc… Happy to help share my experiences and insights!
Today we focus on: Startups vs Big Tech!
How to Use Conditional Breakpoints to Debug in Visual Studio
If you’re writing C# code in Visual Studio and you’re still debugging with Console.WriteLine, then this video is for you! Well, let’s be serious — many of us go back to writing to the console because it’s convenient… But if we got to know Visual Studio better we’d see these super handy features!
In this video, I’ll guide you through how to use conditional breakpoints when debugging your code in Visual Studio. I can’t promise you’ll stop writing to the console, but hopefully this helps make debugging easier!
Software Engineering, Big Tech, and Agile – Interview With Jade Wilson
I was joined by
in this video interview! Jade is not only a senior software engineer at Microsoft, but a successful content creator. When we got to talking, it was really cool to hear that we have very different experiences with how our teams approach building software:– My teams go through a pseudo-agile / waterfall hybrid (i.e. we try to be agile but commitments are done on larger horizons)
– Jade gets to work DIRECTLY with customers quite regularly
A huge takeaway from Jade in this video was that it’s *NOT* just about picking Scrum or Kanban… The entire point is to find things that work well for your team. Copy+pasting some process and blindly following it without adapting things is probably not going to be ideal.
Thanks for the awesome chat, Jade!
Your Software Will Crash And Burn – The Primeagen Says So!
The Primeagen makes the claim that you need to practice building software and fail at it to learn how to do it properly. He also says you should expect that your software is eventually going to crash and burn, or you’ll need to rewrite it.
How do I feel about all of this? Is there any truth to such a BOLD claim?! Can’t we just refactor our way out of everything? Haven’t we learned how to overcome this yet after decades of software engineering?!
This is my review of Prime’s stance on this. Enjoy!
How to Convert a String to Byte Array in C#: Encoding and Decoding Simplified
Learn how to effectively convert a string to a byte array in C#! While it might seem straightforward on the surface, we have encodings to consider!
Try Catch in C#: The Basics You Need to Know
Learn how exception handling works in C# with the basics of try catch. This article is perfect for junior software engineers aiming to understand dotnet and C#.
MudBlazor with Blazor SSR – What You Need To Know
Learn how to use MudBlazor with Blazor SSR! Blazor’s Server Side Rendering can be used alongside this awesome control library for building your next Blazor app!
As always, thanks so much for your support! I hope you enjoyed this issue, and I’ll see you next week.
Nick “Dev Leader” Cosentino
social@devleader.ca
Socials:
– Blog
– Dev Leader YouTube
– Follow on LinkedIn
– Dev Leader Instagram