Получить работу программиста: нужно ли для этого изучать алгоритмы и структуры данных?
Ситуация с алгоритмами и структурами данных на рынке одновременно смешная и грустная. Но что имеем — то имеем, так что давайте я вам расскажу.
Пригодятся ли алгоритмы и структуры данных в работе программиста?
Подавляющее большинство программистов/разработчиков — это бизнес-разработчики. Когда-то это было не так, когда-то большинством были инженеры, именно инженеры, которые ещё и программировали.
И вот инженерам-программистам/разработчикам да, знать алгоритмы и многие другие вещи в работе было нужно и остаётся нужным. Поэтому если вы метите в Rocket Science, хотите программировать ракеты или просто какие-то железяки — вам и алгоритмы со структурами данных нужны, и математика, и физика, и всё нужно.
Подавляющему большинству бизнес-разработчиков это не надо. Потому что в подавляющем большинстве языков программирования уже работа с этими структурами данных и алгоритмами есть. Либо встроена в сам язык, либо создан дополнительный модуль, который просто надо подключить и всё. И сделали это как раз эти самые инженеры-программисты, там всё работает максимально как надо.
Если бизнес-программисту нужно отсортировать список клиентов компании в алфавитном порядке — он берёт и подключает готовую сортировку, которая работает как надо. Какой там вид сортировки(а их можно насчитать больше десятка), его не волнует. Поэтому он и не использует знание о том, что такое «О большое», ему не приходится разрабатывать связный список и так далее.
Получается, что знать алгоритмы и структуры данных не нужно, если метишь в бизнес-программисты?
А вот, к сожалению, изучить их всё-таки придётся. Потому что вопросы о них будут с большой вероятностью спрашивать на собеседованиях.
Во-первых, сотрудники технологических гигантов вроде Google спрашивают об этом — в Google разрабатывается много такого, что такие вещи могут пригодиться. Во-вторых, все, кто копирует и подражает подходам технологических гигантов — тоже спрашивают. В-третьих, есть фанатики и фанаты, те, кто считает, что раньше было лучше и надо везде так. МЫ ВСЕ ЭТО УЧИЛИ И ВЫ УЧИТЕ!
Несмотря на это, можно было раньше найти компанию, где про алгоритмы и структуры данных на собеседовании не спрашивали. Но грянул кризис и, если раньше в отрасли было много денег и брали кого попало, то теперь наоборот, уровень требований возрос. Вакансий значительно меньше, чем соискателей, так что потенциальный работодатель может себе позволить морщиться, привередничать, требовать много чего ещё.
Так что знать алгоритмы и структуры данных всё же нужно, если хотите найти работу. Даже если собираетесь пойти в бизнес-программирование.
Насколько нужно знать алгоритмы и структуры данных?
Тут разнятся мнения, кто-то из профессионалов сообщает, что достаточно совсем поверхностно погрузиться — знать, что такое «О большое» и понимать, чем O(n) отличается от O(n^2)(«эн в квадрате», то есть).
Кто-то говорит, что неплохо погрузиться в алгоритмы на такой уровень, чтобы выучить 2-3 сортировки и в общих чертах знать про остальные.
Все соглашаются, что сильно глубоко не нужно погружаться, точнее информации, к сожалению, нет.
Откуда у меня эта информация? Я общаюсь со многими профессиональными разработчиками, регулярно спрашиваю их о разных аспектах их работы и связанных с ней вещах.
Подытожим
Большинству программистов/разработчиков не нужно разбираться в алгоритмах и структурах данных на уровне понимания «О большое», но для получения работы знать нужно, так как на собеседовании с большой вероятностью про это будут спрашивать.
Понравилась статья? Подписывайтесь, пишите комментарии, ставьте лайк, приходите на мои бесплатные стримы/вебинары на Ютубе, и не забывайте о Телеграм. Напоминаю так же, что я репетитор программирования. Записывайтесь на бесплатную диагностику!