Frontend – what is it? Why care?
Remember when HTML was just for the web? Nope, you could easily be asked to develop a desktop app with it as well. The frontend has changed dramatically in the past 6–8 years.
Web standards continuously change, every month brings something new, someone unveils a new tool that resolves all problems, and so on, and so on. Ever heard of Svelte? One year ago, nobody knew about it – today, according to the state of JS 2020 it has the highest interest of all front-end technologies, surpassing even Vue.js and React.JS – the language that was mainly created to support web browsers, now can be used even for solving hardware problems.
University front-end myths!
Myth #1: Front-end developers are not real programmers. Everyone can become a front-end developer.
I’ve heard this a couple of times from fellow students. Most of them think that front-end development is writing only plain HTML and some CSS and a small amount of JS. Names like code monkeys come up. Others see front-end development, as the last option, if nothing else (programming related) goes well. Things I often hear when it comes to front-end development:
– If I don’t succeed to learn C++ here at the university, I will probably become a front-end developer.
– I can always go to an academy and become a web developer.
– I don’t want to be a UI designer.
Of course, this is not true. The web is moving forward and the web that the university remembers has evolved — for the better. With technologies like React, Vue, Angular, front-end development is quite challenging and interesting.
Myth #2: There’s no computer science in frontend.
Not true. When new features are not part of the sprint developers spend most of their time fixing bugs and optimizing the existing code. Computation and memory resources are precious, given that most applications have to run on a wide range of devices. Developers often have to:
- Carefully choose the most efficient data structures
- Write side effect free (pure) functions
- Think about reducing any IO that might cause the application to slow down
- Always follow the SOLID principles and write clean code
- Think about future code extensibility
University computer science is a great bonus, knowing it can only help. And it helps with optimizations if the application is particularly heavy and has to run on mobile phones.
Myth #3: There is s no logic in frontend – it’s only HTML and CSS.
This is coming from fellow colleagues, who study mainly C++.
Couldn’t disagree more. These days the typical frontend has huge amounts of formerly back-end functionality, that is now exported to the frontend. We have persistent storage in the form of LocalStorage, indexDB for a client-side database, service workers for hijacking API requests and servicing them right on the client, webworkers for additional computational needs, websockets for real-time event based bidirectional communication, and the list goes on.
There is more to do on the frontend than ever, and most of these things involve solving complex challenges, both from an infrastructure and programming perspective and needless to say, this is apart from the beautiful application that people will use, structured and styled in HTML and CSS respectively, that is also part of the frontend.
People usually don’t like CSS and find it hard, missing the logic of a standard programming language, error-prone, even not related to programming. None of that is true in modern browsers. We have auto prefixers, polyfills, and things that minimize the need for writing browser specific CSS. We spend less time wrestling with tools and more time solving the actual problem of designing the interface.
The problem is that front-end development is not something one can get a degree in. People can get a degree in computer science where they are taught to program in C++ or Java, with HTML, CSS, and JS being treated as second-class citizens. This can lead to some funny misunderstandings. But In the end, it will always come down to the person’s motivation.
Tanya Zheleva is a student at Sofia University. After a successful internship at Grafixoft, she was invited to accept the position of a software engineer. She loves physics and sports and is interested in React/Redux technologies.