Всем привет! На связи Школа программистов hh.ru. Самоизоляционная пора отлично подходит для того, чтобы подтянуть хвосты в знаниях, выучить что-то новое или просто освежить уже изученное. Впереди майские праздники, и многие из нас проведут их в сиянии лучей мониторов, поэтому мы решили подлить масла знаний в ваше пламя самообразования и выпустить в свободный доступ ещё больше наших лекций!
Так, и что у вас за лекции?
Очень разные! Школа программистов hh.ru призвана подготовить бойца к реальной жизни, поэтому мы охватываем в своих курсах максимально разносторонние знания и аспекты мира разработки. Мы набираем в свою школу ребят, которые уже мало-мальски умеют в программирование, знают об алгоритмах и могут решать различные задачки. Мы погружаем их в темы, которые актуальны в индустрии сегодня.
В обучении мы делаем упор на практические знания, которые пригодятся в реальной работе. Теоретическая часть обучения длится четыре месяца, а после школьники делятся на несколько команд и, под менторством наших специалистов, погружаются в разработку реальных проектов. После выпускного у школьников есть возможность пройти упрощенное собеседование и стать частью команды hh.ru!
В наших лекциях по бэкенду мы подробно разбираем особенности языков java и python, как работают базы данных и поиск высоконагруженных сайтов изнутри. Тем, кто интересуется фронтендом, будет полезно посмотреть лекции про основы js, верстку, ставшие стандартом индустрии react и redux, а также про сборку фронтенда. И конечно, для тех, кто хочет узнать как работает hh.ru изнутри, мы подготовили специальную лекцию об архитектуре нашего сервиса.
А теперь по порядку:
- Frontend: лекция про верстку и css, основы js, react и redux, сборка фронта
- Java: работа с коллекциями, многопоточность, работа jvm
- Python: основы python, и async python
- Backend: JDBC и Hibernate, spring, IoC и DI, серверные архитектуры, maven
- Архитектура: http и rest, базы данных, поиск, ML в поиске, архитектура hhru, эксплуатация в продакшене, тестирование
- Инструменты: git, cli и bash, docker
- Дизайн: дизайн и интерфейс, и дизайн
- Команда и продукт: командообразование, разработка продуктов, agile
Это далеко не полный перечень лекций, так что можно пробежаться по плейлисту и найти для себя что-то интересное. А вот и ссылочка на полный плейлист, больше 50 лекций, налетай!
Как попасть в Школу программистов?
Набор в Школу программистов традиционно начинается уже в августе, поэтому начинать готовиться можно уже сейчас. Проходит всё в 2 этапа: онлайн-этап с задачами по программированию и офлайн-собеседование, на котором будет пара задач на алгоритмы и одна на проектирование. Если ваша специальность была как-то связана с computer science, то, скорее всего, вы уже готовы. Осталось лишь вспомнить, чему там вообще учили.
Минимальные требования для поступления: умение программировать на одном из языков, знание базовых алгоритмов и основных структур данных.
Оптимально: набитая рука на программирование различных задач, понимание, что есть ООП (мы можем спросить: “как бы вы спроектировали классы для нашего сайта?”), знание sql и баз данных.
Как готовиться?
Алгоритмы и структуры данных:
Начинать подготовку лучше всего с алгоритмов, а для этого идеально подойдет книжка "Грокаем алгоритмы" от Бхаргава Адитьи. Эта книга об изложении основных алгоритмов и структур данных в очень простой и интересной форме. После можно будет почитать уже более серьезные книги по алгоритмам, например, "Алгоритмы на Java" Роберта Седжвика. Все примеры в этой книге разобраны на java, поэтому можно их сразу запустить и "пощупать" алгоритмы, чтобы лучше в них разобраться. А ещё можно посмотреть лекции тут.
Языки программирования:
На этапе онлайн-тестирования мы предлагаем задачи на 3 языках на выбор: Python, Java и JS. Нужно быть готовым их решить. Самый лучший способ изучить или вспомнить язык программирования — это практика. Тут подойдет небольшой онлайн-курс по языку либо книжка. Например, Java можно начать с "Философии Java" от Брюса Эккеля. После того как разберетесь с основами, стоит попробовать применить язык на практике. Попробуйте решить наши вступительные прошлых лет, не подглядывая в ответы. Если останется время, можно порешать задачи простого уровня на специальных площадках — hackerrank, leetcode и codeforce.
ООП, проектирование и всё остальное:
Здесь тоже всё решает практика. Поможет решение задач из разряда “а как бы я спроектировал систему классов?”. Можно попробовать представить в виде классов наш сайт, разобрать классический пример с разработкой проекта ветеринарной клиники или представить себя юным Цукербергом, который только сел писать код для своей социальной сети.
Заключение
Надеемся, наши лекции помогут вам прокачаться на этих странных майских каникулах. А вместо заключения оставим небольшой, но приятный списочек полезных материалов: