Win a copy of AWS Security this week in the Cloud/Virtualization forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Paul Clapham
  • Jeanne Boyarsky
  • Junilu Lacar
  • Henry Wong
Sheriffs:
  • Ron McLeod
  • Devaka Cooray
  • Tim Cooke
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Frits Walraven
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • salvin francis
  • fred rosenberger

How important is math for software engineering, and does it help in problem solving?

 
Greenhorn
Posts: 1
2
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm well aware that you can learn programming, data science, etc... without being good at math, but one thing I always keep hearing is that; the better you are with math concepts, the better your problem-solving skills become. Seeing how many things in programming derives from concepts in math (functions, vectors, matrices, etc...), do you believe having a strong foundation in math would help someone in this type of field?

I'm asking this because I'm in a bit of a tough situation right now. I'm looking to enter college this year and I have only 3.5 months left to prepare for the entrance exam.

The entrance exam is 10 math questions, and let me tell you that my knowledge in math is really, really bad (something like 7th or 8th grade perhaps)

While I think that I have enough time to prepare myself for the exam, I think that the only way for me to pass it would be through rote learning. So I'm in a bit of a pickle where I can choose to either pause this year and study math properly to establish a good foundation, or I can go with the plan right now, enter college sooner and not 'waste' a year.

I've heard a lot that having a good foundation in math is beneficial in software engineering, so I would like to know based on the replies I get what course of action I should take.

As I matured, I began to find math actually very interesting, and it's a science which I would love to study properly, to help me in "abstract thinking" and improve my problem-solving skills, because if I'm looking to be a software engineer, I may as well give it my best, so I hope it would help. However, if I take the entrance exam this year, it'll be as I said, through rote learning. I won't be able to quite understand all the concepts clearly, but at least I won't need to wait another year just to enter college.

