Everything you need to know to become a junior web developer
What are front end, back end and full stack developers? What kind of jobs can I get as a junior programmer? In the last part of our series we’re going to answer these common questions
We have come a long way with your first steps in the programming world: in the first part of our series, we’ve discussed why and how to start coding and learn more about technology, and we also found out what are the best languages for beginners. In the second part, we had our first contact with some fundamental concepts that apply to most programming languages, such as variables and operators, and we wrote our first lines of code. In the third part we talked about the debugging process, the most common types of errors we can find and some tools to identify and fix them.
This article was written in collaboration with my great friend, mentor and computer wizard Joaquín Tumas
It’s often overwhelming to look for coding tutorials and online courses. Most of them require some previous knowledge or a technical background, downloading and installing programs and packages, and not much time is spent explaining the basics. This series is meant to fill this gap and give you a big picture about the development world, and in this last part I want to discuss the possible paths that you can choose if you decide to become a web developer.
Keep in mind that you don’t need to choose a path right away, and there are many other jobs that you can find in tech apart from the ones we’re discussing here — some of them don’t even require coding skills. It’s okay to take your time, explore many paths, learn a little bit of everything and decide your specialization later. Personally, I started out with an open mind, and I went through a couple of different programming languages and frameworks, until I found what works best for me. Tech is a very dynamic market and there is a niche for every skill, personality and goal. Being able to grow and adapt is much appreciated and rewarded in this industry, so let’s get started. If you have any questions about career paths and being a web developer, feel free to ask in the comments.
Client, server and database
First, we need to understand how an app is organized, and for that we use a structure called the client-server model. If you want to know more about this, I recommend searching for these phrases: separation of concerns, 3-tier architecture and model-view-controller design pattern. For this introduction, we’re going to divide the web application in three main parts: the client, the server and the database.
The client is the part that the users see and interact with. When you type ‘‘cats’’ on Google and hit enter, the client is going to send a message to the server, that will request the information you’re looking for from the database. Then, the database is going to send back to the server everything they have stored about cats, and the server is going to serve it to the client, so they can show you the results on you screen.
This way, we can say that the client takes care of the visual part of a web application, and the interactions with the user. The server takes care of sending and fetching data from the database, which is the place where all the information is stored.
The person that takes care mostly of the client part is the front end developer, and the one that manages the servers and databases is the back end developer. A full stack developer is someone that understands the whole process of web development and can build all parts of an application. It’s important to note that apps are built in teams and even if you decide to be an exclusively front end programmer, you’re going to have to communicate with back end colleagues and vice versa, so it’s nice to have some knowledge about every step of the development process and how these parts connect with each other.
Common front end technologies
Common back end technologies
The back end is the place where the services, APIs and algorithms happen. If you like solving complex problems, using logic and writing algorithms, you might enjoy back end development.
In addition, SQL is an important skill if you want to work with databases, and it’s normally used with an extension such as MySQL, Ocacle or PostgreSQL. Apache web server, Docker and Github are some other tools that you’ll probably use in a daily basis.
Is it better to be a full stack or to specialize?
There is some controversy about the existence of the full stack developer — in my experience, most programmers prefer either back end or front end development, and even full stack devs end up being more specialized in some technologies than others. Web development is a very broad field of different processes and technologies and no one knows everything, so don’t be intimidated by that and remember that you’re going to be working with diverse teams and the sum of everyone’s talents is going to result in a complete, functional web app.
How can I find my first job as a junior developer?
You can use websites such as Linkedin, Indeed and Glassdoor to have a better idea of the jobs offered and their requirements, salaries and conditions. Salaries in tech are usually higher than average for almost every country, and companies tend to be more modern regarding dress codes and remote work. On the other hand, it can definitely be harder to find your first job as a programmer, as there is a lot of competition and there are companies that don’t want to hire someone without any experience. You can look for companies that offer some trainee program, or even start with small freelance gigs using platforms like Upwork.
If you don’t have any professional experience in tech, try creating some personal projects and you’ll soon have a portfolio to show. I also recommend capitalizing on your soft skills and other experiences, professional or otherwise. For example, before working as a programmer I was a teacher, so I can mention that I’m good explaining things to people, leadership, and organization. Besides that, I speak many languages, which shows I’m a good learner. Soft skills are somewhat underrated but they’re becoming more and more important in the recruitment process.
In essence, programming is about instructing a computer on what tasks to perform, to reach a specific goal. We could say that programming is “solving problems through a computer”, and often those problems are real life, complex issues — for example, creating an app that allows me to get easy and inexpensive parking. To achieve this, we would have to break the issue into small parts that can be solved with coding — one of our tasks could be “given a representation of a map with parking lots and my position, I want to get the closest and cheapest to the given position”.
It’s important to note that there is no single solution to a problem: we have to find a solution that is also the most efficient. If we ask our app “where to park” and it answers three hours later, using up all our phone battery, it’s not going to be useful. The programmer is then a person passionate about solving problems and challenges on a daily basis, and that can also work with creativity and understand the business context and the user needs.
Additionally, the programmer has to work well in teams, and think of their colleagues by writing code in a clear, organized way. We don’t want to write code that no one will understand later (maybe not even ourselves), or create something that is not maintainable in the long term.
Now you’re ready to begin your journey as a programmer! Hopefully this guide gave you some direction on the skills you need to develop and what languages you might be interested in, and some basic concepts to not feel completely lost when you start a course or tutorial. I don’t want to give you an extensive list of courses or extra materials because they’re pretty easy to find and because I believe that being able to google things is one of the first skills that a programmer must develop. Let me know if you liked this series and what else you would like to learn in the future.
The complete series:
What are the basic concepts to learn as a junior developer?
What are logical operators and variables? What are data types? Why do frameworks and libraries exist?
What is debugging? How to identify and fix common errors as a junior developer
In the third part of our series, we’re learning about debugging, the art of finding and fixing common errors in our web…
Thank you for reading this far! Sign up if you want to read more about technology, traveling, learning languages and living abroad.