Thursday, February 24, 2011

A Mathematics Degree

When I was a graduate student at k-state, I was studying for all three Ph.D. quals in mathematics. This is part of the insanity that is me, but it also reflects my inability to make decisions between equally cool options. When presented with an OR, I choose both. This is also why after my Ph.D in math, I was going to get a Ph.D in computer science.

While my heart lives with computer science, mathematics is the fastest and most effective way to master problem solving in collegiate setting. Why? It's hard mode. When I get a game and start to play it, I put it in nightmare mode (hardest setting) and then play. I'll grind and accept the initial failures and learn from them. By the time I'm done, I'm a master. The same is true for math. If you go to college, then the math program is going to the toughest degree program. I have yet to meet someone with a math degree that wasn't successful in what they tried to do outside of college

The nice side effect of a math degree is that it lacks degree inflation. It's difficulty is more or less the same as it was 50 years ago.

A Computer Science degree is fundamentally half math and half programming, and many struggling Computer Science programs are churning out shitty programmers because they are reducing the math requirements and dumbing it down. This works great for many companies that have mountains of tedious work and managers who use management theory on programmers. Some programmers are cogs because someone figured out how to make that work for them.

For companies that depend on technologists (where typical management theory breaks down hard-core), I wager the talent war is going to get epic and qualified tech workers are going to win real big. The salary and benefits being paid to top-tier developers is a consequence of supply and demand, and it's going to tip even more in the favor of the limited supply.

Woe to computer science degree! Read On the cruelty of really teaching computing science; now think about market forces. When I was a student, I realized too things. People hate taking math courses and math is highly relevant to computer science/programming (at least, relevant to the fun kind of programming, not the boring kind where you push boxes 2 pixels left and 1 pixel down and change colors from sky blue to cornflower blue).

Keep in mind, its not the content of math that matters the most; it's the process that math induces. Getting a math degree will build an iron fist of reasoning that will enable you to write very clean and tight code. It will also get you knee deep into the abstractions that most people will not have exposure to in their entire career. For instance, when I took Introduction to Topology, it blew my mind.

The first day of topology, my response was "WTF is this?" On the second day, I was excited "omg, he just turned a coffee cup into a donut". It was that class that opened my eyes to an entirely new level of reasoning and abstraction that propelled me into the math degree. Also, much to my surprise, the class (and degree program) was also 50% women which is vastly different than the sausage festival of computer science.

I'm going to have an awesome career working on my calling which is entirely due to me making good decisions, and my best decision was to get a math degree. I recommend anyone that is able to go for it. Higher level math courses are actually a lot more fun than the lower level stuff. The lower level stuff is service to the college, but that's what pays the bills for the math department. The higher level stuff is where you will have a chance to see your professors glow like school children as they talk and lecture on things they find interesting. It's worth it.

That being said, if you take a math degree, then you need to make progress in your side projects in computing. Connecting your ongoing mathematical education to code will give you interesting insights. I'll shave an interesting perspective in five years when I finish my book titled: "A topologist walks into a database". Sounds exciting, yes? Well, it will be.

Now, I just need to write about how I was a homeless graduate student working 100+ hours a week.

If you want a more hard-core education, then you need to drop out of school and build a company like I did. This option is really hard-core, and it is the path of woe, humility, and ultimate success.

1 comment:

  1. After I got my degree in maths here in Spain, I started the "low" engineering degree in CS (literal translation would be technical engineering in computer systems, there is also a "superior engineering", that is why I say "low"). I took something like 7 courses, and had to stop. It was too easy, and I was getting bored (and I was starting my PhD in maths, too).

    Nowadays, I think I may get a CS degree online (in one of the distance education Universities here in Spain), but I still fret at the boredom.