After reading So you want to be a programmer do you still feel you want to be a programmer? Then let’s take a look at the time you will need to invest in your new trade to become a junior or senior member of a team. These days people want to move up the ladder faster than they should. and in the programming profession speed is not a good thing. It takes time and practice to become good at anything.
Programming in particular it takes years to become good enough to move up. I think that promoting a programmer into a higher level position without the training and guidance they need just makes them a bad programmer. It also lets them pass on their bad habits to junior level people. Lets take a look at the different levels of programming.
Luminary (10+ years) is one who has mastered a skill and has set about improving their respective discipline. Some examples include: Ted Neward, Uncle Bob Martin, Donald Knuth, Oren Eini, Peter Norvig, Linus Torvalds. Luminaries change based on your skill-set.
Senior (7 to 10+ years, Level 3) is one who has spent the last 10,000 hours programming in a specific genre. There is a strong understanding of design patterns; they leverage asynchronous programming, queuing, caching, logging, security and persistence when appropriate.
It’s very possible that a senior will never reach Luminary. Luminaries are often found speaking and writing. They are actively trying to impact their discipline.
Mid-Level (4 to 6 years, Level 2) is one who understands day to day programming. They work independently and create robust solutions. However they have yet to experience creating or maintaining large or complex systems. In general Mid-Level developers are great with component level development.
Junior (1 to 3 years, Level 1) is one who understands the basics of programming. They either have a degree in software engineering or computer science or they are self-taught. Their code is continually reviewed. Guidance is given in regards to algorithms, maintainability and structure.
I hope that helps you in making a decision to become a programmer. Good luck!