Если видео недоступно для просмотра, попробуйте выключить блокировщик рекламы.

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

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

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

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

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

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

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

Мы учим программированию с нуля до стажировки и работы. Попробуйте наш бесплатный курс «Введение в программирование» или полные программы обучения по Node, PHP, Python и Java.

Хекслет

Подробнее о том, почему наше обучение работает →