Hardware and software setup

PHP back end development technology, etc. Frontend and backend development: principles and differences

- people who create modern internet space, we have already told in the blog. Today we will delve into their profession and talk in more detail about the specializations of web developers - front-end, back-end and fullstack.

Frontend Developer

Front-end - the "front" part of the site: everything that the user sees. Menus, text, pictures, annoying (or if done well, not annoying) advertising banners All of this is done by a frontend developer. He also participates in the development of design: he “draws” everything, of course, but it is the front-end that controls his work.

Tasks of a frontend developer

Ultimately, the back-end developer is responsible for everything that is not related to the "front" part of the site.

Backend developer tools: Java, SQL, C#, Python.

Backend developers have dozens of languages ​​in their arsenal. Each has some pros and cons: some are well suited for big projects, others for little ones. So he chooses the way to implement the back-end, based on the wishes of the customer and the tasks.

Full stack developer

According to My Circle, full-stack and back-end developers receive up to 140 thousand rubles in 2018. Front-end - up to 125 thousand.

Can the same person do both front-end and back-end development? If he understands both, why not: such a developer is called Full Stack.

He knows how to solve any problems in the development of web services and sites: he knows server languages, JavaScript, HTML and CSS, he can optimize the site for search engines and turn the design layout made in Photoshop into a working interface code (you remember that the site interface is drawn by the designer, but on the site itself everything will be described by code?).

As a rule, a fullstack developer is hired for small projects that one person can handle. Such programmers, as a rule, do not become experts in either the frontend or the backend, but they are well versed in the general logic of the site and the interaction of the user side with the server side. By the way, this is very important: many front-end and back-end developers simply do not understand each other and set impossible tasks, and a full-stack specialist can just become a link.

It makes no sense to learn right away on fullstack: usually a programmer first masters one part of the work - frontend or backend - and only then adds skills in a related direction to the knowledge base.

Where to begin?

It takes years of practice and dozens of projects to become a full-fledged front-end, back-end or full-stack developer. But you can start the path to this profession even if you have not finished school yet: learn HTML, CSS, JavaScript, practice and hone your skills with the help of .

Web developer

You have probably already heard these fashionable words “frontend” and “backend” in the field of programming, but what is behind them? I suggest looking into this.

Let's start with definitions.

Frontend- anything that the browser can read, display and/or run. That is, it is HTML, CSS and JavaScript.

html ( H yper T ext M arkup L anguage) tells the browser what the content of the page is, such as "title", "paragraph", "list", "list item".

css( C ascading S style S heets) tells the browser how to display elements, such as "20px padding after the first paragraph" or "all text in the body element should be dark gray and written in Verdana."

JavaScript tells the browser how to respond to certain interactions using a lightweight programming language. Most sites don't really use a lot of JavaScript, but if you click on something and the content of the page changes without a white screen flashing, then JavaScript was used somewhere.

Backend- anything that runs on a server, i.e. "not in a browser" or "on a computer connected to a network (usually the Internet) that responds to messages from other computers".

For the backend, you can use whatever tools are available on your server (which is basically just a computer configured to respond to messages). This means that you can use any universal programming language: Ruby, PHP, Python, Java, JavaScript / Node, bash. This also means that you can use database management systems such as MySQL, PostgreSQL, MongoDB, Cassandra, Redis, Memcached.

The structure of the interaction between the backend and frontend

Today, there are several main architectures that determine how your backend and frontend will interact.

Server applications

In this case, HTTP requests are sent directly to the application server, and the server responds with an HTML page.

Between receiving a request and a response, the server usually looks up information in the database on request and embeds it in a template (ERB, Blade, EJS, Handlebars).

When a page is loaded in a browser, HTML determines what will be shown, CSS determines how it will look, and JS determines any special interactions.

Communication using AJAX

Another type of architecture uses AJAX for communication ( A synchronous J Ava S crypt and X ML). This means that the JavaScript loaded in the browser sends an HTTP request (XHR, XML HTTP Request) from within page and (historically) receives an XML response. You can now also use the JSON format for responses.

This means that your server must have an endpoint that responds to requests with JSON or XML code. Two examples of protocols used for this are REST and SOAP.

Client (Single Page) Applications

