Зачем учить алгоритмы и структуры данных? / Основы программирования

Поділитися
Вставка
  • Опубліковано 27 тра 2024
  • Подписка на Boosty: boosty.to/engineerspock
    ---------------------------------------------------------------------------------------- Донаты на развитие: pay.cloudtips.ru/p/1f080f72 Курсы от EngineerSpock: www.engineerspock.com/offer-y...
    После того как человек задался вопросом "как стать программистом" и стал работать в эту сторону, рано или поздно возникнет вопрос а нужно ли учить алгоритмы и структуры данных?
    Должен ли хороший программист разбираться в алгоритмах и структурах данных? И если да, то почему? Какую литературу почитать: Дональда Кнута "Искусство программирования", "Грокаем алгоритмы" или ещё что...
    00:00 Вступление: нужно ли программисту учить алгоритмы
    00:40 Программисты бывают разные
    01:38 Нужно ли учить алгоритмы параллельно со своим первым ЯП
    02:00 Нужно ли учить алгоритмы после освоения своего первого ЯП
    03:05 Пример #1 когда нужны алгоритмы и структуры данных
    05:05 Пример #2 когда нужны алгоритмы и структуры данных
    06:08 Пример #3 когда нужны алгоритмы и структуры данных
    06:54 Что надо знать об алгоритмах и структурах данных программисту
    09:17 Что такое "разбираться" в алгоритмах?
    09:48 Про собеседования и знание алгоритмов
    12:46 Необходимо ли знать алгоритмы и структуры данных, чтобы устроиться на свою первую работу?
    13:05 Литература для изучения алгоритмов и структур данных
    13:44 Алгоритмы на Java - Роберт Седжвик
    Курс по алгоритмам на coursera: www.coursera.org/learn/algori...
    #алгоритмы #CтруктурыДанных #программист #разработчик #engineerspock #кнут
    Курсы от EngineerSpock: www.engineerspock.com/offer-y...
    Подпишись на канал bit.ly/2QBesmw

