General

General #

Tell us about functional programming. #

Functional programming is a programming paradigm based on the use of functions as the fundamental building block of a program.

Basic concepts:

  • Pure functions are functions that have no input/output or memory side effects (they depend only on their parameters and return only their result).
  • Immutability - data is not changed after creation. Instead, new versions of the data are created with the desired changes.
  • Recursion is the use of functions that call themselves. Recursion allows you to describe complex operations, and also, if possible, replace the usual loops.
  • Higher-order functions - such functions accept other functions as arguments or return functions as a result.
  • Currying - this concept allows you to easily combine functions and create new functions using existing ones.
  • Lazy evaluation is a concept that allows you to calculate a value only at the moment when it is actually needed for the execution of the program.

Benefits of Functional Programming

  • Ease of testing and debugging;
  • Simplification of development;
  • High speed of operation;
  • Support for parallelism;
  • Flexibility and modularity;

Disadvantages of functional programming

  • Higher complexity for beginners;
  • Difficult to perform performance optimizations;
  • Recursion can cause memory and speed overhead;
  • Not suitable for all types of tasks and projects;
  • Difficult to debug lazy evaluations and find errors in them;
  • Limitations in working with mutable data;

Що таке TDD (Test Driven Development) / BDD (Behavior Driven Development)? #

Розкажіть детально про роботу HTTPS. #

Який стек технологій можна обрати для реалізації клону якогось відомого проєкту і чому? #

Є проєкт на старих технологіях, необхідно в нього вносити зміни. Як це зробити найкраще? #

Якщо у кандидата є досвід роботи з кількома фреймворками: який будете використовувати для наступного проєкту? Які фактори будуть впливати на вибір? #

Що таке V8 Engine? #