Привет, дорогой друг!
Рассказываю, как быть актуальным и востребованным бэкенд разработчиком. Информация может быть полезна при подготовке к собеседованиям. Так же поделюсь моими любимыми ссылками, по которым сам освежал знания. Итак, погнали!
Общая теория
Часто спрашивают про ООП, AOP, DDD, SOLID. Так же желательно в общих чертах знать, что такое GRASP, DRY и KISS. Прежде всего, выучите определения, что означает каждая буква в аббревиатурах, будет супер, если вспомните, где и как что-то из этого уже использовали.
Важно знать базовые структуры данных и алгоритмы и их сложность в Big O-нотации (например какая сложность поиска по HashSet? А TreeSet?). Вот про структуры, а вот про сложности
Про алгоритмы можно почитать тут , а здесь можно посмотреть
Так же практически всегда спрашивают про: CAP-теорему, ACID и GoF-паттерны. Если располагаете временем, почитайте книжку GoF, если нет - знайте, какие бывают типы паттернов (Creational, Structural, Behavioral) и хотя бы по паре самых популярных из каждого типа, лучше, если такие, с которыми уже работали (например, Singleton, Builder, Facade, Proxy, Iterator, Observer).
Практически везде нужны микросервисы, редкая вакансия обходится без них.
Технологии
Кратко: Java/Kotlin, многопоточность, Spring Boot, Kafka, Kubernetes, Postgres, Docker, Kubernetes, Redis. Теперь в деталях.
Java. Stream API, Optional, Collections, видимость свойств и методов
Java concurrency. Как работают атомик-классы. Какие есть виды тред пулов, чем они отличаются, Java Memory Model (можно почитать тут) многопоточность, потокобезопасные коллекции, синхронизации потоков тут годная инфа
Spring core – какие библиотеки отвечают за проксирование и чем они отличаются, AOP хорошая стятья. BeanFactoryPostProcessor чем отличается от BeanPostProcessor. Как работает аннотация @PreDestroy на синглтоне и прототайпе, про жизненный цикл бинов можно почитать тут
Spring web – повторить пайплайн обработки запроса в Spring MVC. Изучить ключевые отличия от WebFlux и MVC. Мультиплексирование каналов. java NIO vs IO (тут можно почитать).
Микросервисная архитектура. Хорошо знать плюсы и минусы применения микро сервисной архитектуры, когда ее стоит применять, а когда нет. Что такое микросервисы? Как разбивать систему на микросервисы? Какие есть паттерны микро сервисной архитектуры? А как насчет транзакций? Что спрашивают:
Спасибо, что заглянули,
добавляйтесь в
Telegram
канал и будьте в курсе новинок.
Если Вам было интересно, можете поддержать автора