10 scraps of paper are labelled 0 through 9 and tossed into a hat. How many combinations of numbers can you get if you randomly pick 4 scraps of paper from the hat? That's combinatorics. It helps you understand the size of the data sets your code may need to process so that you can choose a reasonable approach.
You need basic algebra and boolean algebra for any code beyond the most simplistic scripting or web hack job. Given the quality of most device drivers, I can believe they were written by people without those skills. If you want to architect a software system that scales, you'll need at least some understanding of linear algebra as well.