×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Ask Slashdot: How Important Is Advanced Math In a CS Degree?

Soulskill posted about a year ago | from the math-is-easy-for-most-people,-they-just-don't-know-it dept.

Education 656

AvailableNickname writes "I am currently pursuing a bachelor's in CompSci and I just spent three hours working on a few differential equations for homework. It is very frustrating because I just don't grok advanced math. I can sort of understand a little bit, but I really don't grok anything beyond long division. But I love computers, and am very good at them. However, nobody in the workforce is even going to glance at my direction without a BSc. And to punish me for going into a field originally developed by mathematicians I need to learn all this crap. If I had understood what I was doing, maybe I wouldn't mind so much. But the double frustration of not understanding it and not understanding why the heck I need to do it is too much. So, how important is it?"

cancel ×
This is a preview of your comment

No Comment Title Entered

Anonymous Coward 1 minute ago

No Comment Entered

656 comments

depends on what you're going into (4, Insightful)

davecotter (1297617) | about a year ago | (#43874521)

if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

Re:depends on what you're going into (5, Insightful)

Cryacin (657549) | about a year ago | (#43874561)

If you're doing quants work, or business intelligence, data mining etc, sure. Hardcore math is a must. If you're developing business software or something like that, it's more important to know Djikstra, the gang of four and closures.

Re:depends on what you're going into (5, Informative)

JBMcB (73720) | about a year ago | (#43874635)

If you're developing business software you're going to need stats. It's inevitably going to rear it's ugly head sooner or later.

Re:depends on what you're going into (5, Informative)

FilmedInNoir (1392323) | about a year ago | (#43874963)

Advanced calculus/linear algebra is a must for game engine development. I try to read articles about rotating 3D objects.... *WHOOSH* over my head. But I've done well for 13 years doing IT client/server programming and just looking up the occasional algorithm for lat/long distance calculations, permutations, etc. Still need to be able to translate math formulae into a computer language though.

Re:depends on what you're going into (4, Insightful)

geekmux (1040042) | about a year ago | (#43874661)

if you're going into app development or IT, probably not much math needed. i've been in app dev for a long time (and quite successful). Those times that i actually need math? I just look it up, program it, then forget it. I never have needed much math. However, if you're going into some CS field that requires math, well, obviously, it's worth your while to study it.

I think that was the point of the query here, exactly what fields remain today that require the level of math that is (rather arcanely) still infused within a CS degree?

I fell into this same trap when initially pursuing my degree. Avoiding all the advance math requirements due to my own hatred of it, I was facing three separate tracks of nothing but I/II/III math courses, which were obviously best taken in succession. It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

Re:depends on what you're going into (1)

Deep Esophagus (686515) | about a year ago | (#43874935)

It was going to take me way too long to accomplish this (while going stir-crazy on nothing but math), so I ended up switching to the MIS path, which didn't have the absurd math requirement.

This. My state U had two different paths to a CS degree, BSc and BBA. The former required calculus, which I tried three times and failed three times before I realized it just wasn't going to happen*. Switched to the BBA which required a couple of accounting and marketing courses I never used, but at least I was able to get that piece of paper saying I know how to write computer programs.

Sadly, they were still pushing COBOL as the pinnacle of software development and by the time I was out looking for a job, it was all PCs.

* It may have turned out differently if I actually read the lessons and did the homework and stayed awake in class, but at 19 I was an idiot.

Re:depends on what you're going into (5, Insightful)

Hatta (162192) | about a year ago | (#43874915)

If you're not going to need much math, you proabably don't need a CS degree either.

Re:depends on what you're going into (4, Insightful)

internerdj (1319281) | about a year ago | (#43874975)

If you are going to go further in your education then you will need to learn all that math too. I've spent a sizable chunk of grad school reviewing math because I didn't take it serious during my undergrad. Solid statistics is used in countless places. Linear algebra is key to understanding computer graphics and has powerful tools for other more specialized applications. Differential equations are used for all sorts of real world simulation problems. If your university is like mine then you will get an in depth discrete math course from the math department that covers the problems you hit when using a discrete machine to try to work with infinite things. You might get that from the CS department but our CS coverage was all sorts of CS related math. If you do anything hard then the CS coverage may not cut it.

Can someone help me here? (0, Offtopic)

Anonymous Coward | about a year ago | (#43874525)

How the hell is this a front page article?

well (5, Funny)

Anonymous Coward | about a year ago | (#43874527)

If a few differential equations are giving you so much trouble, you can stop worrying about learning advanced math. ;)

Think About It This Way (5, Insightful)

eldavojohn (898314) | about a year ago | (#43874533)

The verdict is: it's important.

I have two resumes in front of me. I need someone who can write some fairly complicated software. Are they writing the kernel to an operating system? No. But they'll be making complexity decisions between a server and a client. Not exactly new or novel but important to me and my clients.

So I look at one resume and the guy has suffered through integration by parts, linear algebra, differential equations and maybe even abstract algebra. The other guy went to a programming trade school where those are not taught. The trade school likely taught inheritance, pointers, typecasting, and all that good stuff just like the Bachelor's of Science degree would.

Now do my solutions need integration by parts, linear algebra and differential equations? Absolutely not. But if I'm going to pick between the two, I'm going to take the applicant that solved more difficult problems in order to make it to a class. Few people actually care about those concepts deep in their hearts -- and I'm sure neither of my prospective employees did. But in that same vein, no rational developer is going to care at all that my client likes to be able to drag and drop files instead of doing file navigation to find the files he wants. But I want the applicant who's going to do the inane stuff that he doesn't personally view as important.

Challenge yourself. Take the math courses. Take the logic courses. Take the statistics and combinatorics courses. Take the finite automata courses. Prove to yourself that there are no obstacles in your way. They are a great expense of time now but they are a huge investment in yourself -- no matter how pointless they appear to you.

If I had understood what I was doing, maybe I wouldn't mind so much.

You should attack this problem two different ways: 1) increase the amount of time you allot to your own personal enrichment in these topics/courses (three hours is very little time if you are approaching new concepts in math) and 2) seek outside instruction as it's also possible you have a professor who doesn't understand what they're doing either (the teaching, not the subject matter).

Re:Think About It This Way (2, Insightful)

phantomfive (622387) | about a year ago | (#43874591)

Let's be honest, if they can program well, and your company has any resources at all, you'll hire both of them. Good programmers are in short enough demand that it's worth it to hire a good one when you find him, whether he has advanced math skills or not.

Re:Think About It This Way (1)

platypusfriend (1956218) | about a year ago | (#43874695)

You forgot to mention personality. And I'm not talking about "I figured out his personality from the interviews"... I'm talking about really getting to know someone. That is the primary key (if you will) to creating relationships in the workplace. Because it's not just a workplace. It's a place where you and I work with others, and we, in reality, do more than work. If I had to choose, I'd take someone with less "expert" math knowledge, and more "expert" personality.

Re:Think About It This Way (2)

dynamo (6127) | about a year ago | (#43874817)

If you are looking at resumes that actually list what /classes/ the candidates took, they probably have zero experience. The other guy who has some actual experience or did some personal project interesting enough to fill the space will get the job.

Re:Think About It This Way (2)

OneFlame (2937523) | about a year ago | (#43874847)

I have been hiring IT professionals for years, hardware, networking, security, and software gurus. Give me a high school senior who has contributed to the linux kernal, published their own android game app, created their own web site, over an advanced mathematics student /any day/. The IT field is about self motivation, natural Intuition. Without these qualities, (which are the evidence an applicant being self taught), the applicant is really very useless. IT is a lot about creativity, abstract analysis, linguistics, and logic. Any applicant with a modicum of these fields of training is significantly more valuable than the Math Guru. And even still, give me the passionate high school self-starter--any day.

Re:Think About It This Way (1)

Anonymous Coward | about a year ago | (#43874853)

The biggest issue is that hiring and interviewing is hard. The only solution is really to use other people's "pre-filtering" to your advantage. The trade school guy could be 10x the programmer as the university grad, however it is much harder to get into the university and graduate. So if you are pre-filtering by the percentages, the university guy is likely better. For example, let's say the chances you are a good programmer are approximately:

Trade School - 1%
University - 15%
MIT Graduate - 50%
Worked for Google 50%

Because places like MIT and Google filter incoming candidates really well, they have the highest percentage. I'm still of the firm believe that a good school doesn't make a student better significantly, they just recruit better students. In hiring we use this pre-filtering to our advantage to get past the 100s of resumes

but CS is not IT and not even application developm (1)

Joe_Dragon (2206452) | about a year ago | (#43874957)

but CS is not IT and not even application development. and a pure CS track gives lots of skill gaps. But what makes a party or sports University better then a Trade School?

Re:Think About It This Way (1)

davecb (6526) | about a year ago | (#43874863)

You end up needing it later, anyway... I struggled with logic initially, and wondered if I'd ever need it. I ended doing a ton of it in ADL just to test some libraries! And as a performance engineer, I rapidly discovered that DBAs don't know deMorgan's law, hoping that the query optimized does (;-))

--dave

Re:Think About It This Way (2)

N_Piper (940061) | about a year ago | (#43874871)

As a 30-ish adult trying to get into the industry who has gone through trade schooling I cannot say this emphatically enough
F-you you elitist so-and-so your type are why I am literally going hungry
Not all of us made the correct choice in College or have the time and money to go back.
My blue collar resume and tech school are all I have and somehow you think my education is a character fault?
Where the hell do you get off?

Re:Think About It This Way (0)

Anonymous Coward | about a year ago | (#43874885)

Challenge yourself. Take the math courses. Take the logic courses. Take the statistics and combinatorics courses. Take the finite automata courses. Prove to yourself that there are no obstacles in your way. They are a great expense of time now but they are a huge investment in yourself -- no matter how pointless they appear to you.

There are some faults with this logic, one primarily being cost. College is not free, so "pointless" efforts that pan out to be pointless are also a considerable waste of money. If you can afford it, or if the challenge interests you, then so be it. But in pursuant to a job? Might be something to think about a little harder as you calculate your school debt that might be coming up due before you manage to even land a job.

Morse code and calligraphy are dying arts for often valid reasons. We don't exactly have to sit around with an abacus anymore.

You have more problems than you think (5, Insightful)

Anonymous Coward | about a year ago | (#43874535)

If you think advanced math is "anything beyond long division", you are probably going to be in trouble.

Some from not at all to very, depends on field (0)

Anonymous Coward | about a year ago | (#43874537)

See Donald Knuth. See Linus Torvalds

Oh dear (5, Funny)

spongman (182339) | about a year ago | (#43874541)

"Good at computers" ?

you should put that on your résumé.

Re:Oh dear (0)

Anonymous Coward | about a year ago | (#43874813)

Computer science is no more about computers than astronomy is about telescopes.

Re:Oh dear (1)

gl4ss (559668) | about a year ago | (#43874903)

Computer science is no more about computers than astronomy is about telescopes.

and astronomy nowadays has shit all nothing to do with making lenses - though at one point making the devices was the defining trait..

3 hours on differential equations? (3, Insightful)

phantomfive (622387) | about a year ago | (#43874543)

In the real world you're going to have problems that are much, much more difficult than 3 hours. Work through it, if for nothing else than to improve your problem solving skills. That is something you definitely will never regret.

FWIW I had some trouble with differential equations, too. I went to the library and found a book there that explained it much better. Made my life a lot easier. If you're having trouble 'groking' advanced math then the problem might not be you, it might be your book/teacher. But if you are afraid of work, the problem is definitely you.

Re:3 hours on differential equations? (1)

Anonymous Coward | about a year ago | (#43874839)

So what was the book?

another degree maybe? (0)

Anonymous Coward | about a year ago | (#43874545)

I know places like RIT offer degrees in Software Engineering which it sounds like you're more interested in vs Comp Sci which is the theoretical portion.

You probably don't need the advanced math! (2)

Haydn (592455) | about a year ago | (#43874547)

I have both a BS and MS in CS, and have never taken (or needed) differential equations. I also completed all of the coursework for my Ph.D in CS, but didn't do the dissertation. I took three calculus courses, and have never used them, either! Analysis of Algorithms and the ability to do high school algebra and occasionally trigonometry have stood me well, however.

Re:You probably don't need the advanced math! (0)

Anonymous Coward | about a year ago | (#43874771)

To reiterate what was already said, it depends on what you are interested in.

High school algebra is useful for most things involving simple variables and math, high-level user-space development that could probably be done in Python, Perl, or Tcl/Tk. You may even be able to get into some low-level architecture or driver development, but you won't get very far.

However, at least as I was doing my BS and MS in CS, there was a strong drive for game design and development. Guess what? all those polygons can't be manipulated with only high-school math, you'll need a couple semesters in Linear Algebra to really understand what those matrices are really doing. It's tricky to think about abstract things in three-dimensional space and keep all the local/relative/global coordinate systems straight. Take it a step further and go into serious simulations or war-gaming, and you'll need to be able to translate those physics (often differential) equations into code. The further I get in my career, the more I wish I'd have taken some of those physics and higher-level math courses, it would make it much easier to develop believable models for Fluid Dynamics simulations, flight simulations and other tools to research ideas.

Re:You probably don't need the advanced math! (1)

jadrian (1150317) | about a year ago | (#43874911)

You need calculus for analysis of algorithms. Even for simple deterministic programs you'll need at least to work with series (which is discrete calculus). Add random inputs and/or noise and you'll need statistics, which itself requires calculus.

Not so much (1)

Anonymous Coward | about a year ago | (#43874563)

Unless you are programming video stuff or programs that actually require advanced math.

the majority of programming does not.

I have both a Math and CS Degree (1)

whitedsepdivine (1491991) | about a year ago | (#43874575)

Discrete and Numerical Analysis are the only classes that I recommend. I am the Lead Architect of a Mega Scale project, and can honestly say I never use those advance method concepts. I do although recommend learning the thought process that comes along with those math classes. There are projects that use a lot of computations, but many don't. Try to learn the ideas behind it all, and then forget the formulas, you can always look them up.

Re:I have both a Math and CS Degree (0)

Anonymous Coward | about a year ago | (#43874807)

As a practical matter I would also recommend courses that include some information about:
- graphs
- relational algebra
- statistics

Suck it up (0)

Anonymous Coward | about a year ago | (#43874583)

and learn. It won't be immediately useful, but someday you'll put it to use to solve a problem, or to understand the nature of a problem.

Khan Academy on Diff-Qs [khanacademy.org]

Sorry (0)

Anonymous Coward | about a year ago | (#43874597)

I think it's important for training your brain to think they way required to code. Math, logic, etc. all go together.

It isn't (1)

Anonymous Coward | about a year ago | (#43874599)

I've been a software developer for over a decade. I majored in Computer Science and minored in Mathematics. In short, no one has given a crap about my knowledge of calculus, complex variables, and the like. Not once. A sole number theory problem came up once during an interview, but that's it.

If I could do it over again, I would have definitely picked a different minor; perhaps in physics, environmental sciences, or even writing.

It is what computers do. (1)

Matt_Bennett (79107) | about a year ago | (#43874609)

Computers do math. They just do math. Yes, it is important to learn, both from a practical aspect (can you predict the entire arc of your career right now?), and probably the most important- getting through these classes show you have the ability to take on complex subjects in a relatively short amount of time and apply them.

Beyond anything else, a degree is a method of showing potential employers that you can learn.

Differential equations is not advanced math. (5, Insightful)

Garridan (597129) | about a year ago | (#43874611)

Mathematician here. You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation. Those differential equations probably won't really enter into the game... but who knows, you might end up doing game physics which is nothing but a massive differential equation solver.

But I'm here to tell you that differential equations are not advanced math. Take a discrete math class to get a taste of what 'real' math is for a programmer. Take data structures. You'll find yourself doing formal proofs (real math), and it will be extremely applicable to the rest of your programming career. That DE class is there just to make sure you can manipulate symbols.

Re:Differential equations is not advanced math. (2)

vurian (645456) | about a year ago | (#43874743)

"You're learning differential equations to prepare you for lifetime of abstraction, to sharpen your skills in symbolic manipulation." That sounds a lot like the reason people were once told to learn Latin and Greek -- it would prepare them for a lifetime of thinking. Me, I think it works. Make everyone go through a course that has enough hard enough things to do and keep the ones who get through. It's just that maths isn't anything special, or even of more practical use than Latin, it's just a way to distinguish between capable and incapable.

Re:Differential equations is not advanced math. (0)

Anonymous Coward | about a year ago | (#43874969)

Professional "computer scientist" here: Discrete math, second course in linear algebra (for graphics) and first and second class in calculus (diff then integral) was all I ever needed... I'll second the notion that just getting through these I is what I'd now consider basic scientific mathematics, not "advanced." But by advanced I normally think "not useful" :P Hehe, only barely j/k :)

CS is Math (0)

Anonymous Coward | about a year ago | (#43874619)

Maybe you should consider majoring in another computer related field, such as IT or Software Engineering?

A Solid it Depends... (0)

Anonymous Coward | about a year ago | (#43874621)

It really depends on what you are planning on doing in Computer Science. If you are planning on following the traditional path where you are using existing Programming Languages and developing software off that, then you really don't need much in the way of math skills. You simply need to know that one sort is faster than another and you use that faster sort (frankly, you just use the built in sorting capabilities and you don't need to think about it).

If you are going down the research pathways, in private or public sectors, higher level math skills are quite a bit more important. You need to be able to analyze what your algorithm is doing, how quickly it will process, and understand the reasons behind it to make it better.

Math is important (0)

Anonymous Coward | about a year ago | (#43874623)

I can relate with the not knowing what the math will be used for, but as a computer programmer I always find areas where I wish I had learned more math. Computers at their lowest level are mathematical beasts, and knowing (and more importantly understanding) more math will help you dream up better algorithms.Of course there are CompSci related professions where the math isn't as important as others.

Not specifically, but it is important (0)

Anonymous Coward | about a year ago | (#43874625)

The specifics of the math is unimportant. The logical analysis and critical thinking exercises are very important.

Depends on what field you go into (1)

ender8282 (1233032) | about a year ago | (#43874627)

Honestly diffirential equations probably isn't the most important skill for a Comp Sci graduate to have. Outside of specific applications you'll probably never use it again. I never have. I wouldn't discount all higher math though. Most algebra related classes (discrete algebra, linear algebra) definately have applications and if you don't understant those you'll probably suffer for it. Just suck it up and deal with it. The system isn't about teaching you useful skills. The system is about proving that you can jump though hoops.

holy crap (0)

Anonymous Coward | about a year ago | (#43874629)

Math is important for everything. And this isn't even advanced math yet. It is like color-by-numbers compared to painting.

CS == Applied Math (1)

tommeke100 (755660) | about a year ago | (#43874637)

Many parts of Computer Science require quite some mathematical knowledge.
Machine Learning, Artificial Intelligence, computability, linear regression, .... all require you to know something about math.

Sure you don't need advanced math to install a router or network. Or even to make an App. But you're pursuing a degree in Computer Science, so computer science you get. If you're just interested in some programming, networks, etc... You may be better of getting some certifications from M$, Oracle, Cisco and the like.

Advanced Math is the best predictor (0)

Anonymous Coward | about a year ago | (#43874639)

Advanced Math is one of the best predictors of how good of programmer you will be. Programming is really about quickly understanding a situation and breaking down the problem into simpler steps. Very similar to Advanced math, understanding an equation and realizing it breaks down into 2 or 3 fundamental equations. The top 5% of programmers easily twice as productive as the next 10% and the bottom 20% actually have negative productivity on a team. Any one can learn to program, however very few will be great at it and that is why most computer science programs use Advanced Math to filter out people with less potential.

It depends (1)

Jorl17 (1716772) | about a year ago | (#43874643)

Maths is always good, no matter what situation. It goes side by side with logic, and calculus is a way of thinking about the world and its processes.

For some areas, there's a lot of math involved. Consider data analysis. At first, it may seem like you will never need data analysis, but many people end up working for companies where they have to track performance and efficiency issues (if you can save those 5 bits for each of those 10M clients, you'll get a nice raise). Another example: picture a situation where you are developing a phone application to determine if the user is riding a bus or not. In these kinds of situations (not that rare), you'll need to know data analysis, frequency analysis, time-frequency analysis....and for that you'll always eventually wind up having to understand some concepts of 'Advanced Math' (though do note that this isn't 'advanced math' at all)

I often hear that there are engineers and programmers. If you just want to be a programmer, maybe you won't need maths, but if you want to be an engineer, it will not only boost your way of thinking, but also simplify a lot of problems. (I'm not saying you'll ever have to know how JPEG or GIF works -- this involves maths --, but I'm saying that if you do, then you can do great things with that information).

Classes aren't requirements... (1)

sohmc (595388) | about a year ago | (#43874645)

An important lesson I learned after college is that not every "requirement" is an actual requirement. Requirements like classes are often hurdles that are placed to either weed out people who don't want to do the hard work. Sometimes they are there to seem accredited to other organizations, allowing the school to justify their degrees.

I couldn't get a CompSci degree for the same reason. I couldn't handle calc. I got As in all my programming classes, but couldn't do the math.

I would say CS requires more creative thinking than logical thinking, but both are needed. However, in my every day life, I use maybe an Algebra 2 level type math?

Unless you're going to be writing video games or the like, you probably don't need it. But unfortunately, nothing you can do about it if the school is requiring you to.

You can do what I'm doing: get an English degree, show off your computer skills, and tell employers that with my geekiness and my English skills, I make great presentations and write very well.

Depends (2)

ItzRobZ (1761366) | about a year ago | (#43874647)

If you're going into IT, chances are you probably don't need advanced math. Going into CS research? Probably. General software development? I think knowing advanced math helps you develop interesting and useful algorithms that can be used in the software. You may not use the advanced math topics/tools, but the skills you learn in advanced math help a bunch.

Pretty important... (0)

Anonymous Coward | about a year ago | (#43874655)

You need to understand algebra backwards, forwards, and in random order. If you meant that you don't grok algebra by "anything beyond long division" you should either apply yourself, or give up and find another field. Algebra isn't advanced math, it's extremely basic math.. At least as far as a BSCS is concerned. Is it important to understand Calclulus, and DE? Probably not..But you'll almost certainly need to pass the courses.

It isn't about 'being designed by mathematicians', it's about understanding basic math as it relates to computers. How are you going to understand the complexity of algorithms when you don't understand the most basic math? When someone expresses that a algorithm executes in logarithmic time, or exponential time... It's not OK to just have your eyes gloss over and go to your happy place.

Also, to be fair: You don't need log division. You don't even need to know how to multiply. Computers do that stuff for you... But you describe how they should do it with algebra.

Not important. (0)

Anonymous Coward | about a year ago | (#43874659)

Muddle through diff-eq and then promptly forget it all. You won't need it for future coursework. I haven't needed it in my 5 years of career so far, and I'm doing quite well financially. Frankly, I don't understand why they make undergrads in computer fields take it.

If you can't grok anything more than long division (0)

Anonymous Coward | about a year ago | (#43874675)

... you're going to be a shitty programmer.

Not that you'll directly need math in programming -- but the mental skillset is the same when you start doing things beyond the trivial or already well understood. I regularly use concepts from calculus, trig, etc. but then again I do a lot of GIS and graphics work.

That said, what CS degree is requiring you to do diffeq? I've never seen one go beyond calculus, statistics and discrete mathematics.

It varies (0)

Anonymous Coward | about a year ago | (#43874683)

It depends on what you want to do. I work mostly with device drivers, and I rarely deal with anything more complex than trigonometry and some discrete mathematics (although I wish I had more background in queuing theory). If you're primarily interested in web site design, you probably won't use much past trigonometry.

An area like Computer Vision, though, requires a solid background in mathematics through Linear Algebra, and a computer graphics is heavily mathematical.

Phil Klein, an CS professor at Brown, is teaching an on-line course at Coursera on linear algebra that you might want to check out. Its goal is to introduce linear algebra by exploring its use in a number of domains.

people will look at you (1)

shadowrat (1069614) | about a year ago | (#43874687)

I went to school for art. I have no degree to show for it. I always had an interest in comp-sci, but never pursued it beyond a hobby in school. Now i'm a senior engineer at a big software company making cool stuff. I'm well respected by my peers and have never had a hard time getting a job in this industry. I suck at differential equations (I am good at vector and matrix math, and well, i can apply quaternions. my forte is graphics libraries like open gl and direct x). I probably don't suck so much as i've never had a math class beyond advanced algebra, but there's a lot more to being a productive member of a programming team than solving differential equations.

What matters is that you can get good solid work done.

Logic and love of computers is key (4, Insightful)

bhlowe (1803290) | about a year ago | (#43874689)

If you enjoy programming and computers, don't let poor math skills stop you from doing what you like. I sucked at calculus and do very well as a programmer. Logic is the more important skill.

Depends on how complicated of a job you want (0)

Anonymous Coward | about a year ago | (#43874693)

I started out turning screwdrivers and diagnosing unix system logs for hardware failures in a datacenter as my first job out of school. Really only required basic

math, some statistics, and the ability to work with spreadsheets and manage time. Wasn't for me, though, so I moved on to working with a software engineering contracting firm. That was fun, got to sand the rust off of my coding skills, and really only required a basic understanding of geometry for the purposes of dealing with graphic widgets on a screen. Also had to understand timing and event counts and so forth, but that was fairly well automated. That stayed constant until my most recent job, and I'm having to make use of a lot of trigonometry and calculus to deal with angular datums and changes of values of time. I haven't required the use of differential equations professionally, yet, and I honestly dread the thought that I might, but I guarantee you that seeing the math in action in the real world will make grokking the details far easier than working it out on a whiteboard in school.

Oh, you might want to also remember that the more complicated job as a senior engineer can easily pay as much as 2x-5x as much as that screwdriver turning datacenter monkey. Most of my peers in the datacenter were college drop outs and lacked degrees, and they were very intelligent, but they looked at academics and people with degrees with scorn and condescension. People with degrees typically looked down on them as well, but that was because they were shitty programmers or couldn't code at all.

It's not crap (0)

Anonymous Coward | about a year ago | (#43874705)

It's not crap, and WTF does "grok" mean. You learn diffy-Q since it's required to model most dynamic systems. If you can't cut teh math in CS, get an IT degree. Hell, I'm not even a CS; an EE.
 

Bottom line? It's not that important (1)

pongo000 (97357) | about a year ago | (#43874707)

CS is about algorithm development, not application of higher math concepts. I spent several years writing C++ for satellite image processing, and can tell you that I truthfully do not know all of the ins and outs of the mapping functions, projections, etc. That's why the company has a couple of PhD's working on this. They do the hard number crunching and then articulate what we need to do in terms that a non-math-major can understand.

I see no reason why you should spend money getting yet another credential. You should be learning for the sake of learning. If the advanced mmath doesn't interest you, don't sweat it. You'll do fine.

Efficiency and Physics (1)

sanosuke001 (640243) | about a year ago | (#43874713)

Computer Science can be seen as having a theoretical and practical side. The theoretical side deals with defining how computers work, how to make them better, and why algorithms run the way they do and how to make them better. The practical side takes the theory and implements it; however, it still takes the abstract side to develop applications and make them do what you want efficiently.

You don't NEED math to write applications but without it, your applications will suck. Also, you won't be able to do anything much more advanced than a Helo, World application without memory and runtime issues. Also, go try to write a 3D Graphics engine without advanced math; I work on an OpenGL library and use matrix, vector, and physics maths every day. Not to mention the math I use to fine tune an application to run faster, use less memory, and logically fit parts together where they don't step on other running parts. You might never use some of the math you learn but you will use math and if you want to be taken seriously, learn it or go write websites in html.

Re:Efficiency and Physics (1)

JustNiz (692889) | about a year ago | (#43874823)

>> Also, you won't be able to do anything much more advanced than a Helo, World application without memory and runtime issues.

Sorry but this is pure bullshit. Other than Boolean algebra my formal math sucks but that doesn't have any effect on my ability to write stuff like device drivers or complex apps effectively.

Good at Computers (2)

Frankie70 (803801) | about a year ago | (#43874715)

But I love computers, and am very good at them

What exactly does this mean?
- You can use MS Word much better than your friends and grandparents
- You can tweet better than them.
- You are better a googling than your friends and grandparents.

Why Most Computer Sciences Don't Require Adv. Math (1)

OneFlame (2937523) | about a year ago | (#43874717)

Technically speaking, Computer Hardware Engineering is definitely the playground of Math Gurus. However, Software Engineering, Networking, Security, etc, have nothing at all to do with Mathematics. Mathematics and Software Engineering both "inherit" from Logic by way of some cool associations with Linguistics, (Semantics, Syntactics, etc). It is really detrimental that many go into the industry without much greater backgrounds in logic and linguistics.

Re:Why Most Computer Sciences Don't Require Adv. M (1, Troll)

bluefoxlucid (723572) | about a year ago | (#43874855)

Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.

Mathematics is highly important in computer security, software engineering, and network engineering. I started writing an access control system several years ago; the first thing I did was ingest an 18 page international standard describing the proper implementation of role-based access control systems. It was a *lot* of mathematics describing the relationships between security contexts--between objects, between accounts, between roles.

Networking seems pretty straight forward; but try bringing graph theory to the table once. You'll suddenly have a lot to say about the wonderful, efficient network you designed and how it's not your fault it's not meeting performance requirements because the technology just doesn't exist yet.

Software engineering is the practice of turning a project plan (a scope, work breakdown structure, design considerations, requirements, etc.) into a finite state automation. Program control flow and algorithmic efficiency are highly relevant in all cases. You're not writing an LZ77 encoder, just a PHP application? And how are you passing data from your Ajax application through JavaScript? And it doesn't work all the time? Why, that's because you've missed a critical race condition in this section of the flow; and besides, if you handled this action in this way instead it'd be 1000 times faster.

Stats, Analysis, DSP... (0)

Anonymous Coward | about a year ago | (#43874727)

.. are fields where math is invaluable. Most big data analytics requires understanding of statistics.

In my case, I've worked as a DSP engineer, using mostly C, C++, but also Matlab. Complex wave-calculus and physics, as well as numerical methods are super important for this.

You can make it work. (0)

Anonymous Coward | about a year ago | (#43874739)

But you might have to transfer to an institution that offers a BA in CS that drops the heavy CS requirements. Realize a BA not BS will limit your job opportunities in some cases where HR pre-screens for BS in particular, but you can take on a secondary major to distinguish yourself. Also on your resume say Bachelor's in Computer Science rather than B.A in Computer Science. Completely honest and doesn't automatically disqualify yourself by the HR pre-screening.

There are a lot of software devleopment domains where you won't be able to excel without strong math skills, but there are plenty more where you'll do fine without them. No game development, no science data processing, but business, productivity, and social software development will be fine.

Or hire a tutor and push through it.

Both not important and important (2)

sideslash (1865434) | about a year ago | (#43874741)

On one hand, if you aren't writing engineering / simulation / trading / game internals, you are unlikely to use most advanced math. So it's not important. On the other hand, if you can't handle advanced math, you probably won't be a top-tier programmer either. Top-tier programmers think about advanced concepts and keep a lot in their heads at the same time. So in that sense I'd say it is important.

You can't change your IQ, but you can maximize the use of what you have by developing good personal mental disciplines, i.e. working your behind off on stuff like this in college. My $0.02.

It depends (0)

Anonymous Coward | about a year ago | (#43874767)

Computer graphics, digital signal processing, and algorithm heavy graph work all require heavy doses of math to accomplish anything. Run of the mill web development, simple embedded work, and business logic programs don't really require anything you haven't learned in grade school.

The question is: If you had a choice between two developers, one of whom can code well and put in the work to also be competent with math, and one who can do "most things, but if you ever need any of that math nonsense, you'll need to hire a second guy" which would you pick? After you have some experience if you specialise in development that doesn't require math it won't really matter, but at the start I would always pick the fresh hire who can do the tech stuff PLUS the math.

Sidenote: Some development companies actually prefer math majors to CS graduates.

"It depends" (1)

conquistadorst (2759585) | about a year ago | (#43874775)

imho I think the math mindset is very similar to the cs mindset, I'd still deem it a useful mental training exercise regardless of anything I say from here on out.

In reality whether or not you use it completely depends on what field you catapult yourself into. There's a place in every industry for a cs grad, not a single industry escapes computer software. For example if you stay with just simple web stuff I'm doubtful you'll ever encounter any math beyond arithmetic; in fact I'll say right now you probably won't use even 90% of what you learn in cs for simple web stuff. But if you become a serious software engineer say working on "big data" problems, high speed trading, visual toolsets, or anything involving worlds that include engineering or sciences then there's a chance you will need to dust off some of those books. Even if you have "real" mathematicians doing the heavy lifting for you it's still a good idea to know what you're programming instead of being fed with a spoon.

It's the bottom of the pyramid (2)

NickAragua (1976688) | about a year ago | (#43874777)

I bet you're a freshman. As mathematics (along with physics) is the foundation upon which computer science is built, you would do well to have a good understanding of it. I'm not saying that you should become an expert or take on a math degree, but, if you don't understand the basic principles underlying the code that you write, then I would have a hard time trusting that code in any meaningful application. Plus, it's not entirely useless in the real world. If you want to do an estimate of an algorithm's running time? Math. Want to compile some statistics on your application's usage patterns? Math.

Meh. (0)

Anonymous Coward | about a year ago | (#43874791)

I founded a software company 19 years ago. We have 50+ engineers working here now. I didn't take DiffEq.

My friend works for a rocket company doing software development. Might come in handy for him.

Filtering out the chaffe (0)

Anonymous Coward | about a year ago | (#43874815)

I haven't used DIF E Q's since college. However, after working with a bunch of computer science people for quite some time, I have to wonder what they actually teach in a CS curriculum. It certainly doesn't seem like any sort of engineering by any means.

side note:
My wife went for her masters in elementary ed and came home one day after one of her masters courses and exclaimed: "Did you know there is an entire math based around 1's and 0's?!?!" I said: "Yea, I think I took a course in Boolean Algebra or two.

PSU grad BSEE

Why Higher Level Math is Important (1)

cogeek (2425448) | about a year ago | (#43874831)

I always said, in High School they teach you what to know, in College they should be teaching you how to think. Higher level mathematics is all about problem solving skills which is important in any career these days that requires a college degree. It's not about the answer to differential equations, but how did you get there? What steps did you take to look at the problem, determine what needs to be solved and then come up with a method to solve the problem. Problem solving is a skill that's sorely lacking these days. I may not know the resolution to each and every new issue that comes up in my environment, but the ability to track down the problem, understand the problem and then find or design a solution is what really matters.

OMG, WHY DO I HAVE TO LERN THIS == give up now (0)

Anonymous Coward | about a year ago | (#43874835)

If you're going to switch to whining "OMG WHY DO I HAVE TO LERN THIS" after a tough three-hour problem-solving session, do the entire profession a favor and GIVE THE FUCK UP NOW. Computer Science does not need another person who's "good at computer" because he can cuntpaste code from Stack Overflow and smack it until it works.

Seriously - you're going to have to learn harder things, that take longer, for even *less* relevant reasons, over and over again in your career. If you're not wired for it, you're going to be a shitty developer.

Important, not for the math. (0)

Anonymous Coward | about a year ago | (#43874843)

I say very important. Not necessarily for the math, unless you go into game engine design where matrix algebra, and ray-tracing is highly important (I don't know much about that subject though).

I'm a PHP web-developer by day and use very little advanced math at my job. But that's not at all what the advanced math classes teach. In my opinion, the math classes (Calc 1&2, Discrete 1&2) teach you how to think. Solving problems, using variables, understanding differential equations, and how variables can interact with each other. Personally I found Mathematical Methods of Economics (if your school offeres a similar class) to be very valuable in teaching how to think and analyze problems. Discrete really nails home computer science theories (and even more in a CS theory class, again if you take it).

So will you use the math, probably not, is it important, yes...very yes.

Not the formulas, but the skills, are important (0)

Anonymous Coward | about a year ago | (#43874845)

I would most definitely say it is important, and have seen the problems with trade school developers versus computer science folks first hand in hiring. Though at first I would have said it's not overlly important, getting to see the different in people first hand, and then looking at my own processes, have really made me have a different mind to this question.

It's not that you're going to need to know how to take a derivative, or write a program that performs a complicated mathematical equation. It's that by learning to do them and understanding the concepts, you are going to have an easier time. Even basic application development can often require you to play around with numbers in ways that are going to be easier to understand if you've had to work with numbers a lot. Not to mention the fact that you are building skills in logic, formulas, trends, etc that will be useful throughout your career as a developer.

Not to mention the idea that there is a lot to be said for facing a challenge head-on and overcoming, versus taking the easy way out.

Finally, I've had plenty opportunity to use mathematical concepts as well while developing applications and reports for business. And though you will probably end up going online to find what you need, understanding the concept, or at least being able to read what it's doing and then understand the concept, can go a long way. If you never learned it, it's hard to pick it back up. I've handed those systems off to programmers without a background in math, and invariably the take the route you are asking about ... avoid working on it and leave it to someone who understands math. Wouldn't you rather have the skill then need to tell you boss he needs to send the request somewhere else?

I don't mean to sound anti intellectual but... (1)

DRMShill (1157993) | about a year ago | (#43874859)

Not at all. I've been writing code professionally for 14 years and in that time I've used Calculus exactly twice. Maybe if you did engineering involving a lot of physics but I seriously doubt those jobs are common. It looks good on a resume and all things being equal an employer would probably pick the applicant with the better math skills but then again the same can be said of just about any skill.

Anyways good luck.

What is Advanced Math? (2)

RichMan (8097) | about a year ago | (#43874869)

You are pushing calculus as advanced math. What about Galois field theory? You are not even at the advanced stuff yet.

Proper algorithm design is not cook-book stuff, which is why it is Computer Science, not Applied Programming. You will likely do well at Applied Programming. The higher order math is for those that will go into the Science part of the programming.
Understanding the difference between the Science and the Application is important.

The most important thing is to know your limits and when you should go looking for help to solve something.

I think some schools are just padding. (1)

oic0 (1864384) | about a year ago | (#43874875)

The school I went to in particular, the CS courses had more math than they had actual computer courses. I think they were just padding the cirriculum to make their degree program and math looked like the most viable option. As an 18 year old it was enough to make me change majors, I can do math but its not my favorite pass time, so a degree that looked an awful lot like a math degree with a minor in computers was enough to scare me away. I regret not looking at other schools.

Advice from a math hater (5, Interesting)

SWGuy (566046) | about a year ago | (#43874879)

I hated math in university, I still hate it now, but over a 25 year programming career math has turned out to be the single most surprisingly useful thing I learned in university. Calculus, statistics, trig, I have needed them all in my programming work. I wouldn't have the cool job I have now if I couldn't do the math.

not so important for the DEGREE (1)

Khashishi (775369) | about a year ago | (#43874883)

Of course, it could be useful for a future job, depending on what that may be. You'll never miss that skill that you don't have, because you'll naturally move yourself into what you are capable of. You won't need much math for front end stuff, user interfaces, accessing a database, code monkey stuff. Actually, you don't need much CS either. But if you want to get into physics simulations, signal processing, graphics/audio processing, finance, video games, writing a database, ..., that math knowledge would come in handy.

Really, who cares? (4, Insightful)

waddgodd (34934) | about a year ago | (#43874893)

This is an exemplar of a phenomenon that I'm really beginning to despise in higher ed, the "do I NEED this?" phenomenon. Frankly, you don't NEED any given class to do most jobs out there. To be precise, your College diploma will not prepare you in the slightest for any of the multitude of skills you actually need in the job market nor is it designed to do so.. It is designed to prove you have the flexibility and desire to learn anything that comes across your plate. Picking and choosing what's actually relevant to your presumed career path is doing the exact opposite of this. How it impacts ME in a way that makes me despise it is that this trend is also transparent to College Professors, who now have no time to actually teach those that want to learn because they spend most of the semester fielding questions like "how will I use this as a McDonald's Fry Cook (or whatever the student laughably thinks they'll be employed as after graduation)" so they can't answer the basic "where can I find out more about this fascinating bit", leading to students like me getting so frustrated at the crap that they just give up on lectures. My honest advice to you is "if you don't think it's relevant to your interests, don't take it and petition the requirement off, you'll save a lot of people a lot of hassle that way"

Computer Science := Math (0)

Anonymous Coward | about a year ago | (#43874901)

Computer Science /= Software Development
Computer Science /= Information Technology

How important? (0)

Anonymous Coward | about a year ago | (#43874909)

0, zero, nada, naught.

Good v Great (0)

Anonymous Coward | about a year ago | (#43874917)

In my opinion - advanced math is not required to be a software developer. It's not even required to be a good software developer. But it is absolutely necessary if you ever hope to be a very good / great software developer. If you can't talk about intuction, injectivity, bijectivity, set theory, a smattering of category theory, a decent understanding of linear algebra, finite automata, graph theory, calculus etc, then you mgiht understand *how* to use your tools, but you won't intuit *why* you use that tool, and you might miss when you need to use different ones.

You need one maths guy (1)

gnasher719 (869701) | about a year ago | (#43874931)

In a good team, it's good to have one person who is good at maths. Just in case. Maybe two or three if you are developing graphics engines. Same in the financial industry. Or if you need software to run fast, someone who can figure out how to use a cache in an optimal way. Someone who can give the correct answer to "if one Kilobyte costs 0.002 cents, how much is a Gigabyte" is handy. If there is nobody, a team can be in trouble.

Doesn't have to be you, though.

Drop the math (0)

Anonymous Coward | about a year ago | (#43874943)

Not very important beyond basic arithmetic most of the time. The problem is too much CS is taught by useless academics who think computers exist mostly to solve math problems.

What's becoming ever more important and many CS grads absolutely suck at are people skills that let them interact productively with a wide range of stakeholders (other engineers, QA, UX, product, localization, etc). So drop the math, and take a sociology or cultural anthropology class.

Signed, Dir of Software Engineering at a company you know about.

Once in my career... (1)

jittles (1613415) | about a year ago | (#43874951)

Once upon a time I worked on things like tracking a moving object from a gimbal mounted camera which was attached to the nose of another moving object (a helicopter tracking ground targets). That involved a hell of a lot of complex math, mostly linear algebra with a lot of trig. Those math classes sure came in handy. I would have been dead in the water without them.

I've also worked in the digital video industry and used transformations and matrices to manipulate overlays on video. High school trig was sufficient for that particular job. I've probably spent less than 2 man years doing complex math in my entire 10+ year career. When you need that sort of math, you really need it. But most of the time, it doesn't really matter. It's just good to learn how to solve all those more abstract problems that come up in higher level math

There are 2 types of people (1)

Anonymous Coward | about a year ago | (#43874955)

There are two types of people out there. Those that compartmentalize all their knowledge and only use knowledge from the appropriate compartment and those that use all their knowledge all the time.

If you a compartmentalizer, then don't bother learning anything other that what you are going to do, you won't use it anyway.

If you are someone that uses all their knowledge all the time, then you should struggle to not just learn things, but really understand them. I use differential equations, linear algebra, calculus, and abstract algebra all the time. But then I know them all inside and out and so it's just natural for me. I use statistics quite a bit as well, but I usually have to look that up. I try to use the appropriate tool for the task.

The old saying is that if all you have is a hammer, everything looks like a nail. A corollary to that is the more tools you have, the more options you have, and you can pick the best option for the job. A question for those that say, "I can just look it up." If you don't know that screwdrivers exist, why would you ever go to look for one?

The bset two programmers I ever hired, didn't answer any computer related questions correctly. The first because I didn't ask any. I only asked him math questions because he had a BA in math and I wanted to make sure he knew what he was doing. Others had asked him computer questions.

The second answered almost every question with, "I don't know, but I have a book about that on my desk." The important thing was he was able to convince me he was smart and wanted to learn.

Your question implies you are not that smart and don't want to learn. So I wouldn't be inclined to hire you. It's not too late to change though.

1+1=10 (0)

Anonymous Coward | about a year ago | (#43874959)

ADD, SUBSTRACT and EQUAL.

You don't need anything else to understand the most complex computer in the world. You also need logic, like AND, OR, XOR.

Computer Math vs. Math Math (0)

Anonymous Coward | about a year ago | (#43874967)

I had a double major, CS and Math, so I know a little bit of both. Where I was working the top dogs had no math or CS, they just learned programming on the job. I noticed that they were using floating point for financial calcs and said they should be using some sort of fixed point, but they couldn't understand why. I never used calculus or anything like that on the job, but I would guess it is a better foundation for software dev than a music degree.

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...