I really want to hear your opinions on this, how much beneficial is math for software engineers? Does having a strong foundation lead to better problem-solving? If two programmers were assigned a task and both of them have spent an equal amount of time (let's say 10k hours) practicing programmers, but one has better math knowledge than the other, would that person be able to produce a better/faster solution than the other guy?

A slightly off-topic question I'd like to ask is: As someone who is 25 years old, am I old to enter college? I never knew what I wanted to do in life, so after graduating high school, I never planned which college I would go to, but now that I know, I think I'll feel awkward being the oldest guy in the class :\
 
Marshal
Posts: 25598
69
Eclipse IDE Firefox Browser MySQL Database
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You may think I'm not the right person to be answering this, because I have a math degree which I got before I was as old as you are now. But after I got that degree I went into programming, and I've been doing that ever since. So I do have a point of view.

Since I've been in programming I have used basically none of my math skills. Not even vectors and matrices. The vast majority of programming doesn't need anything that advanced. It's done in service of the requirements of companies and other organizations, and mostly you need to know addition and subtraction and which of them to do when. One of the hardest concepts I came up against was the difference between markup percentage and gross profit percentage and how to convert between the two, and that's something that uses maybe 7th grade math.

Sure, it's not all like that. Do you remember the picture of our galaxy's central black hole which was all over the news a couple of months ago? Now that was a project which used some real heavy-duty math to take a huge amount of data and convert it into that picture. General relativity is tough. And so is writing code which doesn't take months to go through a petabyte of data. So yeah, if you get into scientific endeavours like that, you need math. But like I said, that's a small niche in the programming world.

So my point of view is, you don't need more than basic math for most of the programming that's being done today. But you do need enough confidence that when you see something which looks a bit less elementary, you don't freeze or panic.

But you've got this entrance exam to pass. So you should focus on that. A lot of places have the sort of requirements where people have to pass courses which aren't going to be useful in their later career, I've seen that a lot. I don't really know what that's for, maybe it's just there because it's always been there. Or maybe it's for the purpose of weeding out the people at the back of the pack. But anyway, yes, focus on that exam because it's your ticket to the next phase.

As for skills you need, you mentioned problem-solving. Yes, that's one of them. And to be a good programmer you need to have an analytic point of view. (Mathematicians need that too.) So when you're writing code you have questions like "What is this code for? What tools do I have that I can use to write it? Do we have other code already which I can use? Who is going to use it?" And so on. A math theorem is like a computer program, but the theorem is harder because it's explaining something which nobody knew before. The program is going to be something which a lot of people have done similar things before.

And, are you too old to start college? No, "mature student" is definitely a thing. It's not like you're going to be a 50-year-old in a class with all those youngsters anyway.

 
Marshal
Posts: 69529
277
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch

What an interesting question

Like Paul, I am surprised by how little of programming actually involves number‑crunching. But I agree about the analytical skills. No, you are by no means too old to go to College; you are half the age I was, when going for my programming degree.
You might find that the entrance exam doesn't test your analytical skills at all, but you will still have to pass it.

Adding you to other fora so as to get you the most attention.
 
Ranch Hand
Posts: 102
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Jackie Rickinson and welcome to CodeRunch!
I am actually a college student, become 25 this year and I am also interested in topic question, since I have had troubles with math in high school. So I can understand you perfect.
First you need to know from my experience, college math is extremely hard and abstract beginning from 1 semester.
I started 2018 with applied computer science degree (it was easiest option without any entrance exams), until now I did not pass any math exam.
To be honest, it was not my plan, because I was interested  in better math knowledge and went to all needed lectures and tried to make all home works.
But the problem was that I was not really motivated to learn it all the day, because it does not really make fun to learn it while not understanding how does mathematical proof works.
I also have had programming lectures which were more interesting for me and needed also much time to understand.
Now since 3 semester I changed from CS degree to BI (business informatics) degree, because there I will have less further high mathematics and instead more interesting economics lectures,
while still having enough IT lectures to be able to improve the best software developing foundation. (maybe even more, here I will learn about IT management)
Since you ask about software engineering, I think that BI degree is better than CS (Software engineering is a direct sub-field of engineering and has an overlap with computer science and management science.)
In my opinion, further math (which you learn in CS degree) is not required for most cases in IT career. It will take also A LOT of time to improving "strong foundation", and since you say you have bad knowledge, it will be extremely hard work for next ~2 years or even impossible because you will fast become demotivated. Do not think about if somebody with better math knowledge will be better as you, it is wrong. You might be better as him in other things, if you did other courses, for example business. And being a boss for this person. Check if there are other possibilities to study with less math.
You are definitely not old to enter college, since you do not to waste your time with further math      
 
Bartender
Posts: 3959
155
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Jackie Rickinson wrote:(..)but now that I know, I think I'll feel awkward being the oldest guy in the class :\


I was 29 when I went to Uni. I remember doing my first exam Statistics, drawing red and whilte balls from an urn, amid many 18-year olds who just came from highschool... You feel like granddad, but in the end you survive.
 
Saloon Keeper
Posts: 22137
151
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Interesting timing, since I just read that recent studies have indicated that language skills are a better indicator of success than math skills.

I've had people pompously declare to me that you had to know calculus inside and out just to program in BASIC. In actual fact, the only college course I've ever failed was calculus 3 - because it required heavy use of trigonometric identities and I had completely forgotten that such as thing as "trigonometric identitites" even existed. Since the last time I encountered them was in high school. It's worth noting, however, that the concepts taught in that course, and specifically mathematical series are at the heart of both the creation of almost all computer math libraries and the optimization of the algorithms in those libraries. So without someone knowing that stuff, I'd not have ready access to sine, cosine, log, exponent and related canned functions, which I have used on occasion. I do more math than many developers, however. You can pretty much get by with simple arithmetic in a lot of straight business programming.

But before I denigrate math skills as essentially useless for programmers, I'd like to point out that "mathematics" is a very broad discipline and a lot of it has to do with symbolic operations, not basic arithmetic. Calculus is a prime example, although so is algebra. And I do think that just about anyone who wants to develop any type of program needs strong algebra skills.

Another mathematical discipline that I encourage is that of symbolic logic and the Calculus of Propositions. You may know Lewis Carroll from "Alice in Wonderland", but in his rôle as Professor Charles Lutwidge Dodgson, he published some very entertaining books on logic. In fact, legend has it that Queen Victoria was so enchanted by the Alice works that she demanded to be given copies of all of "Carroll"s work. So that was a jolt to Her Majesty.

What should language skills be so important? Because all languages have rules (making them, in effect, mathematical systems, albeit very quirky ones). If you are multi-lingual, you become sensitized to the fact that not all languages follow the same rules. For example English sentences follow a Subject-Verb-Object (SVO) rule. But the Egyptian of King Tut used a Verb-Subject-Object (VSO) pattern (or so the hieroglyphs indicate). English adjectives precede nouns, but in French and Spanish, to name 2, the adjectives follow nouns. And so forth. Knowing that there are rules is half the battle. Knowing how to leverage them is a good deal of the rest.
 
Paul Clapham
Marshal
Posts: 25598
69
Eclipse IDE Firefox Browser MySQL Database
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Mike Savvy wrote:Do not think about if somebody with better math knowledge will be better as you, it is wrong. You might be better as him in other things, if you did other courses, for example business. And being a boss for this person.



Absolutely! Seeing somebody else solve math problems (or write poems or run marathons) with ease can be very stressful, and it can lead to lack of motivation. Try not to let that happen to you -- or rather, try to recognize when it's affecting you and remind yourself to "Keep Calm and Carry On" (as the British posters say).
 
Greenhorn
Posts: 11
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Jackie
I hope that this response is not too late.

Many people think that a profession in computer programming requires a training in mathematics. I believe this is a fallacy. Classical computer programming has little to do with most branches of mathematics, everything to do with logic, thinking clearly and systematically. A general aptitude for language is probably relevant--after all, we call them "computer languages". I have also met several professional software developers who claim that people who are good at computer programming are also talented musicians, and vice versa.

I have a diploma in electrical engineering, and around 40 years of experience in software development: C-language, quite a lot of assembler, a little Fortran. The mathematics I have found to be useful are the following:
- boolean algebra
- binary logic
- arithmetic in various number bases: 10 (decimal), 2 (binary), 16 (hexadecimal)
- truth tables
- De Morgan's Laws
- Karnaugh Map (to design optimum 'if...else' clauses)

Otherwise, if a certain type of mathematics is to be implemented on a computer, naturally one should understand that type of mathematics. Examples are digital signal processing, and so-called big data, i.e.  analysis of large data sets.
 
lowercase baba
Posts: 12858
52
Chrome Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Ralph Kehmeier wrote:Classical computer programming has ...everything to do with logic, thinking clearly and systematically.


Isn't that exactly what maths IS?

Maths is not number crunching any more that playing football is doing jumping jacks.  You do the latter to become better at the former.

I would say that programming is nothing BUT mathematics.  

Now, do you need to know calculus to be a programmer?  probably not.
Statistics?  No.
discrete maths?  again, no.

at least, that's true for most programming.

Would knowing them help?  possibly.  does the process of learning how to do those things help?  Absolutely.  learning and doing them helps exercise your brain the same way jumping jacks exercises your body.

I know a lot of people will disagree with me, but that's ok.  this is why we have discussion.
 
World domination requires a hollowed out volcano with good submarine access. Tiny ads are optional.
Devious Experiments for a Truly Passive Greenhouse!
https://www.kickstarter.com/projects/paulwheaton/greenhouse-1
    Bookmark Topic Watch Topic
  • New Topic