То, что я понял не из книг
«Тебе ещё рано читать Чистую архитектуру»
Наверное, это один из самых странных советов, который я получал за время обучения. И дело даже не в самой книге. Просто за последние пару лет я всё чаще сталкиваюсь с одной мыслью: Очень многое из того, что считается "слишком сложным для новичков", на самом деле становится понятным только тогда, когда начинаешь с этим сталкиваться. Когда я только начинал изучать backend-разработку, всё выглядело довольно просто.
Есть идея. Пишешь код. Делаешь CRUD. Получаешь результат.
Казалось, что главное — выучить язык, фреймворк, базу данных и можно идти работать. Но чем дальше я учусь и хожу на собеседования, тем сильнее понимаю, насколько эта картина была неполной. Сегодня мне уже недостаточно просто идеи проекта.
Возникают совсем другие вопросы:
— Кто будет этим пользоваться? — Какие есть бизнес-требования? — Какие ограничения есть у системы? — Как будет развиваться проект дальше? — Почему архитектура выбрана именно такой?
Раньше идея автоматически превращалась в код. Сейчас между идеей и кодом появилось огромное количество размышлений. И, честно говоря, именно собеседования помогли мне это понять. В университете всё достаточно прозрачно. Есть теория и есть тест. Не сдал тест — плохо знаешь материал.
Собеседования работают иначе. Они показывают не то, что ты выучил. Они показывают то, чего ты ещё не знаешь. Именно после интервью я начал обращать внимание на темы, которые раньше казались слишком сложными или ненужными.
Архитектура. Проектирование. Асинхронность. Брокеры сообщений. Подходы к организации кода.
Многие вещи я начинал изучать не потому, что увидел их в учебнике. А потому что столкнулся с ними в реальном разговоре с разработчиком. И да, иногда это неприятно. Иногда выходишь с собеседования и понимаешь, что ответил далеко не на всё.
Но со временем заметил интересную закономерность. Отказы часто дают больше мотивации, чем похвала. Преподаватель может поставить тройку и ты доволен этим. Но именно собеседование способно показать разницу между тем, что ты считаешь достаточным уровнем знаний, и тем, что реально требуется рынку.
Ещё одно открытие последних лет связано с университетом. Раньше я относился к нему как к главному пути в профессию. Сейчас смотрю иначе. Высшее образование — это хорошо. Но оно не делает разработчика востребованным автоматически. Работу получает не диплом. Работу получают навыки, проекты, практика, умение учиться и готовность постоянно разбираться в новых вещах.
И, наверное, главный вывод, который я сделал за последнее время: Не стоит ждать момента, когда почувствуешь себя полностью готовым. Потому что такого момента может не наступить никогда. Можно бесконечно читать статьи, смотреть курсы и готовиться.
А можно идти на собеседования, получать обратную связь, находить пробелы и постепенно становиться лучше. Даже если иногда очень хочется всё бросить. У меня такие мысли бывают регулярно.
Но пока работает простой принцип: "Стучите — и вам откроют". Главное не переставать стучать.