Every day we see various of different job openings asking for experienced Front End Developers, what does it mean to be a Front End developer, what skills you need to be that guy? let’s talk a tittle bit about Front End Development, and how it works, and what experience we need to get there
Front End development is a web interface development for websites, web/mobile apps, it is all about interacting the user interface (UI) to provide a better user experience (UX) based on a specific design, and using couple of pre-defined languages and frameworks in some cases, services and tools to deliver the best version of your projects.
The Interface – UI
The web interface doesn’t understand every language out there, you need to use as a language what browsers understand to build a web page/app, for every interface you have to deal with HTML and CSS as base languages. HTML (Hyper Text Markup Language) builds the page/app element that you need to use for certain actions on your website, they are just elements, they help you to display what you need from text/media, and to collect data, using forms, for Back End purposes, or for other improvements of the user experience, to accomplish certain things, actions, goals or even build the user communication side.
CSS (Cascading Style Sheets) as a static language is the stop that gives the beauty to your web elements, using CSS is a must to convert your design from a static pictures, pdf, psd or sketch files, to a real website, CSS has been growing for the last couple of years and it’s getting better and better, from a static language that cannot provide the developers more than positions, colors, sizes and some extra properties of controlling HTML elements, to animations, opacity, border radius and shadows and all the new amazing features that come with CSS3
Mastering these 2 basic languages is the key of converting any design to a real web page,
The Experience – UX
We cannot skip The user experience when talking about building real websites and web apps in Front End Development. providing a good and easy user experience needs two things, the look and field, and actions.
The look and field is a design side of your projects, you need to have a well designed pages with nice colors, sizes and positions, but with browser compatibility and responsive features, your site needs to respond to different screen sizes, from TVs, and different monitors to mobile devices and tablets, which makes your website/app more useful and easy to use. In addition the browser compatibility is a big issue, simply you cannot tel people what browser they should have to use your site! Knowing the differences between browser engines is a must for Front End Developers, the more browsers you site is compatible with, the more interesting experience your users practice.
Functionality And Actions
Have you seen some effects on a website or a web app that you like, and made you life easy to do things or to get something? That’s the power of Javascript (or JS), the language of the future in the web development, most of big website nowadays use Javascript heavily to accomplish the user experience you are having, Javascript is the language that makes your project interactive with events, actions and functionality, the language that controls the browsers and even the users behaviors, in Front End Development career, having a strong understanding of Javascript is a must to be a well experienced developer.
So far using these three languages is enough to make a basic project, without even a backend server side application, but to be a Front End developer you need to master more technologies, frameworks and services, in order to improve the way you build projects.
Frameworks and Libraries
There are couple of frameworks you need to know about, for CSS, using Bootstrap is a good way for delivering scalable project and clean code, based on SASS and LESS concept, you are going to write less lines, and document the job, for you and any other developer who might work on the same projects, with bootstrap you will learn how to style your app smarter.
JS Frameworks are really important in Front End development, they depend on what you want to accomplish with your project, and what technologies you are practicing.. you have jQuery, a pretty nice library helps with writing less Javascript, and making animations and some interactive effects, AngularJS or Angular 2 as a strong framework to make single page web apps, ReactJs as well, Backbone, Vue, Ember, and more…
Most of the time you will need Node.js as a runtime environment for Javascript (not a framework), it will change the way you design your projects, modules and packages
Services
Talking about web services for Front End development means REST APIs, it is a structural architecture that helps with network communication using web services in order to get data as a response, Advanced web apps use APIs as a source of projects data, either an online API or a local service provided by your backend app
A Front End developer should master most popular APIs (like Twitter, Facebook, Instagram …) and have the ability of working faster with any local service
Technologies
Usually websites use platforms, either CMS scripts (Content Management System) or E-Commerce solutions, and sometimes special hardcoded solutions, Front End Developers work with all kind of platforms, you need to master the most popular solutions first (WordPress, Drupal, Magento, Joomla..) and understand the work flow in order to develop and integrate projects with different platforms
Unit Testing
Testing websites or any other software is a must during the development process, being able to write testable code and debug existing apps is another skill that developers (not only front end) use to improve their projects performance with error handling, getting more familiar with unit testing is not easy, it’s time consuming and sometime really painful, it is a common thing in backend side development as well, but the logic makes it more difficult in Front End development while dealing with different browser engines and versions
Unit test automation frameworks (Jasmine, Mocha, Karma …etc) will definitely help with finding and fixing bugs, but at the end you are the person who writes these lines, improving your skills with unit testing will change the way you design your code and get you to the next level
Front End Development is a really enjoyable field, for people who are about details, the detail oriented person you are, the more successful you get in Front End development.