О курсе

В этом курсе вы научитесь не только базовым операциям над массивами, но и немного коснетесь основных структур данных, познакомитесь с понятием алгоритмической сложности, научитесь понимать некоторые типичные алгоритмы, которые нередко спрашивают на собеседованиях.

Как уже говорилось раньше, работа с коллекциями относится к основополагающим навыкам в программировании, независимо от специализации программиста.

Вот лишь некоторые примеры того, где мы работаем с коллекциями:

  • Постраничный вывод на сайте
  • Подсчет общей суммы в заказе на основании каждой из позиций
  • Вывод списка друзей, сообщений, фильмов и тому подобное

Нередко задачи c коллекциями имеют алгоритмический характер. То есть требуют от вас составления разумного (не обязательно оптимального по скорости или памяти) алгоритма. К таким задачам относится, например, сортировка. И хотя она уже реализована как функция стандартной библиотеки, умение написать сортировку самостоятельно говорит о вашем развитом алгоритмическом мышлении. Другой реальный пример связан с поиском пересечений, например, необходимостью найти общих друзей у вас и у вашего друга. Такая функциональность реализована на Фейсбуке. Для решения данной задачи желательно также понимать математическую основу — теорию множеств (это не сложно). В программировании она требуется на каждом углу, даже при работе с базами данных (SQL).

Возможно, вы слышали (и не раз!) о том, что изучение программирования стоит начинать с изучения алгоритмов и структур данных. Вероятно, вам даже рекомендовали книги Кнута для их постижения. По большей части я согласен с этим утверждением, но читать Кнута от корки до корки — занятие не для слабонервных.

Знание алгоритмов и структур данных позволяет вам создавать по-настоящему хорошие решения, понимать плюсы и минусы тех или иных подходов, дает способность быстро ориентироваться на местности. В университетах примерно так и происходит. Другой вопрос в том, насколько глубоко и долго погружаться в эту тему. Когда речь идёт про наших пользователей, то, как правило, мы имеем ограниченный запас времени и почти наверняка отсутствие хорошего бекграунда. В этих условиях я постараюсь дать небольшую базу, достаточную для понимания происходящего, чтобы как можно быстрее перейти к реальной разработке. В дальнейшем, по желанию, вы всегда сможете углубиться в эти темы, благо материала на просторах сети по ним крайне много. В любом случае важно понимать, что обозначенная выше тема не является уделом хардкорных программистов. Она одинаково важна и для системных, и для веб-программистов.

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».