Do you need to be good at math to be a Software Engineer?

You already invited:

Tomas

Upvotes from:

Actually writing programs requires the same kind of brain, as required for solving maths problems. Reasoning, Logic, Problem Solving. You might not be good at Mathematics for your lack your interest during your classes, but your interest in programming speaks a lot about your strong interest in Mathematics. Its not about how much mathematics concepts you know but "Is your brain prepared to think like how a math solving guy thinks"

jack

Upvotes from:

As a software engineer, a lot of the logic that you use can be found in back end development. A program follows different sets of rules and conditionals that are set in the back end. This is great for all of the thinkers out there, because it's an excellent opportunity to solve interesting challenges. The nature of my job has me focusing mostly on logic lately, however my last contract was a lot of front-end work. Front end still uses logic, especially when altering the behavior of a web page. JavaScript is a great language for this. I wasn't a fantastic math student in college, but math is logic. Programming is built on logic. I think a lot of people that struggle in academic math don't see the purpose of solving an equation. I sure didn't. But when you're figuring out how to solve a programming problem, you know the purpose. Hope this helps anyone!

Nigel

Upvotes from:

If you want to be an average programmer, then you don't need a math. By that I mean you need to know elementary math. But if you want to be best of the best and elite computer programmer and hacker, then you definitely need to learn math - advanced stuff like linear algebra, statistics and probability, calculus, graph theory, discrete math etc etc. There is a reason why Russian hackers and programmers are best of the best. It's a type of education that they inherited from USSR. Almost all of them has got background in math one way or another. In Russia and other former USSR countries it's a must to learn math/physics in schools. Let's put this way. 50% of your time on computer programming and science and 50% of your time on mathematics. Why would you need this? It's like being a MMA fighter. Your programming skills are footwork, kicking, hitting, jiu-jitsu techiniques, and other stuff that are directly related to the fight what we see in octagon. Now math is like conditioning, diet, work out, cardio and other stuff what we don't see in the fight directly - in octagon. We don't see fighter doing push ups and sit ups during the fight. But it helps to win the fight. The same thing with math in computer science and programming. Computer science logic is based on algorithms. Algorithms is a math. Overall YES - you need to learn math heavily. Plus it's a good feeling when your coworkers don't know math like you do. Feeling of power and dominance. And last thing you write better code. Don't forget to use Linux or MacOS as your main OS. Personally I use Debian, Fedora and Arch. For god's sake, never ever use Windows for development.

Sharun - be myself

Upvotes from:

Embedded software engineers use math all the time :) We design software that is responsible for the control of machines or devices that are not typically thought of as computers, from washing machines and wireless headphones to cars , rockets and satellites. This software is often deployed in microcontrollers without any operating system. Because we operate at a lower level, closer to hardware, it often involves concepts from Electrical Engineering such as the configuration of peripherals like timers and analog to digital converters, as well as signal processing. Signal processing means to manipulate and extract a meaning from physical electrical signals that are provided by external devices or by sensors that measure physical quantities. The result of that processing is used in order to trigger certain desirable actions. Signal processing often involves long chains of regular arithmetic operations such as sums and subtractions of multiple signals at each point in time (this is sometimes carried in matricial form), as well as more complex operations such as filtering and frequency analysis. For this reason most of embedded software engineers have a background in Electrical or Mechanical Engineering , although it's not uncommon to find people from computer science.

Luke

Upvotes from:

I'm a fullstack developer (mostly backend tho, because the UI work i make is only a frame). Post Secondary education wise, math and logic classes are requirements, but if you are not good at math, you can just endure the math classes to get a passing grade and still make it. Programming is pretty much logical thinking + algebra for me. For actual jobs tho, as Mayuko pointed out, it really depends on the application you are working on. My job for example, requires very little actual mathematical problems, and if there are math involved, someone will give me the formula and I will just implement it (because it's usually custom to the business that requested the application, many have their own ways to calculate something). Just choose which area of software development you want to go into according to your own "skillz", I chose this path because I know I won't be doing much actual math.
Also, for people who want to get into software development, don't expect your school to teach you everything you need. Most of the stuff I learned was on the job or as a hobby, and even ran into so many of the problems that I never even thought of before. For example, in school you probably would never learn about git, but on the job it's pretty much a requirement and as a new user, running into merge/rebase/ conflict problems are nightmares. Often than not, reading/learning new stuff on your own is required.
Having that said, I feel like most tech companies are willing to train you for a bit of time as long as you can show them that you can do problem solving and coding logic. The biggest hurdle for me was that I was afraid to go to apply/interviews because I always think that "oh, they are looking for a ruby person", or "oh, they are looking for a JAVA person". However, unless you are applying for some kind of senior position, it's very likely they may just hire you and get you to train to their standards.

If you wanna answer this question please Login or Register