I wouldn't worry about your psych BA getting in the way of being a programmer. Most computer people are pretty psycho in my experience, so it should be really helpful. (joking ... sort of)
Anyway, I can't give you any concrete answers, but I can give you my impression and some advice based on my own experiences.
My impression is that you're a smart young man and that you're stressing out and maybe looking down on yourself a little bit. You're thinking, and that's a damn good thing to do. A lot of people don't. You don't need to pat yourself on the back or anything, but just be aware of yourself in that regard. If you're doubting your capabilities then don't. The people out there in the careers that you're thinking of were people just like you once upon a time. They don't wear magical programmer pants (or at least they haven't told me about them yet) and they don't have IQs in the thousands. They get up in the morning and brush their teeth and worry about life, just like you. That doesn't mean you should be cocky, or feel entitled, it just means that if you set your mind to it and take charge of your own destiny then you can be what they are - or better.
I won't tell you not to worry. People in modern society seem to think that if they don't worry about things then things won't cause problems. Worry is a sign of thinking. It's your mind's way of telling you that there's something important that you need to come to grips with. What I will tell you is that you cannot afford to let that worry discourage you or shake you. It's something to overcome. You're made of the same stuff as every one else out there. For better or for worse. If they can do it then you can too. So don't stop thinking about it and don't stop taking it seriously, but definitely take a step back every once in a while and look at how you're treating yourself. Do not
beat yourself up. It's bad juju and it will wreck you if it you let it go on too long.
The advice part is a bit more practical:
My experience with community college education was really hit and miss. Some classes were exciting and eye-opening and I cherish the memories. Some other classes - my 'Programming in C' class being one of them - were a flat out waste of my time and money. My advice in that regard is to talk to the instructor before enrolling in the class. If they seem like a flake then look for a better option. Ask them what you can expect to learn if you enroll. Don't be intimidated. You're paying for a service. Also, poke around the campus and try to find some students who have taken the course before and ask their opinion. You'll get some insight there as well, I'll bet you.
At the community college, I am already planning on taking programming classes. I'm still debating between C++ and Java, since some of the schools I want to apply to (e.g. UCSD) recommend Java classes, but I want to focus on computer graphics, so C++ makes sense. Can anyone see a reason as to why they would use Java instead of C++ as a requisite, or is that just arbitrary?
Personally I'd start with C++ and then move into Java, but both are well used languages. Once you learn a couple languages you'll start to get the Tao of Coding and additional languages become a matter of reviewing syntax and standard libraries over a week or two rather than spending a semester or two learning from scratch. The reason I'd prefer C++ to start with is that it's a little 'closer to the hardware' than Java. The things you learn about data management in C++ are more likely to set your mind in a way that thinks more efficiently (eventually - at the beginning it's all chaos, even if you start with assembly). Java is definitely worth picking up, though, and has some nice advantages, but don't think that school is the only place you can learn a language. If you become a programmer then I guarantee that within your career you'll pick up at the very least three additional languages and by the time you're done the languages you learned in school will have mutated into something new. Being a programmer doesn't mean knowing how to write in C++ or Java. It means being able to pick up a tool (language), RTFM and then use the tool well.
Other classes I plan to take have to do with data structures, computer organization, assembly language, discrete math, and probably more math (multivariable calc and linear algebra). Can you think of any more classes I should look for/absolutely need?
Wow, man. XD
I don't think you fully realize what you're setting yourself up for. Linear Algebra alone is going to do things to your brain that are illegal in many countries. I'm not saying that those are bad courses or anything, but you're really going through the looking glass doing that all in one sitting. To be honest, if you can think in strict mathematical logic for long periods without blood coming out of your ears then you're already twisted enough to learn all of that on your own (WELCOME TO MY WORLD HAHAHAHAHAHA). The classes are just a way to do it with a schedule and a tutor. Why don't you slow down a little bit and deal with that when you come to it? There's counselors at that school too, yes? They can let you know what you need. However, if you're looking at game development then a survey-level physics course will not go amiss. The concepts are more important than the homework in that case, though, so a low level class is sufficient. (Physics 100 or etc.)
Keep your head up. Like I said, you've got a working brain, and that's a huge asset. Make it work for you and don't let it work against you.
That's my two bits. Good luck. I'm rooting for you.
Edited by Khatharr, 19 July 2012 - 02:15 PM.