I just finished an assignment at work that made me appreciate my formal university education. My task was to take a statistical interpolation method from a research paper and implement it.
I'll keep the details brief since I'm working on super-duper-top-secret stuff, of course, but the paper was full of terms like
covariance and
semivariogram, used common curve equations like spherical, exponential, and gaussian, and was peppered with its fair share of tables, graphs, and matrices. And what research paper would be complete without a bevy of overly-intimidating equations like this:
The interesting thing about software development is that despite the math classes you are required to take as a CS major, you really don't have to be good at math to be a good programmer. Most of the time you rely on logic and spatial reasoning skills, or just basic programming knowledge like object oriented design. The major exception to this rule is when you have to program something
that actually is math.
It's at times like this when I'm glad I went to grad school and had to drudge my way through countless papers just like this (eventually writing one of my own). You learn a few things, like how those monster equations are mostly for show (though ostensibly for instruction and proof) and almost always simplify to something reasonable, allowing you to skip most of the Greek. In this case (no joke) it becomes:
And then it's at this point that I appreciate my undergrad requiring linear algebra, because that equation only looks simple due to the fact that those variables are matrices and vectors. Add to that some nonlinear least squares regression curve fitting and using derivatives to find slopes and those math courses can actually be useful!
Given the problem, I doubt I would have ever come up with a mathematical solution this clever, but that's not what I learned to do. I don't know math well enough to speak it, but I can read it and that's all I needed to turn this bunch of mumbo-jumbo into a pretty cool software feature.
It's nice to know that after all the work that went into getting my degrees, they actually do make me more qualified to do my job than some self-taught hacker.