Wow, you too! I have a degree in Theater as well. I never got a degree in Comp Sci and it has never hurt me in the least. I just didn't want all the math. I would have had to take: Calc I, II, III, and IV, Numerical Analysis, Discreet Structures, Differential Equations, Probability and Statistics and one or two more. The comp sci curriculum was 50% math courses. In 14 years of professional coding I have never needed any math other than Algebra and a little Geometry.
The danger of the self-taught coder is a lack of the foundations. This I find to be particularly true with the programmers who back-doored into coding through web work.
Not knowing the fundamentals (data structures, algorithms, logic, compiler theory) eliminates a lot of tools from your toolbox. I went through the trials of C and Assembler and parsers and lexers and such. I know the costs and performance tradeoffs of lists vs hashes vs trees.
I recently taught perl to a bunch of programmers, most of whom had either java or asp/jsp web backgrounds. None of them even knew what a linked-list was. Or a regular expression.
If there is a point to my babbling, it's this. There are both advantages and disadvantages to the self-taught programmer. Remove the disadvantages. Learn 13 or 14 different languages (i'd recommend postscript, lisp, icon, prolog and c to be exposed to a lot of different types of languages). Learn how a compiler works. Learn lex for lexical analysis. Learn yacc for parsing. Learn how a shell works under the hood (that will teach you a lot). Learn the four types of programming. (See
Why I like functional programming for more details). Learn graphical toolkits and databases and cgi and networking and anything else you can.
Give yourself a huge toolbox. Make yourself marketable. Make the answer too every question, "I can do that."
-pete
"Pain heals. Chicks dig scars. Glory lasts forever."