Нихуя не понял, но очень интересно. Особенно та часть где половина программистов говорит про принт с ковычками а другая про обстракции. А тебе всего навсего надо чтобы тебе вернули 5 в ' '
Из ролика ничего не понял, пришлось гуглить. Оказалось всё предельно просто, объяснение на стороннем ресурсе потребовало нескольких строк) Существует принцип KISS, так вот, автор, как мне кажется, ему не следует. Хотя не исключено, что я просто глуп) Слишком всё усложнено, проще, пожалуйста.
Если нужны порядковые номера элементов коллекции, то полезно использовать функцию enumerate или в качестве аргумента range указать len коллекции) (4 кейс)
Занимаюсь разработкой, как хобби, уже больше года, пишу проектики, читаю книги. Но вот натыкаюсь на такие видео - и для меня это просто какая-то китайская грамота. Что почитать про ООП на русском, чтобы понимать то, о чем говорит автор в видео? Я думал, что после второго тома Лутца я уже неплох в ООП, но, видимо, нет
Ну вот и я о том же. В любом языке есть встроенные структуры данных и привязанные к ним алгоритмы - и этим надо уметь пользоваться. Если вы работаете в JetBrains и создаёте IDE, то этого будет мало. Но для обычного джуна или мидла веб или мобильного разработчика этого будет достаточно. Ну а когда вам предложат должность IT архитектора то тогда и начинайте изучать всю эту теорию, а до этого момента пользуйтесь готовыми решениями которые предоставлены вам стандартной библиотекой того языка с которым вы работаете
Автор, уважай своего зрителя! ПРИБЛИЖАЙ или УВЕЛИЧИВАЙ ШРИФТ. Уверен, именно поэтому у тебя мало подписчиков и просмотров. не все, к сожалению с орлиной зоркостью, а тем более на смартфонах и планшетах. За полезность - 5+, а за неуважение к зрителю - (-1)
Видео - хорошее, потому что короткое. Рекомендую автору продолжить делать видео на эту тему. 5- 10 минут - поисковые алгоритмы для разных структур данных. 5-10 минут - алгоритмы сортировки для разных структур данных. 5-10 минут - алгоритмы Delete - для разных структур данных. 5-10 минут - алгоритмы Update для разных структур данных. 5-10 минут - алгоритмы create insert для разных структур данных
А ещё же есть классификация языков по типизации, статическая или динамическая, строгая или слабая, и по управлению памятью, полное управление как в C/C++, сборщик мусора (мне известны 2 вида, дерево ссылок как в java и C# или владение ссылкой как в Python) и Rust с системой владения
А можете рассказать, какая может быть необходимость в знании алгоритмов поиска и сортировки, если есть встроенные функции питона по сортировке и поиска?..
Для мидла и джуна эти все знания не нужны. Но для людей которые создают языки программирования - это всё знания важные и нужные. Солдату не нужно знать как координировать действия армий, но зато ему надо знать как окапываться и оказывать первую медицинскую помощь. А вот генералу эти знания нужны. Алгоритмы и структуры данных - это знания бесполезные для джунов и мидлов веб разработчиков, но необходимые базовые знания для генералов IT. Для тех кто создаёт среды разработки и новые языки или облачные сервисы. Я не понимаю человека который не способен сделать простое веб приложение и изучает алгоритмы и структуры данных. Научитесь сначала делать простые веб или мобильные приложения а потом закапывайтесь а этих бесполезных теориях. Но это видео хорошее - потому что короткое. Несколько сложных тем человек объяснил за семь минут. Браво!
Это довольно узконаправленный алгоритм, иногда может потребоваться свой бинарный поиск по своей функции, и для этого желательно знать принцип его работы) а сортировка сам не знаю аха
С примерами, картинками - вполне круто. Хотя классификаций по которым можно делить яп'ы куда побольше чем в видео, всё о чем тут говорится правда и по делу.
В питоне list это динамический масссив, а не связный список. В коде питона удаление N элемента это не освобождение памяти и изменение укзателей, а memmove куска массива влево. Я точно не знаю, но numpy быстрее скорее всего потому, что в нём массив хранит данные (когда в итоне там хранятся ссылки на сами объекты), из-за этого доступ информации более быстрый и все функции для работы с массвом имеют меньше обстракций
есть алгоритм есть входные данные алгоритм чёто делает над входными данными и получает результат рассмотрим алгоритм линейный поиск: есть массив чисел, надо найти в нём позицию какого-то числа из массива. алгоритм как выглядит: идём с начала массива, сравниваем число с искомым, при нахождении возвращаем индекс (завершаем алгоритм) макс сложность будет О(n) почему: макс сложность - худший случай, выполнится максимум действий. мы перебираем массив с начала, худший случай для нас, когда число в конце массива. алгоритм по всему массиву пройдёт и только потом вернёт последний индекс. причём итераций в алгоритме будет n. пусть будет бинарный поиск. опять массив с числами, но уже отсортированный (пусть будет по возрастанию) алгоритм: берём два индекса: 0 и n (левый и правый соотв.), делим массив пополам. если число меньше, чем число в середине, берём левую часть массива, иначе правую. потом то же действие проделываем с выбранной половиной пока не найдём число (пока часть массива, которую мы делили постоянно пополам, не станет длины 1). возвращаем индекс завершаем алгоритм. сложность такого алгоритма: log 2 (n) (точно не скажу, потому что действий целое число а логарифм надо будет округлять, в какую сторону - не знаю). почему: постоянно массив делим на 2 части. тут в тему загадка про арбуз: на сколько частей можно его поделить за 10 разрезов? ответ 1024. вот мы также массив делим как арбуз. худший случай (простите выделить не могу)
если мне память не изменяет, то дейкстра не работает с отрицательными значениями, вернее некорректно. Но если больно надо, например расчет расстояния на декартовой плоскости, то это уже другой алгоритм, точно не вспомню какой, но дейкстра покажется детской забавой
Джуну и мидлу алгоритмы и структуры данных не нужны. Но нужно уметь пользоваться теми которые встроены в его язык, на котором он программирует. Я работаю с Котлин. Там есть List, Map и Set. По умолчанию они неизменяемы, но если добавить слово Mutable то они изменяемы. К каждой этой коллекции имеется много встроенных алгоритмов. Мне для моей работы этого хватает. Но для того чтобы создать язык программирования Kotlin - этих знаний бы не хватило
Полезный набор. Алгоритмы сортировки знать не обязательно, в библиотеке каждого языка уже есть своя реализация. Но знать какие существуют варианты сортировки может пригодиться.
Увеличь шрифт в IDE, не все видно, размывается. Для видео надо от 16 шрифта минимум. А представь кто то с смартфона еще смотрит, а не я как с ноута с фулл шд.
хорошее легкое видео. жаль что непопулярное, побольше бы таких легких видео о сложных вещах, чтобы можно было все тонкости уже самому изучить, надеюсь автор не остановится
Декоратор - это интерфейс numba для взаимодействия с python. Часть numba же написана на C и C++ У numpy же всё идёт точно также. Часть написана на python, часть - на C и C++ и других языках
@@omicron-IT И....? Всеравно python code который потом вызывает нумба функцию (возможно врапер над eval или собственный парсер python для кода python для оптимизации...... ) Всеравно - как врапер + врапер может быть быстрее прямого интерфейса для numpy (C интерфейса) ?
Ускорить то его можно, вот только не везде и не всегда. И годится он в основном только для нейронок (и то, там почти все библиотеки написаны на С, без С питон ничто), для автоматизации чего либо и всё. Бэкенд я бы на нём в 2023 делать не стал, для это есть GО, или Node.js, или даже C#. Вообще не понимаю из-за чего этот язык стал таким популярным? Это как с модой в области одежды - придумал однажды кто-то носить брюки клёш и весь мир с ума сошёл, все надели на себя это уродство с широченными штанинами-колоколами. А позже все одумались и выбросили это недоразумение. Не хочу сказать, что питон это недоразумение, но хайп вокруг него сильно раздут и его тащат везде куда не следует - пишут на нём GUI после чего даже мощные компьютеры тормозят (то же самое и с JS и его ублюдочным электроном), создают на питоне мобильные приложения на мерзком Kivy, даже игры пытаются делать. А питон совсем не про это - он как клей для склеивания разных модулей написанных на С и С++, для простеньких скриптов - вот тут он очень удобен. А уж обучать на нём программированию это вообще бред. Скриптовой язык с динамической типизацией. И куда мир катится?
Не вижу ни 1 объективного аргумента, заменить в твоём спиче python на условный (!) java (ничего против не имею) и будет такой же текст. Куда мир катиться, когда люди буквально уверовали в то, что python плохой и не могу объяснить почему. А сравнивать I/O-bound-ориентированный язык с CPU - смешно, как и ограничивать себя в технологиях: "без С питон ничто". Против С и С++ ничего не имею, сам на них пишу динамические библиотеки для распределения ресурсозатратной нагрузки с питона на них
Он всем нравится потому что удобен. Легко читается, легко понимается, все лаконично, логично. Читаешь код c++ и охуеваешь. Тот же java. Все эти языки нужно жечь и создать с 0.
Всё это прекрасно, но скажу лишь одно в реальных проектах, мало где можно использовать Numba. Это может пригодиться для работы с музыкой так как там нужна быстрая работа с массивом чисел. При работе с нейросетями можно использовать, но не везде. Вещь хорошая, но узкоспециализированная.
Спасибо, интересно рассказываете. Всё никак не пойму, зачем люди в образовательное видео вставляют фоновую музыку. Зрители же не для развлечения такое смотрят, а для получения полезной информации. На мой взгляд в таком случае музыка только отвлекает, а слишком громкая тем более.
В начале видео код С++ написан явно не очень хорошо. Во-первых, зачем создавать константу и массив, потом заполнять этот массив, в цикле, который выполняется 150000 раз? К тому же, лучше создавать массив таких размеров не на стеке, а на куче, можно заюзать vector (он там сверху даже подключен :). Дальше, в условии третьего по счету цикла: i < std::sqrt(n) -> сравнивать так int с double это смело, конечно, кроме того, вычислять заново этот самый корень для каждой итерации для одного и того же числа - бессмысленно (это будет оптимизировано msvc, но все же, это плохой тон). Ну и зачем юзать printf, если это С++, где std::cout? Зачем юзать С-шный каст типа, почему бы не использовать static_cast? Не нужно измерять время выполнения программы таким образом. Кстати, опять же, это точно С++? Если да, то почему <time.h>, если есть <chrono>?). Вообще лучше скомпилировать программу (или сбилдить проект через ту же вижлу), зайти в powershell и использовать утилиту Measure-Command, чтобы измерить время выполнения нормально.
Мне почему-то кажется, что если твой код на пайтон работает недостаточно быстро - стоит вернуться в самое начало разработки и признать, что ты выбрал не тот язык программирования. Пайтон нужен не для скорости работы программы, а для того, чтобы максимально быстро написать то, что будет работать.
@@omicron-IT Да я не ваше видео критикую. Вы-то как раз правильно все сказали. Мне в целом не понятна концепция ускорения пайтона. То-бишь, ускорение его сверх того, что дает знание стандартных алгоритмов. Тот же pypy или наличие классических массивов в пайтоне выглядит странно как по мне. Везде объекты, а тут вдруг классический массив...
Спасибо за видео. Начал активно учить пайтон месяц назад. Теперь, помимо всего прочего, дополнительно стало понятно одно из предназначений декораторов, почему они так удобны