Добавить: многопоточность, SQL, Git, Docker, deploy.
- https://www.techinterviewhandbook.org/coding-interview-study-plan/
- https://algo.monster/problems/stats
- https://www.techinterviewhandbook.org/grind75
- Практика! См. https://www.techinterviewhandbook.org/coding-interview-study-plan/#week-5---12-in-depth-practice
Базовые темы computer science
- Системы счисления (см. Notion)
- Binary https://www.techinterviewhandbook.org/algorithms/binary/
- Math https://www.techinterviewhandbook.org/algorithms/math/
- Geometry https://www.techinterviewhandbook.org/algorithms/geometry/
Структуры данных
- Массивы
- Строка https://www.techinterviewhandbook.org/algorithms/string/
- Хеш-таблицы
- Матрица (двумерный массив) https://www.techinterviewhandbook.org/algorithms/matrix/
- Связанные списки
- Очередь https://www.techinterviewhandbook.org/algorithms/queue/
- Стэк https://www.techinterviewhandbook.org/algorithms/stack/
- Деревья https://www.techinterviewhandbook.org/algorithms/tree/
- Графы https://www.techinterviewhandbook.org/algorithms/graph/
- Куча https://www.techinterviewhandbook.org/algorithms/heap/
- Trie https://www.techinterviewhandbook.org/algorithms/trie/
- Interval https://www.techinterviewhandbook.org/algorithms/interval/
📂 Структуры данных | Последнее изменение: 10.01.2024 19:17
Link to original
Алгоритмы
Нотация “О-большое” Рекурсия Основные алгоритмы - Двоичный поиск - Сортировка Динамическое программирование https://www.techinterviewhandbook.org/algorithms/dynamic-programming/
📂 Алгоритмы | Последнее изменение: 10.01.2024 18:19
Link to original
Паттерны проектирования
- Паттерны – что это, достоинства, недостатки. Основополагающая литература.
Основные паттерны проектирования
- Model-View-Controller (MVC)
- Adapter
- ActiveRecord
- Abstract Factory (абстрактная фабрика)
- Bridge (мост)
- Builder (строитель)
- Chain of Responsibility (цепочка обязанностей)
- Command (команда)
- Composite (компоновщик)
- Decorator (декоратор)
- Facade (фасад)
- Factory Method (фабричный метод)
- Flyweight (приспособленец)
- Interpreter (интерпретатор)
- Iterator (итератор)
- Mediator (посредник)
- Memento (хранитель)
- Observer (наблюдатель)
- Prototype (прототип)
- Proxy (заместитель)
- Singleton (одиночка)
- State (состояние)
- Strategy (стратегия)
- Template Method (шаблонный метод)
- Visitor (посетитель)
📂 Паттерны | Последнее изменение: 10.01.2024 17:16
Link to original
SOLID Principles
SOLID
- Single Responsibility Principle (SRP)
- Open-Closed Principle (OCP)
- Liskov Substitution Principle (OCP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
SOLID — аббревиатура пяти фундаментальных принципов разработки в парадигме ООП. Следование этим принципам позволяет строить на базе ООП масштабируемые и сопровождаемые программные продукты с понятной бизнес-логикой и уменьшает связанность между классами, модулями и функциями, что способствует повторному использованию кода.
Принципы SOLID были определены Робертом С. Мартином в его книге “Clean Code: A Handbook of Agile Software Craftsmanship”, опубликованной в 2008 году.
- Принцип единственной ответственности (Single Responsibility Principle — SRP)
Каждый класс или модуль должен иметь только одну причину для изменения. Это означает, что класс должен быть ответственным только за одну часть функциональности в системе.
- Принцип открытости/закрытости (Open/Closed Principle — OCP)
Программные сущности, такие как классы, модули и функции, должны быть открыты для расширения, но закрыты для модификации. Это означает, что новая функциональность должна добавляться без изменения существующего кода.
- Принцип подстановки Барбары Лисков (Liskov Substitution Principle — LSP)
Объекты в программе должны быть заменяемыми своими наследниками без изменения корректности программы. Это означает, что классы-наследники должны быть взаимозаменяемыми со своими родительскими классами и не нарушать ожидаемого поведения.
- Принцип разделения интерфейса (Interface Segregation Principle — ISP)
Клиенты не должны зависеть от интерфейсов, которые они не используют. Интерфейсы следует разделять на более маленькие и специфичные, чтобы клиенты могли реализовывать только те методы, которые им нужны.
- Принцип инверсии зависимостей (Dependency Inversion Principle — DIP)
Модули верхнего уровня не должны зависеть от модулей нижнего. Оба уровня должны зависеть от абстракций. Это означает, что зависимости должны быть абстракциями, а не конкретными реализациями.
Зачем следовать принципам SOLID? Возьмём, к примеру, принцип открытости/закрытости, который устанавливает, что вы должны иметь возможность расширять поведение класса, не изменяя его. Почему изменить поведение класса, открыв его файл в редакторе и внеся некоторые изменения, — плохая практика? Или принцип инверсии зависимостей, который гласит, что необходимо зависеть от абстракций, а не от конкретных реализаций. Что не так в зависимостях от конкретных реализаций?
📂 SOLID | Последнее изменение: 26.04.2024 10:09
Link to original
Web
Подробно изучить раздел про HTTP на Мозилле:
Теория HTTP
- Обзор HTTP
- Resources and URIs
- HTTP Guide
- Security stuff
- Cookies
🟢 – заготовка заметки, не заполнена.
Link to original💡What happens when you type google.com into your browser’s address box and press enter?
📂 Web | Последнее изменение: 20.02.2024 17:27
Link to original
Flask
- Benefits of Flask in Web Development
- Flask mega-tutorial
FastAPI
- New book by Bill Lubanovich
Прочее
References
- Tech Interview Handbook
📂 Интервью | Последнее изменение: 11.08.2024 10:36