Вопрос менти, который перерос в целый пост:
Хочу постепенно начинать решать задачки на Java, чтобы пройти собеседование. Хочу начать в легком темпе несколько раз в неделю, постепенно усложняя.
С чего начать? Надо изучить алгоритм решения или просто брать и решать с самого легкого уровня?
🗂 Мой алгоритм
Мне нравится идея подходить к прокачке навыка кодинга для собеседовании структурным путем, чем-то напоминающим как мы учим иностранные слова.
1) Завести трекер для задачек — мой пример шаблона
2) Добавить задачки, разбив их по темам и/или уровням сложности
3) После решения отмечать в трекере: решил сам или подсмотрел? Можно и дату добавить — потом проще повторять в нужный момент
💻 Что делать во время кодинга
Имитируем реальный собес:
- Замеряем время ⏱️
- Используем онлайн IDE, например, codeinterview
- Не гуглим 🚫
- Проговариваем решение вслух
- Перед стартом самого кодинга — думаем про алгоритм, тестовые данные, граничные случаи
- После решения — оцениваем сложность алгоритма, ищем альтернативы, думаем про оптимизацию и пользу в реальной работе
📚 База для кодинга
Советую изучить сначала базовые концепты:
- Типы и структуры данных
- Сложность алгоритмов
- Рекурсия
- Динамическое программирование
- Разделяй и властвуй (Divide & Conquer)
Материалы:
Java Github Course
Текстовые лекции (начиная с главы Алгоритмы)
🏢 А что советуют сами компании?
Секция базового программирования в Тинькофф
LeetCode — задачи сложности не выше Easy
👨💻 Что советуют разработчики?
Классика от Алексея Шаграева — подходит не только для Яндекса:
Часть 1
Часть 2
Статья на Хабр
🏃 Как не бросить всё через неделю
- Найдите свою мотивацию, зачем это вам
- Выделите отдельное время в календаре
- Решайте в своём темпе, не выгорая
- Участвуйте в челленджах, ищите напарника для соревнований
Успехов в подготовке! 🚀 Делитесь своими материалами и лайфхаками в комментариях 👇
