Considering a career in Computer Programming... where do I begin?

morgothaod

Distinguished
Mar 3, 2011
1
0
18,510
Hi all,

I have no knowledge of computer programming but I am considering it as a career. I would like to learn as much as I can in 6 months before I go back to college (I have to wait that long to take advantage of tuition reimbursement offered by my employer). What should I focus on? I would like to have a firm grasp of the basics but I'm clueless as to where to start. If you guys can recommend some good sites, books, videos, etc. I would really appreciate it.

Thanks
 

cl-scott

Honorable
Jul 5, 2012
145
0
10,660
I hate to be the one who has to take a pin to your dream, but there is virtually no chance that in 6 months you will have learned enough to get you beyond the entry level programming classes.

However, that is probably ample time to find out whether or not it is something you really want to pursue, or just one of those grass being greener situations.

So if you have never programmed in your life, you'll need to start from the beginning. I would suggest starting with a language like Python. It's kind of lost its way since the 1.5 days, but it still provides probably one of the easier on-ramps to programming. You can do object-oriented programming with it, but it doesn't really force it on you the same way Ruby does, and it isn't a convoluted mashup of other languages like Perl. Both of those languages should be next on your list after Python though. Python is also free, available for Windows, *nix, and Mac, and there are a lot of free tutorials out there, as well as high quality material from the likes of O'Reilly publishing.

The main generic thing to keep in mind though, is that you want to learn the how of programming. Don't get hung up on how Language X handles recursion, learn recursion as a concept. As a programmer, you need to be able to pick up any language quickly, and be productive with it almost immediately. You won't do that if you are spending all your time worrying about how say Java handles encapsulation, instead of understanding what encapsulation is, so that you can pick out encapsulation functions in any other OO language. That's why it is a good idea to spend time with languages that are very different from one another. So after Perl, Python, and Ruby, maybe Java and C# would be a good next move, then for something radically different syntax wise, maybe something like Ada95. The added bonus to a language like Ada, is that there is an insane number of compile-time checks, so it will really hold your feet to the fire and not let you get away with sloppy coding. Even better if you're already bald, because you will tear your hair out trying to get even a simple program to compile, but the discipline it will force upon you will really pay dividends later.