As a junior, or aspiring, web developer, you likely know that being a good coder is a vital skill in order to get a job. University degrees, coding bootcamps, online courses will all teach you how to be a better coder. What’s often missing is the other skills and areas of web development that will really help you hit the ground running when starting a job as a junior web developer. Acquiring these other skills will help reduce that feeling of being lost inside the vast world of web development. This article highlights a few of these skills.
One of the first obstacles you will likely encounter is setting up your local development environment in order to start working on new features and bug fixes, and ultimately testing that they work. Having a basic understanding of what a local development environment is, and why they are used is a quick and easy way to reduce the number of “I’ve no idea what’s going on” thoughts that pop into your head. In short, we want the codebase (and other things) on our machines to mimic what the live site is like as much as possible. It’s unfortunately not just a case of downloading the files and making a change. Most likely there’ll be more to it.
This isn’t just the code, it is the whole server and stack (e.g. MongoDB, ExpressJS, ReactJS, NodeJS). We can focus so much on the files of code that we forget that the site is likely to have a database, image and video files, potentially some 3rd party integrations and is set up in a specific way for the tech stack being used. A local development environment uses tools to mimic the live environment as much as possible. Tools such as Docker and Vagrant enable us to create an independent server setup on our own machines that are as similar as possible to the live site. We can replicate the tech stack used on the live site in order to be able to test our changes locally with the highest chance of the changes working as expected on the live site.
When starting on a new project, one of the first things you’ll do is get the website set up locally and so having a good basic understanding of local development environments and the tools involved will really help you hit the ground running.
Another way to make an impact in a new role is to help them with their documentation. Documentation is vital for all development teams. Without well-written documentation, junior developers are going to find themselves confused and will encounter problem after problem. Often a team will be working on a project and they might create documentation for how to set the site up locally, how a 3rd party integration works, how payments get processed, how emails are batched and sent.
In an ideal world, the documentation will be written at the time of the creation of the feature and it’ll be kept up-to-date with changes over time. This allows the onboarding of a developer onto the project to be as smooth as possible. It’ll allow the project to keep running efficiently once the original developers have moved on. Documentation is vitally important so knowledge is not lost over time. It’ll save time when onboarding new devs, but also decrease the likelihood of a bug creeping into the project due to a lack of understanding of how the site works. Documentation saves time and keeps quality high.
Now this is where the junior developer comes in. Often it’ll be a junior developer being onboarded onto a project. They’ll be given the documentation for how to set the project up on their own machine. The documentation might be missing a couple of steps, or is a little outdated and the junior developer will only realise this after struggling for a while, and finally getting another developer to help them out. It is critical that the documentation is updated at this point. If it’s not updated now, it’ll likely mean it’s not updated at all and the next dev onboarded will run into the same problems. Changing the documentation at this point will be the best for the team and will likely catch the eye of the other developers on the project.
Every software developer Googles problems they’re having in order to help find a solution. Often other developers will have had a very similar issue and you find the solution on Stack Overflow. This is a common approach for developers. It’s very tempting to copy, paste and move on. It’s important for your learning that you don’t paste and move on. Try to understand what the solution is actually doing. Have a good look and Google the concept of the solution if needed. If you’re getting nowhere, ask another developer if they’re able to understand and explain it to you- it’ll very likely take less than 5 minutes. Without spending the time to understand solutions to problems, your progression will be much slower. You need to keep in mind that fully understanding why a solution works is vital to becoming a better software developer.
Another example of this is copying and pasting similar code from the codebase to be adapted and used somewhere else. This is a common solution but it’s vitally important for your learning that you make a good effort to understand what the code is doing and why it works. After talking with another developer, if you’re still unsure, make a note of the concept to return to in 1/3/6 months once you’ve gained more knowledge elsewhere. This is another technique that’ll improve your understanding greatly over time.
It’s very much ok to not understand all web development concepts - it takes many years of learning. This is to be expected and the knowledge will come if you’re committed to learning. We’ve gone through just a few things, but doing each of these thoroughly will put you in a good place when starting out as a junior web developer, and throughout your web development career.