AJAX allows you to load data without refreshing the page. It is mostly used in frameworks like Angular and Ember. Once built, such applications are sent to the browser and any subsequent rendering is done on the client side (in the browser).

This frontend communicates with the backend via HTTP using JSON or XML responses.

Universal/Isomorphic Applications

Some libraries and frameworks, such as React and Ember, allow you to run applications on both the server and the client.

In this case, the application uses both AJAX and server-rendered HTML to communicate the front-end with the back-end.

Beyond frontend and backend

Standalone frontend

The web applications that you are going to create, the connection to the Web will require less and less.

Progressive Web Apps only load once and work (almost) all the time. You can store the database in the browser. In some cases, your applications only need a backend when they first load, and then only for data synchronization / protection. This level of persistence means that most of the application logic resides directly in the client.

Light backend

The backend, in turn, gets lighter and lighter. Technologies such as document repositories and graph databases result in fewer backend calls to reaggregate data. The client's job is to refine what data he needs (graph databases) or retrieve all the different pieces of data he needs (REST API).

It is now possible to create backend services that do not run all the time, but only when they are needed, thanks to serverless architectures such as AWS Lambda.

Blurred borders

Computing tasks can now be moved between the frontend and backend. Depending on the type of application, you can make the calculations performed either on the client or on the server.

Each of the options has its pros and cons. Server - the environment is more stable, has fewer unknowns, but it constantly needs a connection to the Web. Some users use latest versions browsers, and it's better for them to use client applications that do most of the work and boast a beautiful interface, but then you will alienate users who do not use latest browsers and high speed internet connection.

In any case, it's good that there is plenty to choose from. The main thing is to choose exactly what is best suited for a particular task. I hope you have a better understanding of the state of web development today.

Back end developer(from English back-end ( flip side) developer) this is a specialist who deals with the software and administrative part of the web application, the internal content of the system, server technologies- database, architecture, program logic. The profession is suitable for those who are interested in computer science (see choosing a profession for interest in school subjects).

The back-end developer is a fighter on the invisible front.

Modern websites, web applications and games have become very complex, so a whole team of specialists is working on them. To create a full-fledged, beautiful, functional and user-friendly site, the coordinated work of front-end and back-end developers is necessary. This speeds up the work of creating a site or web application and makes it easier to maintain.

Figuratively speaking, back-end development is the creation of the car's engine, while front-end development is the creation of the design and control functions of the car. The back-end developer works closely with the , getting user information from it and returning the processed result to it.

The main back-end developer tools are server-side programming languages ​​such as PHP, Python, Ruby, Java, Perl, Node JS ( software platform). In addition to Node JS, it is useful to study Express (a library for the interaction of the Node JS platform with the server) and Mongo DB (a database for receiving and storing information).

As additional funds Symfony, Codeigniter, Yii, Zend Framework, Kohana, etc. frameworks are used. MySQL/SQLite is used for data storage.

Features of the profession

It is not enough for today's developers to just write code for programs. This is how programmers worked 10-15 years ago. At present, such a term is inappropriate, because in work it is often possible to do without writing code, simply by connecting ready-made parts together into a single configuration. And programmers are now called "developer" or "engineer".

With the development of the IT sphere, projects are becoming more and more complex and represent a constructor that can be assembled using ready-made solutions (frameworks) for almost any task.

Thus, the functionality of the back-end developer is as follows:

  • service architecture design;
  • creation of the site core;
  • development of the platform and core functionality;
  • work with code architecture;
  • development of applications that support user interface and security;
  • control over the state of servers (combat, test and working);
  • version control, database, continuous integration.

Pros and cons of the profession

A highly paid and in-demand profession.

Place of work

Companies developing websites, web applications, mobile applications.

Important qualities

  • Analytical mind
  • logical thinking
  • initiative
  • ability to plan and follow plans
  • skill to work in team
  • flexibility of thinking
  • responsibility, perseverance, purposefulness
  • focus on results and quality
  • the desire to constantly learn new things and apply them in your work

Professional knowledge and skills

Knowledge of at least one programming language: Go, C, C++, Perl, Python, PHP, Ruby, Java.

  • the ability to write fast, beautiful and correct code;
  • knowledge of popular web frameworks (Django, Flask, Spring);
  • ability to design databases and optimize queries;
  • knowledge of modern programming paradigms;
  • knowledge of design patterns;
  • understanding of web services devices, interfaces;
  • English for reading technical documentation.

