First things first, A bit of background on me:
I left college at 19 with a certificate in Creative Media (Games Development) this covered a little bit of everything from EDP (Event Driven Programming) to games audio. After leaving college I managed to wrangle my way in to a full time job as a junior .NET developer (ASP.NET, C#, Visual Studio and the like).
The first company I was working for were set in their ways that everything was I.T’s fault and they shouldn’t be allowed to do anything (and, more importantly not get any budget). A few months pass and I end up leaving the first company, along with pretty much the whole I.T team who were working there at the time. I’d spent my time doing quick fixes, fighting with archaic legacy systems and the like. There were no ‘greenfield’ projects and I’d learned more about how not to do things than how things should be done (which in a way was useful).
The second company I ended up working at seemed good on paper, they were using the latest technologies the .NET framework had to offer as well as offered routes through Microsoft certification (note: I have not got a university degree). But this company turned out to be a mistake, after a few weeks I felt the environment and work ethic were just not right for me and I ended up leaving. Looking back and speaking to colleagues I really should have paid more attention before accepting the job, my drive to get out of the first company’s sinking ship influenced me the wrong way.
OK, so what does all that have to do with being a phony developer? Well, I’m now in my 3rd job in my relatively young career, I’ve been working for approximately 15 months now and I still find my self in situations where I think to myself:
‘who am I kidding?, I shouldn’t be here, I barely made it through college, how did I make it through three interviews and pass them all? Eventually I’m going to get found out. I don’t have a university degree to back me up either.’
And it really gets me down at times. The other developers around me at work all seem like ninjas compared to me. I have some knowledge but there seems to be more and more gaps opening up. I know the basic principles of OO (Object Oriented) design, TDD (Test Driven Development) and some architectural design patters. but there are situations where I’ve ended up asking someone ‘How do I share a variable between methods?’ I mean geez, I really shouldn’t be in the job I am in and on the salary I’m on if I don’t know the basics right? Maybe, I should just pack my bags and take up something else.
EDIT: I’ve come to learn to accept my shortfalls, we all face challenges whoever we are. It’s the best people that find the ways of over coming them. In the future I’ll look back on this post and remember that it’s not that you fail. but you learn from your failures.