I was got a non-CS bachelors, and then managed to get into development, partly because I had been programming all my life. But I went back for a masters and shored up the undergrad CS that I missed. Boy was that helpful! It wasn't necessary for 95% of my job, either, but it enables me to solve the other 5% that I would be unable to solve, or end up with something that barely works. I've found compilers useful (for parsing; didn't have time to take finite state automata), the OS class was excellent for understanding and to be able to write threaded programs that work. Data structures is simply essential (but I took a that in undergrad).