With my site turning one year old this weekend, I wanted to take a moment to reflect on my position as a programmer. As my business card reads, I am currently a "Developer" for Nylon Technology. I have never been considered as or labelled as a "Senior Developer" at any of my companies. And, to be honest, I have never much felt like a senior developer. A senior developer, to me, feels like someone who could successfully take a project from beginning to end, handle all aspects, and potentially lead a team in the process.
A senior developer is a leader and a mentor. Is this something that I can do? I would have to say it depends. On smaller projects, I can definitely handle all aspects. But, completing small projects makes me a senior programmer in the same way making awesome scrambled eggs defines me as a master cook. Am I mentor? Can I teach? I don't know. Do I have enough experience to tell someone "this is the way it should be done"? Does anyone have that kind of experience?
I have no experience with MVC, ColdSpring, Reactor, FuseBox, or just about any other framework out there. I hack together my own CFCs and frameworks according to my own level of standards. I don't know the pros and cons of much of anything out there. I love reinventing the wheel. I don't know how to write Data Transfer Scripts in SQL. I don't know how to modify a SQL data table structure without using SQL Server Enterprise Manager. I have never written a good "site search" for a web site. I have never lead a team of developers. I have never distributed tasks.
I do know a tremendous amount of information about ColdFusion and web development in general, but does what I know define me as a senior programmer? Would I be comfortable mentoring people? Would I be comfortable telling people what is right, or at least what is on the right track? Would I be able to tell people what is wrong and feel good about myself?
I have to lean towards, No. I do not feel I am ready to be a senior programmer. I have more to learn and many more leadership qualities to develop. For now, my label as "Developer" is appropriate. Maybe next year I will have what it takes.