КОМЕНТАРІ • 121

  • @user-yx8gu4hm6z
    @user-yx8gu4hm6z Рік тому +12

    Сам работаю программистом. Это лучший ответ по алгоритмам, что я слышал. Спасибо.

  • @user-go5qf4vn6j
    @user-go5qf4vn6j Рік тому +7

    Очень интересно было узнать о том, какие бывают собеседования и чего от них ожидать. Пример с прочтением книг и решением задач, после чего работать уже не придётся, так как состаришься быстрее - немного улыбнул.

  • @PavelEkov
    @PavelEkov Рік тому +4

    Хорошо, что рекомендательные алгоритмы ютуба рекомендовали мне Ваше видео про алгоритмы! Приятно смотреть, продолжай делать подобный контент)

  • @zelenchuk.serhii.devpro
    @zelenchuk.serhii.devpro 2 роки тому +3

    Очень круто 👍 благодарю 🙏

  • @user-yx5nj4fw2x
    @user-yx5nj4fw2x Рік тому +1

    Спасибо за контент!

  • @romanryaboshtan9270
    @romanryaboshtan9270 2 роки тому +2

    3:00 😄вообще респект, мне такие задачи попались на тестовом задании из компании, где нужно знать алгоритмы, иначе никак

  • @nauz1984
    @nauz1984 Рік тому +1

    Отлично объяснил! Крутой контент. Лайк/подписка сходу прям.

  • @ivanpotapov9821
    @ivanpotapov9821 2 роки тому +1

    Ты крут бро!) Продолжай, спасибо много полезного узнал👍👍👍🔥🔥🔥

  • @mikhailtochenov981
    @mikhailtochenov981 2 роки тому +1

    Отлично, спасибо.

  • @lemzarl5181
    @lemzarl5181 2 роки тому +7

    Хороший автор. Без лишних понтов, но сразу чувствуется профессионал!

    • @city-dweller
      @city-dweller 22 дні тому

      Насчёт понтов - я бы поспорил: резкий, категоричный, неуверенный в себе настолько, что вынужден себе что-то доказывать, а потом самоутверждаться, опуская других (внимательно вслушайтесь в оценочные слова, которые он использует)

  • @sexoticfruit
    @sexoticfruit Рік тому

    Спасибо! Полезный видос

  • @lil_fox
    @lil_fox 2 роки тому +8

    Понимание алгоритмов развивает мышление. Этого достаточно, чтобы их изучать.

    • @user-zo5wo8et8d
      @user-zo5wo8et8d 9 місяців тому +1

      да, как и математика

    • @city-dweller
      @city-dweller 23 дні тому

      Почему именно алгоритмы? Мышление ведь можно развивать разными способами

  • @cathello2900
    @cathello2900 2 роки тому

    Спасибо Друг 👍👍👍👍

  • @TheEasyflap
    @TheEasyflap 2 роки тому +2

    Как хорошо, что мне попался Ваш канал, спасибо очень интересно )

  • @alekseev74
    @alekseev74 2 роки тому +3

    Первый раз вижу объективное видео об алгоритмах, лайк.
    p.s.: подписался, не надо пожалуйста вычислять по IP.

  • @alexen5465
    @alexen5465 2 роки тому

    Сделайте такой выпуск пожалуйста...

  • @evgeniynorfolk5909
    @evgeniynorfolk5909 Рік тому +1

    Ты крутой! Побольше тебе подписчиков!

  • @elenach4800
    @elenach4800 Рік тому

    Развеял последние сомнения)) книга давно скачана, заждалась меня😆

  • @user-if1dj7fy2y
    @user-if1dj7fy2y Місяць тому

    - Идеалист - это тот, кто, заметив, что роза пахнет лучше капусты, заключает, что и суп из нее будет лучше .

  • @kredostsopozidis6338
    @kredostsopozidis6338 2 роки тому +1

    Как всегда топ

  • @Dadadadam999
    @Dadadadam999 Рік тому

    С алгоритмами рано или поздно придётся ознакомиться, потому что вы их используете каждый день в своих проектах, применяя библиотеки, например linq в C# или технологии, например sql be like.
    Любому программисту желательно иметь предоставление, о том какие алгоритмы реализованы под капотом. Это помогает оптимизировать свои проекты. Автор привёл хорошие примеры реальных кейсов на практике, когда они нужны.

  • @typhon3
    @typhon3 2 роки тому

    Я ноль в программирование но собираюсь покупать курс в онлайн школах на питон разработчика . Посоветуйте ли вы в какой онлайн школе лучше покупать курс ? Где лучше обучение ? И т.д

    • @EngineerSpock
      @EngineerSpock  2 роки тому

      За чужие школы ничего не могу сказать. У меня есть курсы, но без участия преподавателя.

  • @user-do6jt1vf5m
    @user-do6jt1vf5m 2 роки тому

    Молодей пацан, хорошо всё разъяснил.

  • @MarchelloCSKAMoscow
    @MarchelloCSKAMoscow 2 роки тому

    Учу питон плотно 4 месяца , недавно познакомился с классами и работе с ними. Неделю назад начал читать Грокаем Алгоритмы. Заходит очень туго. Вот не понимаю , отложить алгоритмы до лучших времён или продолжать попытки освоения?

    • @EngineerSpock
      @EngineerSpock  2 роки тому +1

      Алгоритмы форсировать острой необходимости нет. Возвращайтесь к ним периодически пока.

    • @MarchelloCSKAMoscow
      @MarchelloCSKAMoscow 2 роки тому

      @@EngineerSpock Спасибо за совет!

    • @avazart614
      @avazart614 2 роки тому

      Ну книга очень слабая. Т.е. легче нету ... так что делайте выводы.

    • @EngineerSpock
      @EngineerSpock  2 роки тому +1

      @@avazart614 а какие человек должен сделать выводы?

    • @MarchelloCSKAMoscow
      @MarchelloCSKAMoscow 2 роки тому

      ​@@avazart614 Меня любая книга вгоняет в уныние , не люблю читать. Мне лучше сразу приступить к практике , минуя скучную теорию. И эта книга не стала исключением. Но я её прочёл полностью и не сказал бы , что я там что то новое узнал. Всё , что там описывается , так или иначе , даётся в разных курсах и задачках. Что касается выводов - то все люди разные. Делать выводы по восприятию книги не стоит, кмк.

  • @andreykrauch5027
    @andreykrauch5027 Рік тому

    Спасибо

  • @sergeyyugay9794
    @sergeyyugay9794 2 роки тому +2

    Мб, есть смысл создать для ребят отдельный плейлист по базовым алгоритмам и структурам данных? Кажись у тебя Илья только этого покамись не хватает как для начинающих это будет полный пак программиста чтобы начать работать.

  • @alexeymanshin4034
    @alexeymanshin4034 2 роки тому

    подписался на канал, но калакольчик почему-то не пеставляется в режим All. Пробовал несколько раз и все равно остается отключен.

    • @maketcity46
      @maketcity46 2 роки тому

      Попробуй отписаться, потом подписаться заново. У меня вылечилось.

    • @misrerlexus
      @misrerlexus 2 роки тому

      цярпi

  • @valentinesknaryov9805
    @valentinesknaryov9805 2 роки тому +1

    Я думаю, Р. Сэджвик "Фундаментальные алгоритмы на С++" не хуже. Там две книги, 5 частей. Старенькая, 2001 года, но алгоритмы в основе всего. Бессмертны. Ещё отличные издания, на мой взгляд : "Конова Е., Поллак Г. - Алгоритмы и программы. Язык C++" (для новичков) и " Алгоритмы построение, анализ и реализация на языке программирования Си. Ворожцов А.В., Винокуров Н.А." . "Грокаем алгоритмы" вроде на Python, не знаю, искал с примерами на Си и С++. Томас Кормен тоже вроде ничего, судя по отзывам, но не читал, не знаю. Вообще, алгоритмы лучше изучать со знанием языка : Как и зачем учить алгоритмы на Java не зная саму "Яву" или "Чезу" :) знающему С++ , если ему можно Бабичева (не читал, но есть С и С++ примеры чисто алгоритмов на этих языках) читать, зная базу. Пробовал вообще без языка, теорию, не допонял. Типа "Алгоритмы: разработка и применение Клейнберг Дж., Тардос Е.".

    • @EngineerSpock
      @EngineerSpock  2 роки тому

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

    • @avazart614
      @avazart614 2 роки тому +1

      @@EngineerSpock более того там даже код на С++ подустаревший не каждый С++ программист поймет.

  • @amicusdev6297
    @amicusdev6297 2 роки тому +3

    Как по мне, нужно плнимать как работает, заучивание без понимания, очень тяжело идет друг с другом. А наоборот работает проще

  • @Anton_Zh
    @Anton_Zh 16 днів тому

    а "Грокаем алгоритмы" для поступления на джуна пойдет?

  • @splcell
    @splcell Рік тому +1

    Выглянул в окно, там одиноко стояли красно-черные деревья...я вернулся в переговорку и продолжил писать алгоритм на бумаге

  • @John_Smith_Java
    @John_Smith_Java 2 роки тому +1

    7:40 Потому и пилишь видосики на ютюбе, аххахаха)))
    Шучу, конечно :-)
    Интересное и полезное видео. Спасибо.

  • @itzukenqwerty
    @itzukenqwerty 2 роки тому +1

    я программист, в упор не понимаю, почему просьба написать код на бумажке вызывает такое отторжение у других программистов. подсказки IDE нужны? псеводокодом нельзя написать?

  • @randerry897
    @randerry897 2 роки тому +5

    Илья, спасибо за видео, а собираетесь ли вы делать курс: алгоритмы на питоне(как это сделали с C#)?

    • @EngineerSpock
      @EngineerSpock  2 роки тому +3

      Пока в планах нет. Скоро выйдет курс по паттернам на питоне.

    • @randerry897
      @randerry897 2 роки тому

      @@EngineerSpock Отлично! Буду ждать.

    • @alexeymanshin4034
      @alexeymanshin4034 2 роки тому

      @@EngineerSpock напишите обязательно об этом. Я проходил Ваш курс по питону на udemy. Лучше преподавателя нет! Обязательно запишусь:)

    • @user-pg6mb6il1c
      @user-pg6mb6il1c 2 роки тому

      @@EngineerSpock привет. Вышел курс?

    • @EngineerSpock
      @EngineerSpock  2 роки тому

      @@user-pg6mb6il1c уже совсем скоро

  • @wowarhont
    @wowarhont 2 роки тому +3

    Мама! ... я хочу обратно в механики >_

  • @SmileyJack.
    @SmileyJack. 2 роки тому +1

    0:51 да ну не может быть, а нет, может.
    Много лет слышал про 1С программистов, но впервые увидел что они пишут.

    • @nooricrew
      @nooricrew 2 роки тому

      Это лишь чуть приоткрыли ящик Пандоры)

  • @raphaelosipov867
    @raphaelosipov867 11 місяців тому

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

    • @EngineerSpock
      @EngineerSpock  11 місяців тому

      Абсолютно неверно. Нодо делать и то и другое

  • @romanryaboshtan9270
    @romanryaboshtan9270 2 роки тому +2

    Алгоритмы нужно знать, чтобы чувствовать себя программистом, а не дном каким-то непонятным. 🙂

    • @city-dweller
      @city-dweller 23 дні тому

      Ну т.е. это способ самоутвердиться и повысить своё ЧСВ.
      Может, лучше время и силы на поиск хорошего психолога потратить, а затем разобраться с ним, почему так выходит, что вам нужно что-то доказывать самому себе, а без этого вы не чувствуете себя полноценным?

  • @crazy-man
    @crazy-man Рік тому +1

    Поиск по списку через базы SQL базы данных делают, они просто об этом не знали

    • @EngineerSpock
      @EngineerSpock  Рік тому

      то есть если в приложении нет никаких баз и СУБД, то ради этой задачи вы будете затаскивать что-то пусть даже и SQLite? Но зачем? Если на каждый подобный чих тащить библиотеки и зависимости то, это ад и израиль и как тимлид я бы всех поубивал нахер.

  • @nbrains6380
    @nbrains6380 Рік тому

    Ребята Log(2) все )

  • @VitalySem
    @VitalySem 2 роки тому

    Штімель - я лусну!)

  • @volodya-nrg
    @volodya-nrg Рік тому

    Проект Эйлера. Задача 3. ua-cam.com/video/wjF47G8Ep0Y/v-deo.html

  • @user-ct6zd7xm8s
    @user-ct6zd7xm8s Рік тому

    Сижу смотрю видос и понимаю, что лицо как у Дмитрия Бачилы, только поволосатей)) да и тема похожая)

  • @GIMP514
    @GIMP514 Рік тому +1

    Короче алгоритмы нужно учить тем, кому это нужно, а всем остальным от этого толку мало будет)

    • @EngineerSpock
      @EngineerSpock  Рік тому +1

      Неправильно вы поняли

    • @ResurrectedPhoenix
      @ResurrectedPhoenix Рік тому

      Алгоритмы нужны тем, кто хочет быть программистом, а не говнокодером)

    • @GIMP514
      @GIMP514 Рік тому

      @@ResurrectedPhoenix а что плохого в том, чтобы быть говнокодером?

    • @city-dweller
      @city-dweller 23 дні тому

      ​@@ResurrectedPhoenixНаговнокодить нечитаемый код можно и со знанием алгоритмов. Я слышал, что олимпиадники по программированию пишут ужасный код. Охотно верю: они привыкли решать совсем другую задачу - написать быстро код, который быстро работает. Write only код, по сути. Про поддержку такого кода никто и не думает.
      Оптимизация скорости почти всегда не бесплатна и усложняет код. Если она не нужна - лучше без неё. Более читаемый и простой код дешевле поддерживать. Ну если, конечно, ты не ставишь своей целью самоутвердиться.

  • @SM-ho5uc
    @SM-ho5uc Рік тому +2

    чушь все... тру программист засунул бы словарь в SQLite и с помощью `SELECT * FROM ... WHERE sometxt MATCH` выполнил задачу и пошел курить... додян же бы сидел изобретал велосипед. плохой пример.

    • @EngineerSpock
      @EngineerSpock  Рік тому

      На целевых машинах было 512мб ОЗУ. Если вы бы все проблемы элементарные решали затаскиванием новых зависимостей, то всë бы кончилось очень плохо. Это не говоря о том что непонятно зачем что-то тащить если можно не тащить, просто с точки зрения управления зависимостями (их апдейтами в том числе) , развëртыванием и проч. Для реализации игры Балда тоже sqlite?

  • @user-ew2pd6fq8j
    @user-ew2pd6fq8j 2 роки тому

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

  • @John_Smith_Java
    @John_Smith_Java 2 роки тому

    Я учил основы Java в оффлайн школе в моём городе. Там буквально после типов данных, операций, ветвления и циклов сразу хуяк - рекурсия, бинарный поиск, сортировки массивов. Если честно, я поплыл :-(

    • @dimr5001
      @dimr5001 2 роки тому

      Похожая тема была. Но курсы четко позиционировались как обучения основ. И тому морально я был готов к такому но по факту было капец трудно. Но зато нормально так мозги в нужное русло вправило. Наверно если бы я не заплатил за весь курс целиком то слился бы на этом этапе. А так уже просто жалко было денег. На курсах если домашку не задал по теме дальше не пускали . Теперь в принципе рад что имею такой опыт.

    • @avazart614
      @avazart614 2 роки тому

      Так только цыеточки.... Как насчет лру кешей и хеш таблиц, графов? А потом фреймворки изучай технологии сети ...

  • @Tunec_s_hlebom
    @Tunec_s_hlebom 7 місяців тому +1

    Я фронтенд разработчик и, честно говоря, я не знаю, как можно писать фронт не зная алгоритмов и структур данных. Без знания структур данных сложно оптимально хранить данные в сторе, а без знания алгоритмов, не получится нормально без костылей их обойти. На проектах, которых я был были разные структуры: и хеш таблицы и графы, что-то хранилось даже в бинарных деревьях. Иногда челы не знают как представить данные и начинают городить всякие костыли, которые хрен разберешь

  • @ivanaaa6049
    @ivanaaa6049 Рік тому

    Часто слышу про какие- то алгоритмы, которые мне ни разу не понадобились.Это чисто теоретическая хрень.

    • @EngineerSpock
      @EngineerSpock  Рік тому +1

      Может вы просто формашлëп? Реализовать то о чем я в ролике говорил сможете?

    • @ivanaaa6049
      @ivanaaa6049 Рік тому

      @@EngineerSpock Видео не слушал, потому что ответ просто очевиден.

    • @EngineerSpock
      @EngineerSpock  Рік тому

      @@ivanaaa6049 ну просто надо смотреть видео, а не ахинею пороть

    • @ivanaaa6049
      @ivanaaa6049 Рік тому

      @@EngineerSpock Ок, ты писал свой алгоритм сортировки, поиска, группировки, кластеризации, обхода графа....? Тогда зачем? Все это уже 100 раз написано и отлажено. Лучше займись полезным делом, а не бесполезной теоретической хренью.

    • @EngineerSpock
      @EngineerSpock  Рік тому +1

      @@ivanaaa6049 причëм тут свой алгоритм? Жопой смотрите?

  • @user-nv5ec9ch8q
    @user-nv5ec9ch8q Рік тому

    чё за клоунство с изменением голоса