How to become a Backend Developer
Find out who is suitable for the profession of a backend developer, how to study, where to gain experience and how to find a job. Here are some tips from Google Software Engineer Vlad Gaevsky.
In this article
Who is suited to the profession of backend developer
— In 2014, I joined EPAM as a junior backend developer. I've been writing in Java ever since. After EPAM, I moved to an American product company, which was later taken over by Google. That's how I ended up in Warsaw in one of Google's offices.
Who's the right fit for the backend developer profession? Definitely someone who likes to understand how things work and what will work in a given situation. If, as a kid, you were interested in seeing what was inside a toy — taking it apart or breaking it down to see how it worked — you might be a future backend developer. Or do you have an interest in physical processes — wanting to understand why something freezes or something flies? In general, if a person has a zeal to understand the causes of things, then this is the profession for them.
The profession may also suit those who are good at describing any kind of algorithms. Later, this skill will help in writing code. Anything can be described by an algorithm. If a person notices that they can write a recipe very clearly and well, step by step, so that absolutely any person can cook it (not just someone who has a lot of experience in cooking) then they probably have the necessary ability. If someone is good at explaining something step by step, using a clear series of actions, this is an algorithm, and they may want to try their hand at the profession of a developer on the backend.
How to learn backend development from scratch
— Learning many things requires theory and practice. Backend development is no exception.
There are quite a few resources that you can start diving into, some of them are even free. First, there are books available on any programming language. Download the pdf format and start reading. I recommend:
- Head First Java by Kathy Sierra and Bert Bates;
- Effective Java by Joshua Bloch;
- Thinking in Java by Bruce Eckel; and
- Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert Martin.
For those who don't like reading books, you can start by watching YouTube channels with titles like “Java for Beginners,” “Ruby for Beginners,” etc.
You can also read professional articles. This will all help to build up your theoretical base. In my opinion, it's not necessary to pay a lot of money for courses to learn the theory unless doing so motivates you to complete your study of the material.
— Practice should reinforce the theoretical knowledge that you gain. And this is where attending courses can help. But you can do without them, too. I advise you to start solving the simplest problems. Take any common question or issue, for which a solution will help you in your life, and write a code for it. For example, calculate some compound interest in the bank. Write the most trivial program without an interface, something like: how much money I will get in N years, if I deposit X amount of money in the bank at Y rate of interest. At first, you can do this as a calculator for your specific variables. Then, you can make it more complicated. Any issue that you need to solve in your daily life can be automated and transferred into the program. Doing this for even the simplest tasks will help, because at the early stage of practice you have to just start writing code. If this is your thing, the process will take you over. My younger brother also decided that he wanted to program. First, he made console games in Python, something like tic-tac-toe. Now, he's implementing emoji for his beloved Minecraft. Personal engagement is very important for motivation.
After this stage, it's important to get into internships and work on real projects. To do so, you need to look for companies that offer such internships. Google, for example, arranges internships. In an internship, you can work on tasks that are close to the real world and real work and, if you finish successfully, you may get a job offer at that company or another one.
Duration of learning
— When I began my journey, I had college studies at the same time. With a distracting factor in the form of studies or other work, you can still learn to develop on the backend in 6 months. If you try very hard, perhaps even in 4 months. This period covers the time from when you start reading the first book, to the time you get an internship. Basically, it will take you 2 months for the theory and 2 months for practice. It is unlikely to happen faster.
You don't have to have a college or university degree, though. Skills are more important in this profession.
Where to get experience
— To get experience, you need to look for companies that offer internships. If you can't find any, you can include your own projects in your CV. The main thing is that they should be interesting and not too easy. You can emphasize that, in addition to the main language, you used several third-party technologies and/or frameworks. One of my first projects was a web page for online translation. I didn't actually do the translation, but I did the wrapping around it. This is the kind of project that you can talk about in interviews. The main thing is to put it all on github.com. The first stage of any job interview, for any company, is the tech screening, which checks to see if the candidate can write code in principle. Having a page on github.com will show that you know how to use other technologies. This will raise the interest of the employer.
Tips for the novice backend developer
— What advice would I give to newcomers? The most important thing, if you have already joined a company, is to constantly keep an eye on what your older colleagues are doing. Work will be boiling around you, and you will have a lot of tasks, but it's always good to see how others solve problems. Look into their code and gain experience. Never get hung up on one technology stack. Once you've been chosen for a project or an internship, it will generally focus on one technology stack. For a junior, however, it's deadly to get hung up on one particular stack. If there is no possibility to study another stack at work, then go to the Internet and watch reports about another stack. You need to broaden your horizons all the time.
It is also very important to go to conferences. This was more difficult during the pandemic, but offline conferences have been revived. I recommend offline conferences — they help expand your networking, and also awaken your desire to get involved in the specialty. Tickets are usually pretty inexpensive, and the experience always pays for itself. And, of course, MITapps. They are often free. If you simply sit at home and work, your development and movement in the profession will progress more slowly.
Is it hard to become a backend developer
— Is it difficult to enter the profession? Nothing is impossible. At one point, it seemed even easier than I thought it would be. Everyone has their own obstacles, though. Success is not decided by innate ability or by your grades in mathematics at school. All that matters is whether you really want to follow through. If you take on the challenge, and set a goal to learn to be a backend developer, success is possible for almost anyone. The level of difficulty is determined by your intrinsic motivation.
During all the time that I've been in IT, I've had a lot of people ask me what textbooks to read, and what to look up on YouTube. I even had a ready answer for these requests with a list of links. But 90% of the time, providing this information got me nowhere. People didn't pursue it. Bottom line: there is not going to be a single link that I click that will get me work tomorrow. Instead, there will be many links, many opportunities, and if you have the will to follow through, you will definitely be rewarded.