The Student Room Group

Do I need Decision/Discrete math in order to be an effective software engineer?

Hello all , specifically to those studying in either computer science , computer engineering , or software engineer.
I'm in a dilemma whether I should learn decision/discrete math or to be specific teach myself it . Reason why teach myself is because I'm currently a first year at computer education institute where they only teach you the practical side of software engineering and nothing theoretical , so far I learned a lot ,such as:
1)Basic programming in C , C++ and python
2)Basic Web development : front-end & backend (sql and django though I taught myself django)
3)Object Oriented programming in Java
and many more .
However though I know I'm very well verse in the above it made me wary whether I'll be able to survive in the field as I see so many videos on youtube saying that "you need to learn data structure and algorithms in order to pass the interview" as well as "you need to understand discrete math in order to understand data structure and algorithms" , like I'm able to use simple search and sorting algorithms like binary search , linear search , bubble sort , but seeing things like asymptotic notation , big O notation , it gets me kinda intimidated, and also worth to know that in my sixth form college we didn't have decision maths.
Sorry if this question has way too much information I just wanna know from person who actually does the job or is in an internship whether it's worth it or not , I'm scared not gonna lie but also I don't wanna waste my time at the same time if I were to teach myself. Thanks :smile:
(edited 4 years ago)
No, you don't need to study maths at all to work as a software engineer, and software engineering isn't about writing algorithms, although being able to write an algorithm is a good test of someone's programming ability and their ability to think computationally, but that's also something which boils down to practice and not something you really need to study in education.

Otherwise it's really about solving problems and building working software - the vast majority of software engineering jobs aren't mathematical at all, but they do require you to be able to confidently think your way around programming problems, understand technology, write "good" code, be able to use a lot of different tools/frameworks, and be able to cope with reading and working with other peoples' code (Other peoples' code is usually difficult to work with).

A mathematical background will only be important matter in a job which implicitly involves solving mathematically-based problems - for example, Financial modelling, AI, Machine Learning or data science. So of course, if you're interested in doing advanced cutting-edge R&D work then a mathematical and academic background is important, otherwise it makes no real difference. Otherwise, the vast majority of Software Engineering jobs out there aren't "R&D", and they aren't working at tech giants like Google/Facebook either.

Most jobs are with small-medium sized companies who have no need for mathematicians, but are very interested in people whose expertise is in computers, technology, programming and problem solving, writing computer systems to solve their real-world business problems and not an esoteric mathematical/algorithmic problem.

In other words, most businesses are interested in building software to work with complicated "business rules", large, complicated sets of data, connecting with other peoples' systems, using APIs, processing files or electronic signals, building apps with a good UI/UX, handling errors and bad data, solving problems related to performance, solving problems related to hardware/software failures, etc.

The kinds of skills you've got at the moment are a great start, and would all look good on your CV! The reason a lot of universities don't teach much theory and focus on practical skills is that those practical skills tend to be far more relevant to employers -- it's great to be able to have a portfolio where you've got skills like web development, use of Git, building web services, using DJango, unit testing, etc. Those should get you a long way in terms of finding a job.
Reply 2
Original post by winterscoming
No, you don't need to study maths at all to work as a software engineer, and software engineering isn't about writing algorithms, although being able to write an algorithm is a good test of someone's programming ability and their ability to think computationally, but that's also something which boils down to practice and not something you really need to study in education.

Otherwise it's really about solving problems and building working software - the vast majority of software engineering jobs aren't mathematical at all, but they do require you to be able to confidently think your way around programming problems, understand technology, write "good" code, be able to use a lot of different tools/frameworks, and be able to cope with reading and working with other peoples' code (Other peoples' code is usually difficult to work with).

A mathematical background will only be important matter in a job which implicitly involves solving mathematically-based problems - for example, Financial modelling, AI, Machine Learning or data science. So of course, if you're interested in doing advanced cutting-edge R&D work then a mathematical and academic background is important, otherwise it makes no real difference. Otherwise, the vast majority of Software Engineering jobs out there aren't "R&D", and they aren't working at tech giants like Google/Facebook either.

Most jobs are with small-medium sized companies who have no need for mathematicians, but are very interested in people whose expertise is in computers, technology, programming and problem solving, writing computer systems to solve their real-world business problems and not an esoteric mathematical/algorithmic problem.

In other words, most businesses are interested in building software to work with complicated "business rules", large, complicated sets of data, connecting with other peoples' systems, using APIs, processing files or electronic signals, building apps with a good UI/UX, handling errors and bad data, solving problems related to performance, solving problems related to hardware/software failures, etc.

The kinds of skills you've got at the moment are a great start, and would all look good on your CV! The reason a lot of universities don't teach much theory and focus on practical skills is that those practical skills tend to be far more relevant to employers -- it's great to be able to have a portfolio where you've got skills like web development, use of Git, building web services, using DJango, unit testing, etc. Those should get you a long way in terms of finding a job.

Thank you so much , I was sort of having like a midlife crisis when here all the jargon about math , thank you so much , now I feel like I have a picture on the things I need to focus on here and the coming years , thank you so much have a good one :smile:

Quick Reply

Latest

Trending

Trending