📜 ⬆️ ⬇️

What is needed for high-quality Web development?

What knowledge is needed for a modern, and most importantly, sought-after web developer?

Behind the brackets is the basic ability to write code and everything related to the ability to work in a team and other obvious things. For our program of the “Web-Developer” course , which starts on August 5, we outlined the following circle of knowledge and skills, regarding them as fundamental in the specialty:

First, the code review: it is worth writing such code that it is reusable, understandable and simple, these include DRY, KISS, cyclomatic complexity, readability, premature optimization, clean functions, static analysis, adherence to the style guide and tools for tracking everything of this. This is like design or psychology: everyone considers himself an expert, but not everyone is such in practice - clear principles are important, a systematic approach is, of course, a practice.

Secondly, the developer would be nice to be familiar with the specifics of Python, syntactic sugar, and engine compartment life. How to use generators, iterators, decorators and context managers correctly, how to practice using MROs and dealing with memory leaks in practice are all useful practical skills that make the code more concise, clearer and more supportive, and the product more stable and adaptable.

A good developer can do API: he can quickly do REST on Django, he knows good and bad practices when implementing an API, and he also understands why GraphQL and its pitfalls can be useful. Beckenders increasingly have to do API and, importantly, be able to do it correctly.
')
By the way, the backend will have to be hard without a basic knowledge of the frontend - it would be very useful to be able to collect the minimum frontend for a cool backend on your knee, wrap it up with Bootstrap or Material and liven up using the good old jQuery. This is not a full-stack developer, but for the sake of any sneeze, waiting for a front-end is not the most productive way to develop.

Third, it will be hard without knowledge of common DevOps tools : how and when to use Fabric and Docker, what are the pitfalls of containerization, how to set up a simple and competent deploy.

So that the development does not become a permanent fix of bugs, such a developer would be very helpful in understanding autotests: when to write, and when not, where the line between the absence of tests and one hundred percent coverage in each commit is, how to deal with “bad smelling” tests, how many what tests should to be, as well as to be able to argue the waste of time on them - all this seems obvious, but in fact it does not always work out.

There is usually a lot of data and it needs to be processed quickly, so you need to understand relational data warehouses and communicate with them: how to design, so that it doesn’t hurt later, how not to waste runtime for unnecessary fuss inside ORM, how to optimize PostgreSQL.

It would be great if such a developer would understand asynchrony: how it works, when needed, how to use. The theme is important because async is new sexy - this approach allows you to do many things quickly and conveniently.

What do you think is critically missing in this list? Maybe something extra? Share your opinion and let's make the industry better!

Source: https://habr.com/ru/post/334328/


All Articles