5 Things for Beginners to Know
by Chris Northwood
When I first entered software development, being a software developer without a degree was rare, and self-taught developers with no experience found it hard to get their foot in the door. Fortunately, for beginners nowadays, the boom in development jobs allows a wider array of paths to exist for new people to join the industry, whether through apprenticeships or bootcamps. But, no matter how you trained, there will always be skills that you only ever learn on the job. Here are five things I didn’t know when I started in my first job as a software developer, and things I help junior developers who I mentor learn:
- Knowing how to code is only half the battle
One step beyond knowing how to code is knowing what to code. What makes developers invaluable to an organisation isn’t their coding ability (although that certainly helps), but it’s how much you understand the problem that is trying to be solved and coding up something that does actually solve it. In some organisations, especially large ones, people with job titles like product owner, business analyst or designer might tell you what to build, but human communication, unlike code, can be fuzzy and unclear. As a developer, getting to know the wider problem helps you understand the what, and techniques such as Three Amigos and Behaviour-Driven Development can help you gain that understanding.
- Everyone Googles
- Be Curious
The easiest way to learn a new language or framework isn’t to learn how it works, it’s to learn why it works. If you learn the why, then that foundational knowledge means that if you come across a new bit of the language, it gives you a way of understanding it. So, you should be curious—as a beginner it’s okay to slow down now to understand things, as it will allow you to speed up later. If you need to implement something, and you find an answer on StackOverflow, or if you’re using a library that you wouldn’t know how to implement yourself, then spend a bit of time understanding how it works, rather than just knowing what it does, and you will be able to build your development knowledge more generally.
- There’s Rarely One Right Answer
When writing software, there’s rarely only one way to do something. That means that when you’re about to do something, you should look for alternatives to the way you want to do it to find out what those alternatives are and broaden your knowledge base. Learning how to weigh up two options to determine which one fits you best is a useful skill to know, as sometimes it helps you identify when you don’t know enough about the problem to make the best decision. For example, if you are building an app with a database, should you use MongoDB, or MariaDB? Understanding the types of queries you will need to make, and the type of data the customers will be storing in it, is needed to make the right decision. As a beginner, asking about alternatives can also be a good way to learn when something is the wrong answer. If a more senior developer tells you to do something a certain way, ask why they want it that way instead of an alternative way. This can help you learn what is appropriate and when.
- Be Confident
The final thing to say is that you should be confident in your abilities. At times you may meet another developer with an ego that makes you question your own ability, or a code review that seems very harsh, but remember that it’s not fair to compare yourself to a developer who may have years more experience than you! You should be open to continually learning, and that can make you stronger in some areas than more senior people. Don’t understand a decision, or someone says something that seems wrong? Ask, rather than assume you should already know the answer. Maybe it’ll highlight a gap in their assumptions or a mistake they’ve made, but at the very least it’ll help you be a better developer.
These are just a small selection of things, and I describe many more of these in my book, The Full Stack Developer, which is aimed at new or junior developers to get a broad understanding of modern full stack web development.
About the Author
Chris Northwood is a Senior Software Developer working as a freelancer consultant. With a career starting out with Computer Science degrees from the University of York (BEng) and the University of Sheffield (MSc), Chris has worked at major organisations including BBC Research and Development, ThoughtWorks & the University of Oxford, as well as freelance work. He wrote this book distilling the information he learnt over his career as it's the book he wishes he had when he started.
This article was contributed by Chris Northwood, author of The Full Stack Developer.