Where to study as a back-end developer

Teaches (In person, Moscow). An international educational institution specializing in computer education. Works since 1999. 42 branches in 16 countries of the world. The largest authorized training center for Microsoft, Cisco, Autodesk. Students receive international certificates and an international diploma. The main goal is the employment of each graduate.

Higher education:

In order to become a real professional in the field of back-end development, you need to have a basic specialized education, which can be obtained at the following universities:

But at the same time, it is important to remember that fundamental university education lays the foundation for education, but is not enough for up-to-date knowledge about modern technologies. Therefore, self-education is important in this area in order to be aware of all new technologies and tools. But, in turn, the lack of specialized education affects the moment when something stops working and a person does not understand - for what reason. A specialist with a fundamental education, of course, does not know everything, but he has the main skill - where to find and how to use the necessary knowledge.

Modern employers, as a rule, do not impose formal requirements for higher education candidates for the position. For them, the most important thing is the experience, intelligence, motivation of a specialist.

Salary (how much does a back-end developer earn)

Salary as of 09/16/2019

Russia 40000—100000 ₽

Moscow 80000—300000 ₽

Career steps and prospects

From the position of a back-end developer, after mastering the skills of a front-end developer, a direct path to a full-stack developer. For further growth, you need to constantly learn new things: study development technologies in detail software products, configuration and settings of service systems.

Website development according to the system front-end and back-end implies a hierarchical division of the process of creating a resource into two parts, the development of a user interface -( frontend) and its program-administrative part ( backend).

Front-end development is the work of creating a public part of the site, with which the user directly contacts and the functionality that is usually played on client side(v browser).

Aspects development frontend include the creation of a site design layout, layout of sites and templates for CMS, as well as binding to the user interface of special scripts responsible for visualization and web animation.

Frontend a component of the site is responsible for displaying certain information to the user of the resource and, upon the fact that he performs any actions on the site, interpreting it in a form understandable to programs related to the backend.

When creating the user side of the site and forming html pages we take into account the following points:

  • Proper use of h1, h2 tags, etc. in order of priority.
  • Proper use of the lang tag.
  • Real filling of the alt attribute for pictures. If the picture shows a logo, then “Company Logo”, if a person, then the name of the person. For icons on English language“Twitter Icon”, etc. (does not apply to dynamic images, such as photo news).
  • Don't forget about meta tags.
  • Don't forget the favicon.
  • Where a link is supposed to be, a link should be written.
  • For contacts use skype, tel and mailto attributes.
  • Links to external pages should open in a new window.
  • Each link has a title attribute.
  • The code is well commented.
  • Image optimization for the web.
  • Usage mobile versions pictures where needed.
  • HTML, CSS and JS files must have in parallel with the main (working) and compressed version for the subsequent launch of the site on the hosting.
  • All styles and scripts are placed in separate files.
  • All images are sized using CSS.
  • Use sliders, carousels and galleries adapted for mobile devices.
  • Pop-ups are adapted for mobile devices.
  • Renaming files in case of using caching.
  • Highlighting (hover, active, visited) for links.
  • Highlighting (hover, active) for buttons and fields in forms.
  • Pressed footer with a small amount of content on the page.
  • No outline on buttons.

Back-end development

backend development is the process of programming the site and filling it with functionality. Creating the core of the site, developing the site platform, filling it with the main functionality and creating an administrative zone - this is the backend development.


The backend does the processing user information received from the front-office and returns the result to the front-end in a form that it understands.

Backend programming- this is web programming, the purpose of which is the implementation of the server side of the site, the integration of the database and its connection with the user (front-end) side. The development of the backend of the site also includes setting up and installing the necessary software.

Simply put, the frontend passes information and commands from the user to the backend, which in turn processes them. Or if it's quite simple, then - Front-end is created for the site visitor, and Back-end for his administrator.

An experienced IT recruiter definitely cannot be frightened by buzzwords or technical expressions, but a beginner should understand all the intricacies of the IT sphere. Find out what "front end", "back end", "full stack" developers do to make sure that you approach the specialist role with solid knowledge. Some differences are significant, some carry a large number of subtleties, but all of them will allow you to understand the current needs of the IT industry.

