One of the first questions I asked myself before starting in the web development world was whether I wanted to be a front end developer or a back end developer. My goal had always been to become a full stack developer, since being able to play on both sides of a project was a fascinating idea. However, in order to reach that goal, I had to choose a starting point (as the saying goes: before running, you have to learn how to walk).
As usual, I started to investigate which of the two areas was the most recommended to start as a web developer. I found divided opinions: some in favor of starting with the front end, others in favor of the back end, and so on. As if by "magic", the Internet started to do its thing: I started to see ads in my social networks offering courses on how to become a web development master in just 30 days, or how to become a web ninja developer in record time. After so much information, so many ads, I had made the decision: I would start with the Front End.
My starting point was JavaScript, perhaps the most used modern programming language worldwide when we refer to the web. My goal was to have a solid base to be able to jump into JavaScript based frameworks, such as jQuery, Angular, ionic, NodeJS, MongoDB, among others. After dedicating a considerable amount of time, and having taken a couple of courses, I decided to dabble in my first framework: Angular.
Basically, Angular (evolution of AngularJS) is a front end framework, powered by Google, which is used to create single page web applications (SPA), perform server-side processes (using NodeJS), and even mobile applications. I must confess that, as I was progressing with learning the framework, I was feeling more comfortable with my choice: components, pipes, attribute directives, lifecycles, forms, etc.
The first interaction I had with the back end was using Firebase as a REST back end. It was my first steps doing HTTP requests, in which I started doing a basic CRUD (Create, Read, Update, Delete) to understand the operation and interaction between the client and the server.
At a certain point, after doing different projects as practice, I felt that I reached a level where I felt I had a good base of the framework, and almost by fate, I was assigned my first task. How to solve the task I could not find it in all the courses I had done, but without a doubt they were of great help to be able to develop myself in the best way and to be able to apply all the knowledge I had acquired.
My first steps I had on the back end side were in a project developed in .NET. Before starting, I had to understand different concepts that were new to me: what were controllers, entities, models, migrations, etc. Understanding each concept separately was easy, but understanding how they work together and how they are related is something I still struggle with.
Personally, I also started developing back end servers using NodeJS. Since I previously had knowledge in Angular, I was quite interested in being able to handle the MEAN stack (MongoDB, Express, Angular and NodeJS).
It was very enriching as I was able to learn new concepts and reinforce previously acquired ones: creating REST services, uploading and managing files on the server, Json web tokens, Heroku deployments, Git and Github deployments, SQL, MySQL, stored procedures, among others.
Definitely this transition that I have been having has been really satisfying and rewarding. Being able to understand how the front end and back end work within a project has allowed me to have a broader vision, which leads to having the ability to propose new ideas and improvements that perhaps I could not think of before. I have also understood that communication between the front end and back end teams is fundamental and essential to be able to carry out a good software development.
For those people who are thinking of making this transition from front end to back end but have not yet made the decision, my advice is: do it, take the risk. You will learn many new things, new concepts, you will see how your vision of a project becomes richer every day, and the only thing you will regret is not having made the decision earlier.