![]() |
![]() |
![]() |
![]() |
Зачем разработчику знать алгоритмы и структуры данных? |
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2022-06-10 15:02 Рассказываем о преимуществах, которые дает хорошее знание алгоритмов, о том, что именно нужно изучить в первую очередь, и как проходит алгоритмическая секция в техническом собеседовании. ![]() Начинающие разработчики часто недооценивают важность изучения алгоритмов и структур данных – считают, что это слишком сложно, нудно и при этом не особенно нужно в реальной жизни. Прозрение наступает на собеседовании в какую-нибудь крупную компанию на позицию мидла: соискателям задают вопросы об алгоритмах и структурах данных, чтобы проверить способности к решению сложных практических задач. Алгоритмы в реальной жизни ![]() Знание алгоритмов и тесно связанной с ними организации структуры данных необходимо для серьезной работы в любой отрасли информатики:
И так можно продолжать бесконечно. Что дает знание алгоритмов рядовому разработчику ![]() Освоение алгоритмов требует времени и усилий, но при этом дает несколько серьезных преимуществ:
С чего начать изучение алгоритмов Существует множество алгоритмов и немало структур данных. Некоторые из них можно назвать универсальными или общими, другие – узкоспециальными, предназначенными для решения специфических задач: очевидно, что в вычислительной геометрии и в биоинформатике проблемы будут разными. Без какой-либо базы (в виде университетского курса или опыта участия в олимпиадах по программированию) разобраться во всем этом довольно сложно. В этом случае важно начать с азов и базовых концепций, к которым относятся:
После знакомства с азами пора переходить к темам, которые всплывают на большинстве собеседований: поиск и сортировка, жадные алгоритмы, графы (поиск в ширину и в глубину), динамическое программирование. Абсолютный минимум, который необходим для подготовки к техническому собеседованию, доступно и интересно изложен в книге Томаса Х. Кормена «Алгоритмы. Вводный курс». Исчерпывающий вариант – четырехтомник Тима Рафгардена «Совершенный алгоритм»:
Материалы четырехтомника основаны на лекциях, которые Рафгарден читал в Стэнфордском университете и на онлайн-курсах, которые он ведет сейчас. Книги написаны вполне доступным языком и содержат множество практических заданий и тестов с решениями. Алгоритмическая секция Особенности технического собеседования варьируются в различных компаниях, но общие моменты выделить можно:
Мнения разработчиков по поводу алгоритмических секций расходятся: одни относятся к этому этапу с энтузиазмом, другие считают, что победителями здесь становятся не практики с солидным опытом, а вчерашние студенты-олимпиадники. Но факты остаются фактами: алгоритмическая секция является важной частью собеседования, а сами алгоритмы помогают решать реальные задачи эффективно, поэтому изучать их все-таки надо, и чем раньше – тем лучше. Источник: m.vk.com Комментарии: |
|