Who is a frontend developer?

A frontend developer is responsible for coding and implementing all visible and interactive elements on the website or mobile application that users have direct contact with. A frontend developer cooperates with UX/UI designers, backend developers, and other teammates to ensure that the interface is attractive, intuitive, and works smoothly.

What are the basics that every frontend developer should know?

Web and app development is constantly evolving. Day by day, we observe technological progress, the improvement of existing tools and technologies and the emergence of new ones. Despite this dynamic growth, there are still a few fundamentals from which it is worth starting to learn frontend.

Two invariably important languages that are the foundation of frontend development are HTML and CSS. HTML (HyperText Markup Language) is the basic language for structuring web content. With HTML we define the structure of a document, such as headings, paragraphs, lists, images, and links. It is a basic tool that allows you to create semantic web pages.

1.1 HTML code with explanation
1.2 The screenshot shows the output of the plain HTML code. We see a paragraph and a button inside a div container without any additional styling

CSS (Cascading Style Sheets) is a language used to define the visual style and layout of web pages. With CSS, we can define colors, fonts, margins, backgrounds, and other visual elements. It is thanks to CSS that our pages gain an attractive look and feel on all devices.

1.3 CSS code with explanation
1.4 This is how the output would look like after adding the above CSS styling

Apart from HTML and CSS, JavaScript is an extremely important language that should be in every frontend developer’s skill set. JavaScript is a scripting language that enables interactivity, data manipulation, and the creation of dynamic effects on web pages.

Thanks to JavaScript, websites become more interactive, react to user actions, and enable the creation of advanced functionalities. We can use JavaScript for form validation, animation, DOM (Document Object Model) manipulation, and server communication.

1.5 JavaScript code with explanation

1.6 After adding some simple JavaScript, we can make our code functional and define what will happen when the user clicks the button. Here, we can see that the background color changed to yellow, and the text on the button also changed

HTML, CSS, and JavaScript form a powerful trio, thanks to which we are able to create almost any frontend functionality we need. Mastering these fundamental technologies is not only essential but also opens the doors to learning and understanding other technologies in the field of frontend development. Therefore, it is crucial not to underestimate the importance of this part of your learning journey.

By the way, these three foundational languages exist in a context. They operate in a browser, which usually sits on your phone or computer. The files are served from a server on the internet by the means of the HTTP protocol, built on top of the TCP/IP stack. At some point it becomes relevant to get to know these elements properly, or at least to get a mental model of how the Web operates.

HTTP 200 OK status means that an internet resource was accessed successfully. Source: https://http.cat/status/200

JavaScript frameworks

With the development of frontend technologies, JavaScript has become an even more powerful tool. New frameworks and libraries have been created, such as React, Angular, Vue, or Svelte, which significantly facilitate work and speed up the process of creating user interfaces. Knowledge of JavaScript in combination with these frameworks allows frontend developers to build modern, dynamic, and responsive user interfaces.

​​These frameworks offer a number of ready-made solutions, tools, and structures that help organize and manage code and enable the creation of scalable applications. Each of these frameworks has its own unique features, syntax, and ecosystem, so it is worth familiarizing yourself with them and choosing the one that best suits your preferences and needs.

React is one of the most popular JavaScript libraries, created by Facebook. It focuses on creating user interface components. It is used by many well-known companies and has a huge community, which provides easy access to numerous educational resources and ready-made libraries. Examples of apps that use React.js include Facebook, Netflix, Tesla, and Airbnb. Learn more from React official website.

Angular is a comprehensive framework developed by Google. It is based on TypeScript and provides complete tools for building large and complex applications. Angular has many built-in features, such as routing, state management, and testing, making it a good choice for projects that require out-of-the-box setup. Examples of using Angular include Google Analytics, UPS, and iStock. Learn more from Angular official website.

Vue is an easy-to-use and flexible framework that has gained popularity due to its simplicity and small size. It is also beginner-friendly, so you can quickly get started with this framework and focus on building your application. Examples of sites that use Vue.js are General Motors, GitLab, and Upwork. Learn more from Vue official website.

Svelte is an innovative framework that introduces an innovative approach to creating user interfaces. Its main advantage is the compilation of the code at the build stage, which allows you to generate more efficient and lightweight code. Here are some famous examples of sites that use Svelte: Square, Brave, and Decathlon. Learn more from Svelte official website.

It’s crucial to remember that there is no one “best” framework that fits all projects. Each of these frameworks has its own strengths and applications. I encourage you to familiarize yourself with each of them, experiment, and choose the one that best suits your preferences and project needs. When starting your journey in frontend development, I recommend selecting one framework and sticking to it.

TypeScript

TypeScript is a programming language that is an extension to JavaScript. It is developed and maintained by Microsoft. The main feature of TypeScript is the introduction of static typing, which means that the programmer can define data types for variables, functions, and other code elements. These types allow you to detect errors already at the stage of compilation, which improves the reliability and security of the code.

