Full stack web developer

    Quite a long time ago, a very interesting Full Stack developer'a topic popped up in various sources. Namely, what should such a developer be like, what kind of experience, knowledge and skills should he possess, what technologies should he work with? And if the question of what should be all the more or less clear, I should be able to write a non-trivial application from scratch, i.e. frontend, backend, work with the network, with the database and other goodies, architectural solutions, etc. That with subsequent questions is not so clear. For those interested, I ask a tackle ...

    In this article I present to your attention a translation of part of the article from here .

    Full Stack Layers:

    1. Server, network and hosting environment.

    This includes an understanding of what might break and why. Appropriate file system use, cloud storage, network resources, and an understanding of data redundancy and availability are necessary. How to scale application taking into account hardware limitations? What about multithreading and race conditions ? The ability to catch what you will not see on your working machine, but it can happen in the real world. Full Stack developer can work side by side with DevOps . The system should provide useful error messages.

    2. Data Modeling

    If the data model is erroneous, then business logic and higher levels begin to need strange (terrible) code to compensate for sharp corners that the data model does not cover. Full Stack developers know how to create a reasonably balanced relational data model, with foreign keys, indexes, views, etc. Full Stack developers are familiar with NoSQL and know when the solutions shine with respect to relational databases.

    3. Business logic

    Strong object-oriented skills are needed here. Also, various frameworks may be needed here.

    4. API layer / Action layer / MVC

    Knowledge of how the outside world can act against business logic and data models. At this level, frameworks should be used to a large extent. Full Stack developers have the ability to write a clear, consistent, simple interface.

    5. User Interface

    Full Stack developers understand how to create a readable layout and recognize that they need the help of professional artists and graphic designers. In any case, the introduction of good visual design is a key factor. Fluent in HTML / CSS, JavaScript (node, backbone, knockout, etc.).

    6. User Experience

    Full Stack developers understand that users just want it to work. A good system will not bring its users to carpal tunnel syndrome or sore eyes. Full Stack developer can look at the process of 8 clicks and 3 steps and reduce it to one click. Such a developer writes useful error messages, if something breaks, he apologizes for it. Sometimes programmers inadvertently write error messages that can make the user feel dumb.

    7. Understanding what the customer and the business need.

    The Full Stack developer understands what happens when the client uses the software, and also has an understanding of the client’s business.

    Other puzzle pieces:

    1. The ability to write quality Unit tests.
    2. Understanding Continuous Integration .
    3. Awareness of security issues is very important, since each layer has its own potential vulnerabilities.

    Further in the original are some of the author’s thoughts, but I invite everyone to discuss, comment on and add to the list of skills and necessary knowledge and skills for the developer. Thanks for attention.

    Also popular now: