What's the best way to get started?
Okay, you think you may be a good candidate for programming, and now you want to know where to start.
Your first thought might be to enroll in a class somewhere. That's logical enough; courses teach things and you want to learn. But it is probably not the right choice.
The first problem is the cost. College courses vary widely in price, but none are exactly what I would call cheap. At this stage you are primarily trying to discover your inner programmer -- or discover whether or not an inner programmer dwells within you. If it turns out the answer to that question is "no," there's no shame in that, but you would like to get that answer as inexpensively as possible.
The second problem is that choosing a good school is a difficult and time-consuming process. You might have to go through this process eventually, and I'll discuss some tips about this later, but it's a lot of effort when you just want to get your feet wet.
The third problem is that it may take several courses before you find out for sure whether or not you really enjoy programming. Depending on your prior educational experience, and where you enroll, you might not be allowed to start with a programming course, or even a computer science or information systems course at all. And depending on how the first programming course is structured, it may not be a good yardstick to measure yourself against. Lots of undergraduate computer science curriculum start with an "easy" course that gently introduces programming concepts, requiring mostly mechanical operations from the students' brains with very little demands on their problem-solving ability. Ultimately, though, problem-solving ability is what programming is all about, which is why it's the subject of my book. So what happens is that the student sails through the first course with ease, because it's really a using-the-software course, like an Excel course, and doesn't discover the kind of thinking programming ultimately requires until a later course. By that time, the student has made a substantial investment of time and money, and is reluctant to stop even if things go poorly. This situation isn't good for anybody.
Or you could run into the reverse situation, a course that's very hard for you, but is it the material or the instructor that's not clicking for you?
I want to be clear about what I am saying here. Enrolling in a course or program, whether at a college or some independent training outfit, is an excellent idea for programmers. It's just not how I would recommend you find out if you are a programmer. (I feel the same way about any field. I wouldn't suggest enrolling in law school, for example, without doing everything possible to find out if you enjoy the law first).
Instead, I would suggest trying to learn the basics of programming on your own. Wait, I hear some of you saying: "That's crazy. Programming is tough. I need someone to show me the way." You probably will need some help, but not as much as you think, and you can get the help you need without resorting to a formal class.
So, to sum up, the best way to get started is to scoop up some resources (like books or compilers, that kind of thing) and start playing around with code. Before we get down to specifics, though, we need to answer another question: what programming language should you start with? And that's another article.