Mom, I want to be frontend
Well, you have decided that you want a frontend developer. Is it enough to learn Javascript well?
A few years ago, web development was finally divided into backend and frontend. Since then, the evolution of front development has been spectacular. In fact, I would dare to say that progress has been much greater in this specialty. In addition, every so often we witness the appearance of new libraries, frameworks and functionalities that push this world a little further. What used to be limited to HTML, CSS and a bit of Javascript is now a conglomerate of concepts and technologies that must be followed carefully so as not to be left too far behind.
The other day they asked me if I saw sense in the figure of the layout designer in 2020 and, unfortunately, I answered no. Right now I find it very difficult to imagine front development without Javascript. In fact I go further: I would say that it is not enough just to know this language and master some of its frameworks / libraries, but to be more and more complete we need to know a few more things.
Let’s see them!
The browser
The browser is to front development what air can be to an aeronautical engineer: it is the medium in which our application will run. That is why I think it is vital to know its operation and the tools it provides us with.
I was reading an article today about the fact that a fingerprint authentication system is already being implemented in modern browsers through the WebAuth API to take advantage of the readers that the devices incorporate.
Another interesting API that I recommend you to check is Payment Request, about which I already wrote another article:
That is not to mention the large number of utilities that we have at our disposal in the browser developers console: performance analysis, visualization of load data, debugging console …
That is why from time to time it does not hurt to review the latest news that have appeared in order to have a wider range of options to develop our web application.
SEO
Yes Yes. I already know that there are departments specialized in positioning web pages within browsers. However, many of these techniques that are used ultimately require programming, since not everything can be achieved through Google Tag Manager.
For example, the emergence of the AMP framework has introduced a new way of creating our web pages while over-optimizing them for indexing by search engines.
On the other hand, having a reduced loading time is increasingly necessary if we want our page to be “well seen” by search engines. Not to mention the notices that Google is going to issue regularly: “either your website has a mobile version or you will disappear from the listings.”
By this I don’t mean that you need to become an SEO specialist. However, I think that it never hurts to be up to date with the main developments in SEO so that when the time comes to integrate them we are not caught by surprise.
In addition, we do not always have an SEO team that is in charge of reviewing what we do, so if we can contribute something of value in that sense to our website that we will gain for our clients.
API’s
Developing for front means forgetting about creating the APIs, since that (for now at least) is specific to the backend.
However, I think it is interesting to have notions of how APIs are defined and the best way to consume them.
If we work with REST APIs, I think that understanding the difference between a POST call and a PUT / PATCH will reinforce the structure of the application we are building.
Furthermore, with the appearance of GraphQL, the consumption of APIs has come to depend more and more on the front, since we are the ones who specify the fields we need from each entity. In fact, the Gatsby framework that I talked about on my channel recently builds its own API on GraphQL:
Therefore, my recommendation is that you spend some time familiarizing yourself with the world of APIs: their main concepts, paradigms and libraries (such as Apollo) to connect to them.
Tests
It might seem at first that testing is something more than the backend. Nothing is further from reality. As soon as your application reaches a relevant size, tests are your lifeline to add functionality without worrying about breaking something along the way.
Having a good suite of tests will also allow you to live with the certainty that as you develop everything continues to work and you will be able to anticipate possible bugs in your code while you implement them.
Surely more than once you have had to deal with an error caused by an undefined value
Therefore, not only focus on learning the latest fashion library, but invest time in learning to use the tools that allow you to define tests on the elements of your application: you will learn a multitude of things along the way that will serve you during the rest of the your life as a developer.
Design and UX
Being a frontend implies that sooner or later someone will see what we are developing. In the same way that it happens with SEO, we will not always be lucky enough to work on projects that have a design / UX team.
I’ll tell you something: my aesthetic sense is lousy. I am one of those people who were born with a null aesthetic sense, so when I started working as a developer I had to spend a lot of time learning the basic concepts that would allow me to design websites that did not hurt the eyes.
It is likely that in the whirlwind of day to day from time to time you have to implement changes to the final design that you will have to think about. Trust me:
It may already be the greatest work of art at the logical level, that if it looks ugly no one will value it well.
The same will happen if you prepare a view that the client doesn’t know how to use. It often seems that we live in an idyllic world where there are multidisciplinary teams that divide up tasks and everything works like perfectly oiled machinery. In real life, the story is different, so since you are going to specialize in frontend development, invest some time in making what you do look good.
The same applies to the UX. We live in times when we consume information at breakneck speed. Read related articles on this topic from time to time: they will open your mind much more and you will discover very very interesting things about how the human mind works.
Final thoughts
Do I really need to know about all this? If you have ever read me or follow me on Linkedin you will know that I am very critical of this trend of always being up-to-date in everything. “Apprentice of everything, expert of nothing” is a saying that perfectly sums up my position when it comes to accumulating knowledge without rhyme or reason.
However, I do think that having notions about everything that surrounds what we do is very helpful. And not only from a purely professional perspective, but it will also allow us to grow on a personal level. The case of UX is a good example. Many of the reasons behind the color of a button or a bold type are more linked to the functioning of the mind than to a mere aesthetic question. Learning about these topics and later applying them while programming is very satisfying and will make our day to day in front of the screen much more interesting.