Unless you're a brilliant programmer, you've got little chance of securing a role as a well paid developer.
I always use the analogy of working in a kitchen, where there's a chef and an array of commis chefs. The chef is the important one, whose skills and creativity weighs heavily on the success or failure of where they work. The commis chefs on the other hand are just helpers, to cut the vegetables, to make a stock, to do all the boring and menial stuff.
Commis chef's are easy to find, they're cheap to hire but a good Chef is something different. They can be difficult to find and they can be expensive. Likewise with programmers, if you're just a commis chef type programmer, then the opportunities are limited, along with the salaries on offer.
If on the other hand you are a 'Chef' type programmer, who's creative and very experienced, you could make a lot of money. Unfortunately, most of the apprentice programmers out there, aren't anything special to employers except a cheap source of development.
I found that a career in programming has two major disadvantages:
1. IT programming jobs are the easiest jobs to outsource to places like India. So is it really worth putting all the time and effort in developing a programming career, only to find your job is being outsourced to some person in India. Who can do the job for less than a third of your salary?
There's hundreds of graduates being churned out every year in India with incredible programming skills, with most proficient in two or more programming languages. This is serious competition for the programmers in the western world to consider and a tempting opportunity for many companies to cut their programming costs by tapping into India's programming skills.
2. Real life programming jobs can be incredibly boring because they only concentrate on a small part of a person's skills. So for example, you could end up coding the same stuff over and over again, like spending most of your time developing routines for calculating tax.
This limits career progression as your skills sets can't be expanded upon and if you don't use your skills regularly, skills are easily forgotten and lost. At one place I worked, there was a programmer who'd been coding the same type of calculations day in, day out for 20 years.
So whilst his skills in this area were good, the rest of his programming ability was very poor and he wasn't able to move to another job as a consequence. He spent a lot of his working time trying to find a better job by trawling the internet for computer programmer career search but was stuck in his present job.
Unless you can find a programming job which offers the opportunity to work on the full Software Development Life Cycle, there's little point in doing a computer programmer career search.
Competition for jobs involving working with the full SDLC can be very intense as there are many more experienced candidates to compete with. The chances of finding a well paid career in programming with little or no experience is going to be tough.
The SDLC phases are:
* requirements and cost/benefits analysis;
* detailed specification of the software requirements;
* software design;
* user and technical training;
It's apparent from the SDLC, programming is just a small part of the overall cycle, with other parts of the SDLC possibly offering greater rewards.