Теперь понятно, почему я LeetCode забросил. Подозревал, что нужно больше изучать основы, но теперь в этом уверен 😅 Видео понравилось, думаю, что так же буду изучать.
@@ФБез у меня примерно так же. Но, не то чтобы я все забыл. Скорее это просто мне не нужно, даже, казалось бы, в таких местах как "Игровые движки". Может что-то похожее на какой-то алгоритм или структуру все же реализовывается, но, обычно, это делается спонтанно.
Не знаю как для вас, но лично для меня проблема в изучении алгоритмов - их невозможная духота, которая посещает тебя с первой и до последней прочитанной страницы. Невероятно скучно и не особо понятно зачем мне как новичку досконально это знать
Если ты новичок, тогда тебе и не нужно это знать, много джуновских и стажерскиж позиций, да даже и выше есть, где на алгосы вообще похер, но если хочешь дальше двигаться, тогда уже надо алгосам тоже время уделять
@@blackwoodperegrin1950 хз, открываю хх - просят шарить за алгоритмы. Кореша, которые поголовно программисты из самых разных сфер - говорят о том же. Открываешь мок-собесы или реальные на ютубе на джуна - тоже спрашивают. Фронтендеру мб и не надо, но я в бэкенд мечу, судя по всему там это необходимо
@@MathPTU такая же фигня, читаю про алгоритмы и не пойму за чем это может быть нужно? Зачем сортировать числа "пузырьком" если есть sort? Была задача пройти по текстовому файлу и все построчно и внести в БД я сам с нуля придумал свой алгоритм, да может это говнокод но я был счастлив как ребенок. Это меня взбодрило и мозг разогрело.
Видео по делу, респект. Я вот тоже сейчас учу алгоритмы, работаю программистом 4 года и тут они мне понадобились)). По поводу того, что читать Кормена для изучения алгоритмов с нуля - это жестко. Книга очень тяжелая для тех, кто не учился в универе на прогера, либо прогуливал вышмат. Я бы порекомендовала вначале "Грокаем Алгоритмы" - очень легкая книга. А потом уже к Кормену переходить. Очень тяжело конечно начинать учить алгоритмы, но с книгами намного легче, сразу перестраиваются мозги)
На самом деле пути всегда индивидуальны, и как известно они неисповедимы. Я например такой человек, что не могу долго читать книгу, хотя добирался даже до Кнута, типа читаешь и понимаешь что дядя очень умный и образованный в плане программирования, однако мне надоедает через полчаса-час. А вот когда захожу на leetcode, я будто попадаю в свою стихию, могу за одной задачей просидеть час и мне не наскучит, с тем же успехом могу забросить нерешаемую на данный момент задачку и пойти в раздел решений, разбираю каждое интересное решение этой нерешенной мной лично задачи, а затем каждое из них пошагово реализовываю сам, в общем, ребята, попробуйте разные подходы и делайте то, что вам по душе
Тоже не могу долго книги читать, слишком надоедают. В основном читаю статьи какие-то. Там меньше текста по сравнению с книгами, но полезной инфы тоже можно много почерпнуть
Вообще Грокаем, не всем сразу зайдет. У Кормена есть вступительная книга по алгоритмам, там сразу поняться тянете ли вы это со стороны математики и основ программирования, чтобы с пвездо кода написать самому
А переписывать в каком смысле? Что это значит? Т.е. написать свой класс, который будет делать тоже самое, что и структура данных или в смысле просто лекцию переписать в тетрадь?
Спасибо за видео! А есть что-то по алгоритмам, от простого к сложному, чтобы было реально решать задачи и качаться. Переписывать алгоритмы, при все уважении, сечас то вы точно знаете как лучше выучить и какие инструменты использовать.
Владимир, будут ли у вас на канале mock-собеседования go junior разработчиков? Мне было бы очень интересно (если я не один такой, поддержите комментарий).
Видно, что Владимир понимает, о чем говорит, имеет широкий кругозор в компьютерных науках. Это касается в том числе и проектирования систем, так и деталей работы с базами данных. Особенно это впечатляет, учитывая, что Владимир самоучка. У меня всего один вопрос: Владимир, откуда у вас на все это время? Вы самообразовывались во время работы? Это происходит в рамках выполнения трудовых обязанностей? Или вы использовали рабочее время для самообучения? Если да, то согласовано ли это с работодателем и как? Я понимаю если бы вы были студентом, который проводил годы своей жизни в универе отрабатывая сотни академических изучая все это. В ходе учебной программы требовалось собственноручно реализовать hash-table, поэксперементировать с различными подходами к хэшированию и решению коллизий. Это нормально, т.к. универ готовит людей к широкому профилю задач, предполагая, что он будет наращивать более узкую квалификацию необходимую для непосредственного решения задач уже на работе. В работе типичного разработчика 30% времени занимает выяснение требований бизнеса, 70% процентов времени уходит на реализацию используя готовые алгоритмы, готовые реализаций структур данных. Так как в процессе работы типичному разработчику просто не нужно держать это в памяти, это постепенно забывается. Все что ему нужно это понимать space / time complexity и то не всегда. Гораздо важнее загрузить в свой мозговой кеш бизнес контекст, структуру конкретной системы, в которой он работает. Далее держать в warm storage предыдущий опыт, т.к. опыт воспринимается ценнее чистого знания. Все это вытесняет подобного рода "знания" в холодное хранилище нашего мозга фиксируя только ключевые слова-ссылки. Разработчик будет реализовывать функциональность самым простым линейным способом, так как его основной KPI это количество закрытых задач, удовлетворенность клиента. Оптимизацию производительности будут делать там, где с этим выявилась проблема и только когда она выявилась. Для бизнеса чаще более важно выпустить фичу как можно скорее и проверить гипотезу на узком кругу аудитории, чем ждать, пока разработчики все оптимизируют до максимума и в конечном итоге ресурс потрачен, а эквивалентная польза не получена. Поэтому у меня всегда диссонанс: да я согласен, что понимать глубоко алгоритмы может быть нужно, но только в тех случаях, когда это основная работа разработчика - разрабатывать и применять самые подходящие алгоритмы для решения задач и делать это на ежедневной основе. Но большинство задач на рынке просто этого не требует. Никто не будет нанимать на позицию FrontEnd разработчика, который разбирается в тонкостях решения коллизий в хэш таблице, но не понимает, как работает Flex / CSS Grid, JS, React и тд. Секция алгоритмов на интервью имеет место быть в этом случае, но ее вес должен быть меньше, чем секция непосредственного практической задачи. В итоге это приводит к тому, что все просто заучивают алгоритмы, потому что надо пройти собеседования, проходят собеседования, благополучно все забывают как студенты после экзамена и приступают к своей непосредственной работе - перекрашиванию кнопок.
А как ты пройдешь собес не зная алгоритмов ? уже даже на мидл фронта с зп 200к сраных в 2024 году это уже далеко не много требуют алгосы решать и душные задачи. Посмотри запись с собеса озон там 3 этапа тинкоф тоже самое и сбер и тд. Вот и как жить? 3.5 года работал делал страницы приложения на реакт + ант, и понимаю что ппц теперь
Имхо в целом для решения прикладных задач за исключением крайне нагруженных систем и тонкой специфики или очень ограниченных ресурсов рядовому программисту достаточно в целом знать плюсы/минусы контейнеров стандартной библиотеки своего языка и подбирать все это добро под текущие задачи. Просто потому, что изучение всего лютого многообразия остального не пригодится в подавляющем большинстве случаев. А закрепление практикой всей прочитанной теории = no life. А в целом посыл верный - нужно понимание базовой теории структур данных, в идеале по возможности подкрепленное практикой.
Переписать- создать свою версию класса/библиотеки Например, с чистого листа создал класс, допустим, CustomArrayList Имплементировал интерфейс List, и пишешь реализацию так, как будто хочешь повторить устройство исходной коллекции (ArrayList в нашем случае -> массив для хранения данных) В процессе написания и тестирования сухие фразы об O(n) для вставки в худшем случае (для ArrayList) понимаются на деле
В чем смысл зубрить алгоритмы наизусть? Для программирования достаточно навыков программирования. Нужен тебе какой-то алгоритм? Прочитал о нем инфу, реализовал, забыл детали, в голове остались только общие принципы. Никто из прикладных программистов, в здравом уме, не пишет быструю сортировку. А всякие маргинальные алгоритмы - они нужны лишь раз или два в жизни. Ради этого не стоит держать в голове их детали.
Суть скорее в том, чтобы понять, что в задаче вообще можно алгоритм применить. Условно, знать или уметь увидеть, что задачу можно решить за O(n), а не за O(n^2)
@@lalalalalulu4567 Знать такую базу безусловно полезно. Но он же говорит, что переписывал алгоритмы по сто раз до полного запоминания. Это, я считаю, мегаглупость вселенского масштаба.
А почему бы в 21 веке, когда в тренде AI, не потратить пару дней и разобраться с AI, который за тебя будет эту всю дичь писать за пару секунд, вместо того чтоб тратить несколько лет на изучение и зубрение сложной литературы 😀
Это надо прям быть гением чтобы использовать то, что в тренде, а не то что реально работает. Если оно в тренде, это не значит, что оно работает как нужно. Нейронки не всегда правильно решают алгоритмы, плюс даже если и решают, то зачастую в лоб и с большой сложностью, хотя можно решить намного проще. Хотя какие алгоритмы, они зачастую банальные задачи на верстку сделать не могут.
Коротко о видео «как я выучил алгоритмы». Сидел и учил
И в итоге стал блогером 😂
@@velocoder3969 а почему бы и нет)
@@velocoder3969 потому что схлопывается айтишечка)
Аххахахахаххаа
Если вы в чем-то не разбираетесь, начните разбираться и вы разберётесь.
Теперь понятно, почему я LeetCode забросил.
Подозревал, что нужно больше изучать основы, но теперь в этом уверен 😅
Видео понравилось, думаю, что так же буду изучать.
Супер, спасибо)
Спасибо за ваши видео! Уже полтора года работаю в разработке на плюсах и не перестаю развиваться, благодаря таким каналам как Ваш!
Спасибо!
вот, то что нужно, полезный контент подъехал, требуем такого больше !!!)
Хорошо, спасибо)
Я изучал всё это в институте. Но могу сказать, что прошло 18 лет (я не соприкасался с этим). И теперь я полный ноль.
Нужно было выбирать работу, где придется со всем этим сталкиваться)
@@vladimir_balun_programming Именно так. Нужно было работая или стажируясь, получать знания. А так всё впустую.
@@ФБез у меня примерно так же. Но, не то чтобы я все забыл. Скорее это просто мне не нужно, даже, казалось бы, в таких местах как "Игровые движки".
Может что-то похожее на какой-то алгоритм или структуру все же реализовывается, но, обычно, это делается спонтанно.
Спасибо большое ! Я на пути обучения и в будущем мечтаю о работе в IT . А к исполнению моей мечты ваши руки тоже приложены . Ещё раз спасибо !
Спасибо!
1. Осваиваем книгу Грокаем алгоритмы.
2. Проходим курс по алгоритмам на курсере.
3. Литкод
Спасибо, но все таки в будущем ждем полноценных уроков по алгоритмам))
Спасибо, подумаю над этим)
какие уроки вы ждете? Берите и учите по книгам.
Пожалуйста продолжайте делать видео, очень приятно смотреть. Вы большой молодец, спасибо вам большое за ваш труд💪👍💪👍
Спасибо)
Не знаю как для вас, но лично для меня проблема в изучении алгоритмов - их невозможная духота, которая посещает тебя с первой и до последней прочитанной страницы. Невероятно скучно и не особо понятно зачем мне как новичку досконально это знать
Если ты новичок, тогда тебе и не нужно это знать, много джуновских и стажерскиж позиций, да даже и выше есть, где на алгосы вообще похер, но если хочешь дальше двигаться, тогда уже надо алгосам тоже время уделять
@@blackwoodperegrin1950 хз, открываю хх - просят шарить за алгоритмы. Кореша, которые поголовно программисты из самых разных сфер - говорят о том же. Открываешь мок-собесы или реальные на ютубе на джуна - тоже спрашивают.
Фронтендеру мб и не надо, но я в бэкенд мечу, судя по всему там это необходимо
хз, мне лично интересно самому придумывать алгоритмы, смотрю как это нормально можно реализовать, решать задачи и тд, это очень интересно
@@MathPTU такая же фигня, читаю про алгоритмы и не пойму за чем это может быть нужно? Зачем сортировать числа "пузырьком" если есть sort? Была задача пройти по текстовому файлу и все построчно и внести в БД я сам с нуля придумал свой алгоритм, да может это говнокод но я был счастлив как ребенок. Это меня взбодрило и мозг разогрело.
@@blackwoodperegrin1950 чё то меня на стажерских в финтех только и спрашивают алгоритмы)))
Видео по делу, респект. Я вот тоже сейчас учу алгоритмы, работаю программистом 4 года и тут они мне понадобились)). По поводу того, что читать Кормена для изучения алгоритмов с нуля - это жестко. Книга очень тяжелая для тех, кто не учился в универе на прогера, либо прогуливал вышмат. Я бы порекомендовала вначале "Грокаем Алгоритмы" - очень легкая книга. А потом уже к Кормену переходить. Очень тяжело конечно начинать учить алгоритмы, но с книгами намного легче, сразу перестраиваются мозги)
На самом деле пути всегда индивидуальны, и как известно они неисповедимы. Я например такой человек, что не могу долго читать книгу, хотя добирался даже до Кнута, типа читаешь и понимаешь что дядя очень умный и образованный в плане программирования, однако мне надоедает через полчаса-час. А вот когда захожу на leetcode, я будто попадаю в свою стихию, могу за одной задачей просидеть час и мне не наскучит, с тем же успехом могу забросить нерешаемую на данный момент задачку и пойти в раздел решений, разбираю каждое интересное решение этой нерешенной мной лично задачи, а затем каждое из них пошагово реализовываю сам, в общем, ребята, попробуйте разные подходы и делайте то, что вам по душе
Тоже не могу долго книги читать, слишком надоедают. В основном читаю статьи какие-то. Там меньше текста по сравнению с книгами, но полезной инфы тоже можно много почерпнуть
Очень хорошее видео, будущем ждем видео про (как я начал,где работал, проекты т.д)
Хорошо, спасибо, подумаю над этим)
Владимир, спасибо!
Пожалуйста)
Владимир, спасибо
Коротко и по делу. Лайк
Спасибо!
01:19 - Грокаем алгоритмы
01:27 - Кормен
Вообще Грокаем, не всем сразу зайдет. У Кормена есть вступительная книга по алгоритмам, там сразу поняться тянете ли вы это со стороны математики и основ программирования, чтобы с пвездо кода написать самому
коротко, четко, строго по делу. Спасибо как раз такое видео искал.
Спасибо огромное , учу на данный момент алгоритмы но не для программирования а по медицине)
коротко и по делу. очно программист! Спасибо тебе
Тоже так делаю, надо переписывать, лучше понимается, плюс чтение теории, полностью поддерживаю автора
А переписывать в каком смысле? Что это значит? Т.е. написать свой класс, который будет делать тоже самое, что и структура данных или в смысле просто лекцию переписать в тетрадь?
Благодарю вас!!!
Привет. Позитивный контент!класс!
Спасибо!
Владимир, хорошее и полезное видео, спасибо!
Спасибо за видео! А есть что-то по алгоритмам, от простого к сложному, чтобы было реально решать задачи и качаться.
Переписывать алгоритмы, при все уважении, сечас то вы точно знаете как лучше выучить и какие инструменты использовать.
Владимир, будут ли у вас на канале mock-собеседования go junior разработчиков? Мне было бы очень интересно (если я не один такой, поддержите комментарий).
Видно, что Владимир понимает, о чем говорит, имеет широкий кругозор в компьютерных науках. Это касается в том числе и проектирования систем, так и деталей работы с базами данных. Особенно это впечатляет, учитывая, что Владимир самоучка.
У меня всего один вопрос: Владимир, откуда у вас на все это время? Вы самообразовывались во время работы? Это происходит в рамках выполнения трудовых обязанностей? Или вы использовали рабочее время для самообучения? Если да, то согласовано ли это с работодателем и как?
Я понимаю если бы вы были студентом, который проводил годы своей жизни в универе отрабатывая сотни академических изучая все это. В ходе учебной программы требовалось собственноручно реализовать hash-table, поэксперементировать с различными подходами к хэшированию и решению коллизий. Это нормально, т.к. универ готовит людей к широкому профилю задач, предполагая, что он будет наращивать более узкую квалификацию необходимую для непосредственного решения задач уже на работе.
В работе типичного разработчика 30% времени занимает выяснение требований бизнеса, 70% процентов времени уходит на реализацию используя готовые алгоритмы, готовые реализаций структур данных. Так как в процессе работы типичному разработчику просто не нужно держать это в памяти, это постепенно забывается. Все что ему нужно это понимать space / time complexity и то не всегда. Гораздо важнее загрузить в свой мозговой кеш бизнес контекст, структуру конкретной системы, в которой он работает. Далее держать в warm storage предыдущий опыт, т.к. опыт воспринимается ценнее чистого знания. Все это вытесняет подобного рода "знания" в холодное хранилище нашего мозга фиксируя только ключевые слова-ссылки.
Разработчик будет реализовывать функциональность самым простым линейным способом, так как его основной KPI это количество закрытых задач, удовлетворенность клиента. Оптимизацию производительности будут делать там, где с этим выявилась проблема и только когда она выявилась. Для бизнеса чаще более важно выпустить фичу как можно скорее и проверить гипотезу на узком кругу аудитории, чем ждать, пока разработчики все оптимизируют до максимума и в конечном итоге ресурс потрачен, а эквивалентная польза не получена.
Поэтому у меня всегда диссонанс: да я согласен, что понимать глубоко алгоритмы может быть нужно, но только в тех случаях, когда это основная работа разработчика - разрабатывать и применять самые подходящие алгоритмы для решения задач и делать это на ежедневной основе. Но большинство задач на рынке просто этого не требует. Никто не будет нанимать на позицию FrontEnd разработчика, который разбирается в тонкостях решения коллизий в хэш таблице, но не понимает, как работает Flex / CSS Grid, JS, React и тд. Секция алгоритмов на интервью имеет место быть в этом случае, но ее вес должен быть меньше, чем секция непосредственного практической задачи. В итоге это приводит к тому, что все просто заучивают алгоритмы, потому что надо пройти собеседования, проходят собеседования, благополучно все забывают как студенты после экзамена и приступают к своей непосредственной работе - перекрашиванию кнопок.
А как ты пройдешь собес не зная алгоритмов ? уже даже на мидл фронта с зп 200к сраных в 2024 году это уже далеко не много требуют алгосы решать и душные задачи. Посмотри запись с собеса озон там 3 этапа тинкоф тоже самое и сбер и тд. Вот и как жить? 3.5 года работал делал страницы приложения на реакт + ант, и понимаю что ппц теперь
Возьмите задачи где нужны определенные алгоритмы и реализуйте их
Имхо в целом для решения прикладных задач за исключением крайне нагруженных систем и тонкой специфики или очень ограниченных ресурсов рядовому программисту достаточно в целом знать плюсы/минусы контейнеров стандартной библиотеки своего языка и подбирать все это добро под текущие задачи. Просто потому, что изучение всего лютого многообразия остального не пригодится в подавляющем большинстве случаев. А закрепление практикой всей прочитанной теории = no life. А в целом посыл верный - нужно понимание базовой теории структур данных, в идеале по возможности подкрепленное практикой.
Звучит интересно 🎉❤
А когда будет продолжение этой темы разговора подробнее 😮
все верно, какой литкод если двусвязный список не можешь развернуть.
На сколько же люди были гениальными которые придумали эти алгоритмы
Базовая задача интеллекта - находить закономерности.
Отличное видео. Подскажите, стоит ли сейчас изучать C++? Или лучше выбрать что-то другое?
Почему бы и нет, все еще С++ никто не забывает)
красавчег!
Спасибо!
Я тоже сейчас читаю эту книгу ☺️ читается как триллер на одном дыхании) а вот Грокаем алгоритмы не очень понравилась.
На вкус и цвет любителей нет, как говорится)
А сейчас какой ратингь в кодефорцес?
Я там почти ничего не решал
Под основами что подразумевается?
Никогда бы не подумал что фронт-енд разрабу это надо. Я по факту pre-senior, никогда не юзал их в работе но для карьеры как я понял без них никуда.
Посмотри записи с собесов спрашивают задачи с лит кода даже на мидла с 200к зп
Повторение мать учения
что за кресло, на котором сидишь?
А можно список рекомендуемой литературы?
Владимир устрой на работу
Хорошее видео. Там кажется цепочка петличку задевает
Да, есть такое...
От куда ты переписывал алгоритмы? Где источник?
Что значит переписывал? Делал конспект или тупо код/текст переписывал?
Переписать- создать свою версию класса/библиотеки
Например, с чистого листа создал класс, допустим, CustomArrayList
Имплементировал интерфейс List, и пишешь реализацию так, как будто хочешь повторить устройство исходной коллекции (ArrayList в нашем случае -> массив для хранения данных)
В процессе написания и тестирования сухие фразы об O(n) для вставки в худшем случае (для ArrayList) понимаются на деле
В чем смысл зубрить алгоритмы наизусть? Для программирования достаточно навыков программирования. Нужен тебе какой-то алгоритм? Прочитал о нем инфу, реализовал, забыл детали, в голове остались только общие принципы. Никто из прикладных программистов, в здравом уме, не пишет быструю сортировку. А всякие маргинальные алгоритмы - они нужны лишь раз или два в жизни. Ради этого не стоит держать в голове их детали.
Суть скорее в том, чтобы понять, что в задаче вообще можно алгоритм применить. Условно, знать или уметь увидеть, что задачу можно решить за O(n), а не за O(n^2)
@@lalalalalulu4567 Знать такую базу безусловно полезно. Но он же говорит, что переписывал алгоритмы по сто раз до полного запоминания. Это, я считаю, мегаглупость вселенского масштаба.
Хоть раз в работе пригодились, кроме собеседования?
Много раз, все зависит от работы
3 минуты 20 секунд воды и 9 секунд по делу - просто читал книжки и перечислил их, всё
Вот это советы гуру) Все, побежал учить алгоритмы тупым переписыванием в тетрадь) П.С. Тебе хоть пригодились эти самые алгоритмы на работе?
"учил алгоритмы"? жертва егэ!
А почему бы в 21 веке, когда в тренде AI, не потратить пару дней и разобраться с AI, который за тебя будет эту всю дичь писать за пару секунд, вместо того чтоб тратить несколько лет на изучение и зубрение сложной литературы 😀
Это надо прям быть гением чтобы использовать то, что в тренде, а не то что реально работает. Если оно в тренде, это не значит, что оно работает как нужно. Нейронки не всегда правильно решают алгоритмы, плюс даже если и решают, то зачастую в лоб и с большой сложностью, хотя можно решить намного проще. Хотя какие алгоритмы, они зачастую банальные задачи на верстку сделать не могут.
пустое бла бла бла
Зачем?