Today, more and more different web tools, programs and services are being created. The demand for developers is growing every day with the same progression. In this regard, the need for IT recruiters has grown.
Today we will help you understand what "front end", "back end", "full stack" developers are.

Front end developer

When you see a site full of life with an attractive interface, you wonder who is this magician who worked with him so professionally. It is at this moment that you think of a front end developer without even knowing it. Any visual display you work with is produced by the sweat, blood and tears of the front end developer. GUI or "Graphical User Interface" is the visual front that displays the screen to allow clients to interact with the software. Any of today's devices with the adjective "smart" will have an interface that launches applications, provides access to websites, all created by a front-end developer.

The UI designer or "User Interface" designer creates the space in which human-machine interaction takes place. In terms of skill, this process requires the programmer to combine programming and design skills, and often this person does not need to be a programmer at all.

The UX designer refers to the "User Experience" constructor, which describes the path the user takes and its overall effectiveness. Front end developers also need to think about the overall usability, usefulness and experience that the user has when interacting with the software and this particular segment requires by far the most "flexible skills" of the programmer. However, this work can also be done by non-programmers.

Responsive design is a very difficult job. It refers to the process of adapting interface design to any screen, from widescreen desktops and laptops to mobile devices such as tablets and smartphones.

Traditionally, a front end developer is someone who is comfortable with both design and coding. In other words, someone who is comfortable working with simple tools design and is able to write the structure of a website in HTML and style it using CSS code. On the this moment The biggest problem for front end developers is that a website built with only using HTML and CSS will be completely static. If you are thinking of stickman on a blank page as a website. HTML will be enough to draw its shape and CSS will be used to style it (thicken it, color it, add clothes, etc.). But to make the stickman move and react, the front end developer will need something else as a consequence.

As web applications become more complex and sophisticated, the demand for full tongue Turing programming in the interface is growing at a fast rate, so stickman programmers use Java Script to animate, which is a browser-side programming language.

Back end developer

In the past, the back end consisted of physical computer and software designed to run queries through it. Today, this process has become much more complicated: cloud servers are more common, time-consuming databases and microservice applications, but in principle the back end is still the process of bringing the server, application and database together to solve a problem.

The whole process is firmly anchored in logic, a network of processes and requests resolved in seconds to give you, as the user, a specific desired outcome. Select a flight from New York to Hong Kong and you are in the front end, press the search key and you are moved to the back end to correctly return you the best, shortest, cheapest flight in the blink of an eye. Once the results are displayed to you, you will be back in the front end. If search query gave you a timely and useful result, and you have no idea why it happened, thanks to the developer for completing the search, as well as countless other things that make your life easier.

A back end developer can have many responsibilities. From database creation and integration to security and technology Reserve copy and recovery, as well as back end developers create the brains of the application.

Back end developers use various technologies to code the underlying computational logic of information systems, specific software or websites. These may include Java, C#, Python, and database languages ​​such as SQL and many more. Back end differs from front end developers in that the work of the back end developer is completely devoid of any visual design and is based on the logic and architecture of the software, the purpose of which is to provide a certain result. Sometimes there are problems with merging the back end and front end, which brings us to a person who can handle both parts.

Full stack developer.

A full stack developer is someone who works well with both the backend and frontend. "To be more specific, this means that a developer can work with databases, PHP, HTML, CSS, JavaScript and everything in between, while also taking into account the conversion of Photoshop projects to front-end code," says Sitepoint.

Full stack developers need a general knowledge of technologies from every part of the development process. This of course means that they will not be an expert in any particular area, but rather they can offer a better overview of the application possibilities and the possibility of bridging the gap between how the system functions and how it looks and feels to the user. It may not be a requirement for the job, but a full stack developer usually also understands the business logic, design limits, and user interface. In the early stages of business development, there may be a greater need for full stack developers as their versatility can be useful in product development, but as the company matures, developers require more and more specific skills.

A full stack developer can also be a great techie. He has a broad understanding of technology and can anticipate what future recruiting efforts should be or what technologies should be implemented going forward.

Liked the article? Share with friends!
Was this article helpful?
Yes
Not
Thanks for your feedback!
Something went wrong and your vote was not counted.
Thank you. Your message has been sent
Did you find an error in the text?
Select it, click Ctrl+Enter and we'll fix it!