TypeScript is becoming more and more desirable for frontend developers. Having the skill can significantly increase market attractiveness and profession flexibility. TypeScript offers many advantages, such as static typing and better refactoring tools, which translates into more secure and scalable frontend applications.

CSS libraries

Styling your applications from scratch with plain CSS can be a bit tiring and time-consuming, so it’s worth also adding a CSS library to your technological stack that will make things easier. Examples of such solutions are Bootstrap, Tailwind, and Semantic.

Bootstrap is a popular CSS library that provides a set of ready-made styles and components for quickly creating responsive and aesthetic websites. It is based on HTML, CSS, and JavaScript technology, which enables easy integration with various frontend frameworks and tools.

Tailwind is a modern CSS library that takes an innovative approach to styling web pages. Instead of providing ready-made styles and components, Tailwind CSS focuses on providing a set of tools for creating custom styles directly in the HTML code. Thanks to this approach, developers have more flexibility and control over the appearance of their websites and applications.

Semantic UI is another popular CSS library that focuses on a semantic approach to web page styling. It is based on understanding the meaning of HTML elements and uses semantic CSS classes for styling.

CSS preprocessors and optimization tools

Sass (Syntactically Awesome Style Sheets) and Less are CSS preprocessors that extend the capabilities of traditional CSS, allowing for writing more flexible and readable code. Preprocessors increase the efficiency of writing CSS through features such as functions, variables, nesting, and mixins. The choice between them depends on the developer’s preferences as well as the requirements and specifics of the project.


There is one more tool that can be used to expand the capabilities of CSS — PostCSS. PostCSS is a tool that processes and transforms CSS code. It can utilize various plugins, such as Autoprefixer, which automatically adds browser prefixes, or CSS Modules, which allow for writing modular styles.

Testing tools

While writing code is one side of the coin, it’s equally important to test it carefully to avoid potential bugs, crashes, and usability issues. When it comes to frontend testing, there are many well-known and proven technologies that are worth knowing. Some of them are Jest, Cypress, and Selenium. Jest is a commonly used unit testing framework for JavaScript. Cypress is an end-to-end (E2E) testing tool that allows you to write tests that simulate user interactions. Selenium is a powerful test automation tool for web applications that supports multiple programming languages and browsers

Bundler

Another key skill for frontend developers is the ability to use bundler tools, which are an inseparable element of modern frontend development. Popular bundler tools are Webpack, Parcel, and Vite. Bundlers are used to package and organize various resources, such as JavaScript, CSS, images, and more, into one or more optimized output files. Understanding their operation, configuration, and capabilities is crucial in the process of packaging, building, and optimizing frontend applications.

If you’re interested why we switched to Vite in Makimo, I encourage you to read this blog post.

Why we use Vite instead of Create React App

CRA is the default choice in React’s documentation and for many developers it remains the default option since they have never checked out other JavaScript app build tools. But there are better alternatives.

Package manager

Familiarity with package managers such as npm and Yarn is also essential for frontend developers. Package management tools are used to install, update, and manage project dependencies. Both npm, which is the default package manager for Node.js, and Yarn, known for its good performance and stability, are widely used in the frontend community. Knowledge of their basic commands and the ability to use their functions allows you to work efficiently on various frontend projects.

Code editor

Another crucial skill for frontend developers is the ability to use code editors efficiently. There are many popular editors, such as Visual Studio Code, Sublime Text, and WebStorm. Proper configuration of such an editor, familiarity of keyboard shortcuts, and the ability to use its advanced features and plugins used for syntax highlighting, automatic code completion, or debugging, significantly speeds up and facilitates work on code.

Git and Github

Understanding the Git version control system and the GitHub hosting platform is another valuable skill for frontend developers. Git allows you to create branches, track changes in code, merge the changes, and roll back to previous versions. Git works locally on your computer. GitHub, on the other hand, is a popular source code hosting platform for collaborating and sharing projects. Using Git and GitHub together allows for effective code management, change history tracking, and collaboration with other developers.

UI/UX Designer Tools

Getting familiar with designer tools such as Figma and Adobe XD is highly beneficial for frontend developers. These are software tools that enable designers and developers to collaborate, create, edit, and share user interface designs. Therefore, it is valuable to have a basic understanding of them.

Conclusion

The article discusses the key aspects that are worth considering in order to become a versatile frontend developer. All the mentioned technologies are currently widely used in web development and will continue to be for quite some time. However, it is important to remember that the world of technology is dynamic and constantly evolving. Flexibility, the willingness to learn new things, the ability to adapt to a changing environment, and the practical application of acquired knowledge are the keys to success in this field.

If you need a team that constantly sharpens their skills…

Let’s talk!

Aneta Narwojsz is a dedicated Frontend Developer at Makimo, harnessing her profound expertise in JavaScript and other frontend technologies to deliver remarkable web solutions. Known for her knack for translating complex JavaScript fundamentals into easily digestible content, she regularly publishes enlightening articles and engaging video materials. When she's not immersed in code, Aneta unwinds with her favorite pastimes: visiting the cinema, immersing herself in books, experimenting in the kitchen, and exploring fashion trends.