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.
Top comments (1)
I don't know how CS degrees are today, but I know some people were able to get one will little knowledge of programming languages and tech in general. They were great at math and able to pass the exams but they barely knew how actual coding was about.
When I started my first full time job after graduating I was already able to code, but that came from activities not related to the degree. I was part of a LUG (Linux Users Group) and that was way more important than university for my coding experience, although having a solid background in math, or algorithms etc. is pretty important to my job, so I don't regret having spent time studying.
In the end you're right, it is going to be OK in the long run. When you apply for a job right after degree people don't expect to hire an expert developer, they want a junior and they know you'll not be as productive as a guy with 10+ experience in the field.
What I missed in my first job was an experienced dev to work with, as I worked on my project alone for most of the time. I think I did great, I had a great boss, the best one so far, but some mistakes I made were due to my lack of experience, and having another guy doing code review would have helped a lot. So my advice so young devs is to try peer programming, ask for help, don't be afraid to ask "stupid" questions and learn a lot from your team mates.