Traditionally, developers are divided into front-end developers and back-end developers; This is due to the division of responsibility between the external representation of the project (front-end) and internal technologies (back-end). In a very rough summary, we can say that the front end is developing an interface that users see, and the backend does the stuffing, i.e. software and hardware. Such a division is logical and created to simplify the development of the project. However, full-stack developers are increasingly appearing in the IT environment. We will describe below who they are and what technologies are relevant for a full-stack developer.
Definition
Full-stack developer is a developer who must understand the entire stack of technologies and components used in the project, both in the frontend and backend. At the same time, such a developer does not need to know absolutely all technologies deeply, that is, it is not a matter of being senior in all the technologies that are used in developing an application.
As a rule, a full-stack developer must completely close the entire development stack, including understanding servers operating systems and various databases as well as PaaS.
But if there’s a simplified concept of a full stack: a full-stack WordPress developer is a developer who can create and deploy WordPress sites.
In general, the definition of such a developer and the requirements for it may vary.
Full-stack developer has its advantages.
- Knowledge of many technologies makes it possible to choose where to go next, it is easier to repurpose;
- In general, the work is diverse, as there is an opportunity to change projects, try different options and technologies;
- Full-stack developers understand the work of many technologies and therefore can choose a good solution for a project, correct shortcomings and so on.
Below we will list the current (at the moment) technologies that a full stack developer must know:
HTML/CSS
This is the basis of the basics. Any web developer needs to know HTML and CSS. HTML allows you to add data, content to the site, and CSS is responsible for the style of this content. Topics that are most often mentioned when talking about HTML/CSS during an interview:
- HTML semantic layout
- Block (box) CSS model
- Benefits of CSS Preprocessors: LESS, SasS, Stylus, and others
- CSS Media Queries
- Bootstrap (framework with the tools needed to create websites and applications)
Javascript
JavaScript (JS) is a language that is becoming more popular every year and is becoming overgrown with more and more libraries, frameworks and tools.
Interestingly, in the 2016 Stack Overflow poll, JS became the most popular language in all three areas: full stack, frontend, and backend. In the 2017 survey, JS simply became the most popular language of all programming languages. There is nothing surprising in this – JS is the only programming language that is used in the browser and can be used as a server language (thanks to Node.js).
As a full developer developer, you need to understand the following topics:
- Work with DOM. It is also advisable to know what is and be able to use JSON.
- Important features of the language: the composition of functions, class inheritance, event delegation, higher order functions.
- The order of event handling (including asynchronous), promises and callbacks (callback functions)
- Proper code structuring and working with modules
- Knowledge of webpack, browserify and gulp
- Knowledge of at least one popular framework (React, AngularJS, Node). In general, the understanding of JS itself is more important than knowledge of frameworks, since then it will be easy to understand any of them
- JQuery knowledge
Backend language
Now you need to go to the backend which is responsible for working with the database as user authentication and the logic of the application as a whole. Here there is such a moment that, in fact, it is not so important which language you choose, the main thing is to really understand it and know all its nuances. If you ask on any popular site the question of which backend language is best learned and used then the range of answers will be wide: you will hear both good and bad about each language.
Therefore, below we will list all popular backend languages.
An important clarification: regardless of what language you decide to choose as a result, the main thing is to continue to study it and learn all its subtleties, and not be sprayed into several options at once.
- Node.js: A good option since Node.js itself is just a JS environment, that is, if you know JS, you will not need to learn a new programming language. And the most popular framework for learning and creating applications is Express.
- Ruby: Another popular backend language. The most popular frameworks are Ruby on Rails and Sinatra.
- Python: Popular frameworks – Django and Flask.
- Java: Now Java is rarely studied for use in the backend, but companies that still use it exist, so you can find work with this programming language.
- PHP: It is now the cornerstone on the web, but it is rarely used specifically in the backend.
Databases and Web Storage
While studying web development you will sooner or later come to the fact that the data needs to be stored somewhere and you also need to be able to access them later.
Therefore, you should definitely delve into the following topics related to the database and data storage:
- Advantages of the relational data model, SQL
- NoSQL database, for example MongoDB
- Ability to connect the selected database to the selected backend language (for example, MongoDB and Node.js)
- Advantages of DBMS in RAM: Redis , Memcached
- Web storage for storing sessions, cookies and cache in the browser
- Database Scaling, ACID, ORM
HTTP and REST
HTTP is an application-level data transfer protocol, it provides network and user interaction. For example, if the JS code makes any AJAX request to the backend on the server, then this happens via HTTP. Important in this part of the topic are listed below:
- What is REST
- Using REST API
- POST and GET requests
- Using Chrome DevTools
- What are SSL certificates?
- HTTP/2 , SPDY , WebSocket
Web application architecture
Once you are familiar with HTML/CSS, JavaScript, backend, databases, and HTTP/REST, it’s time to move on to the architecture of the web application. In order to create a complex application, you need to know how to structure the code correctly, how to split files, where to hold large media files, how to structure data in a database, where to perform complex tasks, and so on.
Of course, you can read about all this on the net, but the best solution would be practice — and it’s best to work not in one, but in a team. Therefore, a person who has been developing for more than 7 years does not necessarily know CSS or JS better than a developer with two years of experience.
However, the more experience Full Stack development company specialist has the more applications has worked which means he will learn more about the architecture and design of applications (among other important things). Experience gives you the opportunity to see the whole picture.
Git
Git is a version control system that allows developers working on a single project to keep track of changes that have been made to the code.
Conclusion
Now you know all the main technologies that a full-featured developer must know. Of course, the theory is good but in the programming world practice plays the most important role so do not forget all that is read and heard must be tried and used in your work.