I tend to think, I tend to overthink. My mind plays a merry go around of where I've been and where I may or may not be going, until it slows down and picks a particular vision to focus on and replay (over and over). In this particular episode I somehow got focused on my first job out of university and those first few weeks, the first few months even.
I was the proverbial rabbit caught in the headlights!
I'd spent 4 years completing a Computer Science degree and having successfully navigated the interview, I'm sat at my new desk, in the wild, surrounded by developers all talking to each other in what can't have been the English language, surely, yet they all seemed to know what each other was saying. I even fumbled around trying to get my new laptop connected to the laptop dock that was provided.
Everyone is staring, they know I'm a fraud, they know I've never been near a PC in my entire life and they surely know I couldn't even write a "Hello, World" program.
Through my 4 year degree course I'd mainly coded in a mix of Java, C++ and VB6. I was somewhat familiar with C#, yet here I was, a newly inaugurated C# ASP.NET developer. First task.... "We're looking into this new CMS system, can you investigate it, look into it's functionality, play around and get familiar with it? ..... Oh and can you put a presentation together and present your findings in a couple of weeks?" More panic, the sweaty palms and a heartbeat to end all heartbeats.
Roll on a couple of months and I'm on a new project team, I'm working with a couple of guys who really know how to code and I'm feeling a little bit more comfortable but still somewhat out of my depth. Particularly when I hear (for the first time in my life) the terms Dependency Injection and Unit Testing. Wait! What?! You did a CS degree and these hadn't come up?
Correct. I'm sure CS Degree curriculum's have come a long way since I was in Uni but these things just hadn't come up as part of our directed learning and I guess how I'd approached my self-directed learning meant I'd missed them too. I digress, the point I was getting to was that initially this "dependency injection" thing, in particular, just didn't make sense. I couldn't quite grasp the benefits but the rather knowledgeable chap imparting this knowledge upon me believed in it's benefits wholeheartedly. I still didn't get it. I've been here a few months now and I'm still a fraud.
Again, some time went by, I moved to another project and slowly but surely everything just became normal. I picked up that foreign language those developers were talking back when I first started, my confidence in my technical abilities grew and I forgot about that guy who fumbled and panicked in his first few weeks.
That said, 12 years on... guess what?
I still feel like a fraud
To all you new developers out there, starting your first job, maybe feeling the same way I did. I just wanted to say it's OK. It's going to be OK. You'll never know everything and there will always be someone with more knowledge about something than you, and ultimately you will know more about something than someone else. Time will be your friend.