Ответ
Развитие hard skills — это системный процесс. Вот мой подход:
1. Практика кода и алгоритмов:
- LeetCode / Codewars: Регулярное решение задач для поддержания знания алгоритмов и структур данных. Акцент на паттерны, оптимизацию и чистоту кода.
- Pet-проекты на GitHub: Создание небольших приложений для изучения новых технологий (например, Quarkus, реактивные потоки, GraphQL).
2. Изучение технологий и best practices:
- Официальная документация и RFC: Первичный источник для понимания спецификаций (Java SE, JPA, HTTP/2).
- Книги: Углублённое изучение по книгам, таким как:
- "Effective Java" (Joshua Bloch)
- "Java Concurrency in Practice" (Brian Goetz)
- "Designing Data-Intensive Applications" (Martin Kleppmann)
- Конференции и доклады: Просмотр записей с JPoint, Devoxx, SpringOne.
3. Участие в сообществе:
- Опенсорс: Внесение небольших исправлений или документации в проекты, которыми пользуюсь (например, Apache Commons).
- Технические блоги и статьи: Чтение и анализ статей от инженеров ведущих компаний.
Пример пет-проекта — изучение WebSockets в Spring:
@Controller
public class ChatController {
@MessageMapping("/chat") // Куда клиент отправляет сообщение
@SendTo("/topic/messages") // Куда рассылается ответ
public ChatMessage broadcast(ChatMessage message) {
// Здесь может быть логика сохранения, валидации и т.д.
return message;
}
}
Это позволяет не только изучать теорию, но и сразу сталкиваться с практическими проблемами развёртывания, отладки и проектирования.
Ответ 18+ 🔞
Да ты посмотри, какой системный подход, блядь! Прямо как в аптеке, всё по полочкам разложил. Ну ладно, давай разберём этот план по косточкам, а то я тут сижу, и у меня волнение ебать, как же так правильно можно жить.
1. Код и алгоритмы, ёпта.
- LeetCode / Codewars: Ну, это классика, блядь. Сидишь, бычишь эти задачки, чтобы мозги не засохли, как сухарь в заднице. Главное — не просто решить, а понять паттерн, сука, чтобы потом не изобретать велосипед, когда на работе пиздец и дедлайн горит. Чистота кода — это святое, а то потом сам на свой же код смотреть не сможешь, пиздец.
- Pet-проекты на GitHub: Вот это, блядь, самое то! Берёшь какую-нибудь новую хуйню, вроде того же Quarkus, и начинаешь лепить какую-нибудь дичь. Не для денег, а для себя, для души. Один раз накосячил — зато понял, где подводные камни. Лучше тут, чем на проде, ядрёна вошь.
2. Технологии и как их правильно жрать.
- Доки и RFC: Официальные мануалы — это наше всё, блядь. Не какой-то левый туториал с ютуба, где чувак сам нихуя не понял, а прям первоисточник. Почитал спецификацию HTTP/2 — и сразу чувствуешь себя полубогом, а не просто кодерастом.
- Книги: Да, тут без вариантов. Блох, Гётц, Клеппман — это как библия, только проще. «Effective Java» — это ж надо читать, перечитывать, а потом снова читать, пока не дойдёт, блядь. Иначе будешь писать говнокод, а потом удивляться, почему всё падает.
- Конференции (JPoint, Devoxx): Включил запись, сидишь, чипсы жрёшь, а тебе умные дядьки рассказывают про всякие ништяки. Иногда, правда, такое несут, что думаешь — «ни хуя себе, а я-то жил в пещере». Просветление наступает, ёпта.
3. Сообщество, блядь.
- Опенсорс: Ну, тут всё просто. Увидел в библиотеке, которой пользуешься, очевидную хуйню — опечатку в комменте или кривой пример. Делаешь пул-реквест. Тебе говорят «спасибо». Душа радуется, что хоть чем-то полезен этому ебучему миру.
- Технические блоги: Читаешь, как ребята из Netflix или Google свои проблемы решали. Иногда такие костыли и велосипеды увидишь, что понимаешь — овердохуища гениальности рождается в муках, а не в спокойной жопе.
А вот пример, как это всё вместе работает, на пет-проекте:
Смотри, решил ты, сука, WebSockets в Spring освоить. Не просто туториал пробежать глазами, а сделать маленький чатик. И вот ты пишешь этот контроллер:
@Controller
public class ChatController {
@MessageMapping("/chat") // Куда клиент отправляет сообщение
@SendTo("/topic/messages") // Куда рассылается ответ
public ChatMessage broadcast(ChatMessage message) {
// Здесь может быть логика сохранения, валидации и т.д.
return message;
}
}
Вроде всё просто, ан нет, блядь! Начинаешь собирать — а у тебя зависимости конфликтуют. Потом оказывается, что нужно ещё конфигурацию какую-то подкрутить. Потом пытаешься это всё на хостинг засунуть — и тут начинается настоящий пиздец, в рот меня чих-пых!
Но зато, когда эта мартышлюшка заработает, и ты сможешь из браузера себе сообщения слать, чувствуешь себя богом вебсокетов, ёпта. И главное — ты на своей шкуре прочувствовал все грабли, отладку и проектирование этой, с позволения сказать, «простой» фичи. Вот это и есть развитие, а не просто галочки в резюме ставить.