Let me start by stating that I am currently working as a junior to mid-level software developer. I did have a huge helping hand in getting this position as I had an internal reference with obviously good enough influence. Naturally, I'm not the best programmer in the world. Given enough time and Google, I can figure out most problems and write an elegant solution for them.
The problem I am facing is that my degree is something I feel I wasted entirely too much time and money on. It is not a computer science degree, so my background in mathematics does not go past calc I. I also have never taken a course on algorithms or data structures or things such as compiler theory or operating systems.
I can build software when I'm not under pressure or on a white board in front of ten people. Typically these ten people will grill me on algorithms and data structures that are taught in academics, and they do this rightfully so. I cannot argue their reason for doing it.
I learned how to program by reading source code, buying books on amazon.com and then building small projects that I challenge myself with. I can build web apps, iPhone apps no problem.
I have terrible difficulty when asked questions that involve heavy mathematics, complex sorting and searching implementations, etc. Like most of the users that frequent Stack Overflow, I wouldn't have a problem building a site like SO or Twitter. (note: Scaling the site is a different problem, I'm talking an initial build in a high level language like PHP, Ruby, Python)
I love my job and have no intention of switching at this point in time. I do feel that if I had to switch because of layoffs or anything similar, that I would have a very difficult time getting another software development job.
Does it make sense to go back to school and get ANOTHER degree, this time in computer science? Do some of the smart people on here who lack a computer science degree have different suggestions? Did you learn the required math and algorithms on your own? I am incredibly good at selling myself until I have to whiteboard. It's all down hill from there. Telling me I should give up programming is also a correct answer. Chances are though, I will not listen and keep doing this, because it is my passion. No matter how much I suck at doing it, I love it more than anything in the world.