Matthew Kjer

@mattkander

Being a Junior Developer is tough.

Tools of the Trade

More often than not, you’ll come straight out of University, perhaps have an internship under your belt and exposed to a whole heck of stuff you didn’t know existed in the first place. I started a list of tools that I was exposed to in my first few weeks as a “Developer”: Docker, Rancher, Bamboo, Jenkins, Puppet, Maven, Gradle, Sass, Transpilers, Babel, Angular, React, JSP files, Continuous Integration and Delivery, AWS, Swagger, Inferno, Elastic Search, LDAP, Spring. The list goes on.

My point here is that in your first few weeks, months, if not years of being a software developer, you will be overwhelmed. There are so many industry standard tools and utilities that you just don’t hear about in an academic setting. We never learnt about CI/CD, how to deploy applications to an AWS EC2 instance, or how to debug a Maven project. Forget about learning industry standard tools, let me show you how to reverse a linked list again.

There’s a vast difference in the skills that university teaches you, and the ones you’ll need to become a competent developer. But realize this. You are not alone. Almost every junior I’ve talked to feels the same way. They come into the “real world” and are promptly humbled by the vast extent of learning they have yet to do.

There’s some good news though. Everybody knows. Every senior and intermediate dev out there has been through the same feelings of inadequacy, of feeling overwhelmed, of feeling like a fraud. They know what it’s like to have the title of “Junior Developer” and contemplate every life decision that lead them to take a job they feel like they don’t really know how to do.

So here’s my advice.

Embrace the feeling of inadequacy. Use it as the fire under your ass to learn everything you can. My first year as a developer I dubbed the year of the Annoying Talking Sponge. As an Annoying Talking Sponge, it’s your responsibility to ask as many questions as you can, and absorb as much information as you can handle. Do your due diligence first, if you have a problem, try fix it yourself, if it takes you longer than half an hour, ask. Most of the developers I’ve encountered are quite happy to sit and knowledge share because they’ve sat in your seat before.

Focus on depth rather than breadth. I assumed to be a competent developer that I’d have to understand everything about the software delivery process. I wanted to be able to write my own Spring backend application, design and implement the front end in React, plug it through to AWS then automate the build process with a CI/CD pipeline. What I set up for was an exercise in frustration where I’d flit from one technology to the next, gaining a general understanding of what it did, but without implementing anything.

The solution to this revolves entirely around focus. Take the technology stack you’re learning at work and build on that. If you’re writing back end code, take those technologies and do something to expand on it. I made the mistake of struggling with a backend Java project at work, then in my spare time I’d be writing front-end Javascript applications. Just because the senior developer in your team is full stack, doesn’t mean you need to be...yet. Build on the skills you need right now, secure that depth of knowledge, then flesh it out from there.

There are so many technologies and frameworks (looking at you javascript), it’s very easy to just nibble at everything and not make any substantial progress. Stay focused. I’m not saying stifle your curiosity. In an industry as dynamic as software development you can’t afford to do that. I’m just saying there’s a time to put your blinkers on and focus immediately in front of you.

Comparing yourself to others I’d also deem a necessary evil. “I wish I was as good as X, they know f*****g everything”. It’s an unfair comparison, but a necessary one. They’ve most likely been in the industry for several years, and this is your first. It would cheapen their years of blood, sweat and tears if you came in at the same level as a senior developer. Sure you’ll feel like you’re ‘not as good as’, or ‘know as much as’, but that’s the whole point of having role models and people to aspire to. These are the people you need to surround yourself with to learn! If you can, approach one of these people and secure them as a Mentor. It’s easier said than done, but you’d be surprised how many intermediate or senior developers are quite happy to take up that mantel for people they think are worth their time.

When I pressured some of these seemingly omnipotent lords of development how they got over this inadequacy hump they surprisingly all came back with the same answer…“It just takes time.” So, if you are a junior developer, perhaps feeling a little overwhelmed. Stay focused, work on things that are relevant to you right now, and just give it some time.

More by Matthew Kjer

Topics of interest

More Related Stories