Electrical engineering has a lot of mathematics built into it and that's a fact not a lot of people will disagree with. Software development, on the other hand not that much. Or at least that's how I see it.
The reason I'm talking about this is that I saw this post on LinkedIn the other day and it got me thinking about my own personal history with mathematics.
The main discussion is an ever-existent argument on whether you need to be good at maths to do well in the software development field. I'm no scientist on this, but I want to add a little bit of my personal experience to the conversation.
I was a fairly bad mathematics student in school. I almost failed the whole year once or twice because of mathematics and struggled to make even the minimum passing grade in the subject most of my way through school. Later I learned there was more to this than pure aptitude, but that's a whole other conversation.
live stream of me during maths exams in school
I chose computer engineering as a major at university.
"Why on earth?" - you might ask.
And I figured that yes, for a lot of the things I saw in university mathematics made a recurring appearance. There's a catch here though: As a computer engineering major, about half of my classes were in the computer science department and the other half in the electrical engineering one.
I dare say that the vast majority of my CS classes had no maths whatsoever, apart from one assignment or two that involved matrices. Electrical engineering courses were the complete opposite: A lot - and I mean a lot - of mathematics spread all around, to the point where we were under the impression not even people graduating in mathematics went that far in an undergrad setting.
Guess which one of the departments I liked the most.
Going back in time, it might have been a good idea to switch majors. For many reasons that didn't make sense, but that's beside the point. To this day I have only one strong opinion about the whole discussion about mathematics for software developers:
Stop telling kids in school they need to be math geniuses to make it in the software engineering world.
Computer Science is a huge ass field. Thousands of sub-areas with millions of different applications.
Software engineering is a subset of CS and is a whole universe within itself. There are absolutely cases where a software engineer needs to know a lot of maths.
Are you working with recommendation systems? A lot of statistics is involved.
Are you working with GPUs and image processing? For sure a lot of maths there!
There is, however, a multitude of applications where math is almost non-present and they're not less cool or important because of that. Want to do some Ruby? Want to do work on front-end applications? maybe distributed systems? I promise you maths won't be such an integral part of your life. Sure enough - you might find a snippet of it here and there, but not for the majority of the time.
What I actually wanted people to tell kids in school is that there is space for people who like to imagine and build things in a software engineering major or job. Only much later in life did I realize that linguistics is a much better predictor for software development aptitude than maths.
Tolkien was a linguist and wrote one of the nicest works of fiction ever. Just imagine if someone convinced him he shouldn't pursue that.
Doesn't that make a lot of sense?
Programming languages are languages after all. They are born, evolve, grow, and die just the same way human languages do.
This reminds me of that one time when I received a Portuguese exam I had taken a few days earlier. I had an exact 5/10 as a grade. I had zeroed out the grammatical part but made full marks on the literature one. In retrospect, that might have been a sign from the universe. I didn't see it at the time, but maybe you will.
I'm also not saying I'm the absolute best developer ever and haha - I did it without knowing mathematics.
None of those things are true.
Over time I evolved my relationship with the discipline and made my peace with it. We're good friends these days, but I learned that my passions lie elsewhere.
And you know what?
That's fine!
I was able to learn it to the extent I needed it through school and university, and I'm sure that will happen again if I need it in the future.
But it's also good to recognize that my other interests - music, photography, literature, and even software development, among others, are also valid intellectual pursuits. Just because they weren't as valued in school as mathematics and physics, doesn't mean they don't make sense to spend time with.
Another fun fact is that there's a correlation between musicians and software developers. In fact, at a place I worked 28 out of 30 developers were also musicians. Isn't that a better predictor than school grades in mathematics?
This is all to say:
If you're in school or university and you're fabulous at maths, I'm sincerely happy for you! Maths is a fantastic tool to understand the universe and being good at it will surely open a lot of doors for you.
However, today I want to speak to the average ones out there. You know, the ones who aren't so bad that they raise attention from teachers, but who are also not straight-A students.
It's ok.
Figure out whatever it is you like.
Even if it takes time.
Go make that thing a significant part of your life. It'll be worth it, even if someone tells you you shouldn't pursue this or that because apparently, you're not good enough in mathematics to do it.
It's the things that bring you fulfillment and joy that you'll probably stick with for life. If that happens to be maths, great! But if not - there are many other valid, interesting areas to explore and have fun.
Hope you had a nice read and see you at the next one,
Teo.