IT language of Front-End Developer
What does the Front-End developer do? What awaits them on real projects? What words and expressions do you need to know? And what does being a Front-End Developer have to do with manners, grace, and abstract thinking?
In this article
What does the Front-End Engineer do
— I think that everyone remembers the beginning of the unrestrained growth of software development. Anywhere Club Software Engineer Aleksander Shcherbakov explains that this phase began in 2019, when it seemed that the last chance to enter IT while it was hot was upon us. Spoiler: it actually didn't cool down after that. Front-End is one of the hype directions in IT. The development process itself is not a dull job: typeset, make edits (you know you love this part), communicate with designers, and live the good life. Customer requests have changed, though, and with them, the duties of frontend engineers.
From its early days as a conventional layout designer with a narrow job profile, the profession has grown to be that of a “utility player” — a specialist ready to take on any problem. I remember one very wise engineering specialist who said: "There is no more separation, you are not strictly DevOps, you are not strictly an FE engineer, you are not a BE engineer. You are an engineer." I agree with this statement. The varying responsibilities have increased and, with them, the amount of work required. I know from my own experience that if you have some skill with one programming language, it is just a matter of time and perseverance to learn another.
Vocabulary of Front-End developer
— The usual set of Front-End concepts includes the following:
- MR/PR Review (merge request review, pull request review) is a strategic part of a version control system that allows you to work with a developer branch of a project that is different from the master or main branch, to deal with a new feature/bug fix of colleagues, and then merge the developer branch into the main branch. Reviewing code requires no less focus than writing it yourself. And often, reviewing is more difficult, because you must dive into the context and details of a feature that you didn't write. You check the written code for compliance with the consents accepted by the team. You assess things such as: the purity of the code; its readability; the coverage of unit /e2e with tests; an attractive UI; the potential presence of edge cases (cases that were not taken into account in the acceptance criteria, but that are potentially possible in the flow of the user); the name of variables; functions; classes; compliance with SOLID/DRY principles; and so on. In general, everything that we’d all focus so carefully on if we were writing code for ourselves.
- Tech stack. In the Front-End, due to time constraints, everyone is used to simplifying everything: bundlers (project builders), frameworks, libraries. Therefore, mastering similar tools is considered a huge plus. Everything is done within the framework of the current trend of optimizing the application operation, and improving DX (developer experience) or responses to client requests.
- State managing. One of the most significant things, in my opinion, is data flow management on the project. This concept includes how they flow, where they flow, under what triggers, and under what dependencies the data move within your application. You can envision a hardened manager sitting at a table, pointing a finger to show what and where things should go. You are not expected to ask why, just to make it happen. Data flow management is a kind of primary source of truth for a project — you just need to remember that a large system requires granularity. Libraries such as Redux/Reatom can be very useful. Check out their solutions. Perhaps they will help you even outside of development.
What else you need to know
— Let's talk about what exactly you need to understand to become a Front-End developer. You’ll find that a set of soft skills is critical here, including language skills, manners, grace, abstract thinking, and the ability to ask the right questions.
— Language: html/css/js are the trio that you need to know and honor. Dig inside them, learn how they work, understand the essence of each, and then you will have the ability to build a question. And don't even worry if you don't remember how the method works. I'm exaggerating, of course, but the point is clear. It is better to know and be solid on the base concepts. Everything will come with experience and become automatic. Dig deeper, and read those who do so and digest the concepts.
— Knowledge of a language does not mean that you know how to handle it. You can write working code that is bad from the perspective of optimization and architecture. There are rules of etiquette, there are patterns of communication. This is true in many contexts, including development. Learn to write clean, resource-optimizing code. What's the point of using an immense number of words if the key point can be boiled down to one sentence?
— Everyone is familiar with the phrase: "A beautiful solution." Personally, when I see a beautiful solution in code, I am literally ecstatic. The ability to create one is achieved by combat experience, through trial and error. The more you write code yourself, the faster and more efficiently you will find the optimal and beautiful solution for a particular task.
— Abstract thinking is more difficult. Not everyone has the innate ability to think about complex concepts that are not concrete. The deeper you go into the study of anything in the development world, the more abstractions you will encounter. Often in the programming literature, they resort to a simplified analogy to explain a complex concept. Take a lesson from this, simplify everything that catches your eye. Personally, my life in the Front-End world was simplified by drawing. If a term cannot be easily explained, let your imagination run wild, think abstractly.
The ability to ask the right questions
— Has everyone already managed to get acquainted with fashionable new tools like ChatGTP and Copilot? They blew up the development industry at the beginning of 2023. The underlying idea, of course, is AI that does not ask unnecessary questions but writes code for you. I acknowledge that I was even a little afraid for my career. But after a little research and review, I decided that AI's superiority over human developers is still far away. Yes, a machine writes code well, and understands the context and the problem well (sometimes). But a machine will never formulate it for you, or have the flexibility in thinking like a human does. A competent formulation is 80% of success.
— In conclusion, I would like to add another important element of success in the world of Front-End. That world is developing superfast, every time you blink, a new gizmo will appear that will claim to simplify your life. Read and study tirelessly. Start your day by scanning Front-End digests. This will greatly simplify your life and reveal topics for conversation with colleagues. And of course — enthusiasm and more enthusiasm!