Just like every job, though, there are specific requirements that dictate whether someone will be successful, or not. Programmers are to every company what engineers are to construction companies. They have the ability to develop something from nothing using only the power of their own mind and a few, relatively simple tools. Where construction workers create skyscrapers, programmers create systems of amazing complexity. Just like the building though, these systems give others a place to work.
Programming requires focus of thought and energy.
You have to be able to concentrate for long periods of time and go without interacting with the people around you. This is not the right career choice for a gregarious person who really enjoys being around and working with other people. Even in projects where there are multiple programmers, the interaction between them can be very minor. Programming, like other computer careers, takes place in nearly every company on the planet. The type of company you work for will dictate the type of work you do.