1:37 тут немного непонятные формулировки. [value for value in range(10000)] - генератор списков (value for value in range(10000) - генераторное выражение. Было бы очень полезно объяснить, почему такая разница между ними и чем это обусловлено. + когда применяют список, а когда кортежи. Таким образом, новички более углубленно поймут свои возможные ошибки.
прикол в том, что сравнивать скорость по занимаемой памяти не корректно, так ещё и тут абсолютно разный функционал, первый вариант запишет всё в список, воторой создаст генератор без записывания и это вообще будет можно сказать функция
Да сам вывод некорректен. Каким образом он измерил скорость функцией getsizeof?😂 getsizeof возвращает размер объекта и логично, что у генераторного выражения он меньше, потому что он хранит только текущее состояние Да и всегда надо понимать для чего тебе та или иная структура данных, а то такие видео "Топ 7 ошибок новичков" можно клепать сколько угодно, потому что эти самые ошибки и будут появляться из-за недостаточных объяснений
@@n1retА ты уверен что тебе нужен лист с миллионами значений? ты можешь создать генератор, и записывать уже в лист с генератора, что тебе надо и все, а не хранить мусорные значения, которыми ты даже в коде не будешь пользоваться 🤔
Для меня самое полезное было использование построчного профайлера. Как-то пропустил такую фишку :(. Обзор профайлеров и их использования, был бы полезен (мне)
Блин, а как сделать так, чтобы у меня было все так же красиво как и ZProger, я понимаю, что это линукс, но ваще не шарб ни в кастомизации, ни в чем либо другом😬
0:50 ну я посчитал по твоим критериям: увеличил до миллиона транзакций в секунду. это работает годами. через 1000 лет банк потеряет 1 рубль из-за этой ужаснейшей ошибки. это действительно огромное количество расходов для компании.
Парень, тебе нельзя озвучивать... В твоей речи выпадают все гласные звуки и интонация не попадает в смысловые значения. Жуть! Я не воспринимаю и половины того, что ты говоришь
Спасибо, буду исправлять. Нельзя озвучивать это как сказать "если не умеешь ходить, то даже не учись", это дело практики и нужно время. Можете глянуть первые видео и сравнить как я говорил раньше, только советую присесть перед этим)
А кто тогда будет смотреть видео? Статистика моего канала показывает, что украинцев смотрит всего около 6%, русскоговорящих примерно 80%, при этом там целый ряд стран. Не вижу особого смысла это делать, я могу начать на корявом английском снимать, но какой с этого толк если будет по 100 просмотров.
Вроде проще арифметику с денежными единицами переводить в int, и вести расчеты в центах/копейках, 10 + 10 + 10 выглядит понятнее, чем Decimal("0.1") + Decimal("0.1") + Decimal("0.1")
В чем смысл использовать NamedTuple в сравнении с обычным классом или датаклассом? Правда не вижу преимуществ, можно было обойтись обычным классом, раз он уже создан
NamedTule это прежде всего кортеж. можно вычитывать кортежи передавая распакованные значения в конструктор NamedTuple и на выходе получишь доступ к значениям по заданным именам а не по индексам, как в случае с обычным кортежем.
Я просто предложил, может даже раз в месяц сделать что то по типу рубрики. Дело в том что ты единственный кто делает такоц интересный и особенный контент, но к сожалению только на питоне(жругих ютуберов на твоем уровненету), который порой даже мне надоедает@@zproger
Проблемка в том, что для поиска фишек нужно глубоко копать в язык, а на других языках я не пишу, поэтому особо ничего интересного рассказать не смогу 🧐🧐 Разве что в Rust можно копнуть, но это планы на будущее.
Все никак не могу допилить систему, только сделаю, как сразу что-то отваливается в обновах, поэтому когда сделаю финальный релиз, будет ролик по ее настройке.
@@zproger Если изучить Библию. То оно так и должно себя вести... Рекламой вещей которыми пользуетесь вы повышаете количество пользователей и возможность поддержки тех фич... 😉😍
1 - если вас удивляет пропажа точности при арифметических операциях с float и double типами, нужно открыть гугл и почитать, как эти типы организуют память и почему именно плывет точность. Decimal нужен только для фин. операций, так как в других случаях избыточен из за высокого потребления памяти в сравнении с float и double. 2 - выигрыш не по скорости, а по памяти. Второй вариант сработает только в случае, если нам не нужна индексация, так как мы получим объект-генератор вместо листа. 3 - ладно. 4 - если в ваших словарях в какой то момент появляются ключи разных типов данных, ещё и допускающих неявные преобразования между собой, вам стоит крепко задуматься, как и почему вы свернули не туда. И желательно на годик-другой пересесть на язык со строгой статической типизацией, ручки выпрямить. 5 - Используйте полноценные IDE, а не огрызки в виде текстовых редакторов, и тогда вам не придется удивляться, что использование зарезервированных ключевых слов почему то приводит к ошибкам, так как IDE вам об этом сообщит по месту. 6\7 - Если ваша функция просит только путь к файлу, и пытается туда что то записать, никак не проверяя, что ей передали, то скорее всего ваши руки растут немного не из плеч. Любая функция работы с ФС, являющаяся оберткой над функциями стандартной библиотеки, должна либо конкретизировать, что именно и с какими файлами она делает, либо ожидать помимо пути к файлу и флаги, отвечающие за режим работы с файлом - чтение\запись\чтение-запись\бинарный_IO. Так же, абсолютно нормально и правильно, когда контекстные менеджеры используются внутри такой функции, ибо в этом смысл - мы вызываем функцию, и просим её записать "text" в "file.txt". Как она будет это выполнять, вызывающий код интересовать не должно. А вот передача открытых файловых дескрипторов как раз таки и приводит к ошибкам и багам, и делать так нужно тогда и только тогда, когда по другому сделать невозможно. 8 - У "простых" туплей и именованных разные сферы применения. Нет "лучшего" и "худшего" вариантов, если контекст, в рамках которого и нужно выбирать, какой именно тип вам нужен. Про наследование от NamedTuple - типизация в питоне формальная. Мы всё ещё в такой класс можем в одно и то же поле запихивать и, условно, кошек, и велосипеды, и фиолетовое. А ещё такой "наследник", в случае переопределения конструктора и передачи всех нужных параметров конструктору родительского класса, вообще может создать франкенштейна, половина полей у которого объявлены как поля класса в исходном коде, а другие сгенерированы в рантайме. А если конструктор родителя не вызывать - то в чём смысл наследования от NamedTuple? 9 - Вау, специальная библиотека для работы со сложной математикой работает быстрее стандартного питонячьего интерпретатора, вот это открытие. NumPy "под капотом" целиком написан на С, по этому когда вы используете его встроенные функции и методы, они отрабатывают быстрее, так как вы вызываете скомпилированный код. Гуглим "В чем отличие интерпретируемых и компилируемых ЯП". А питоньи стандартные функции с numpy-объектами работают медленно, так как выполняется дополнительная аллокация и копирование памяти для преобразования unmanaged-данных из "внутрянок" numpy в типы, с которыми может работать питоний интерпретатор. Для кого вообще записываются подобные видео?
Для кого вообще ты пишешь свои идиотские комментарии? Особенно содержательна вот эта часть "3-ладно"! Ну раз такому выдающемуся спецу ладно, то мы тут должны быть в восторге (для тебя поясняю: ИРОНИЯ). Ну и по 9-ому пункту ты тоже какую-то фигню написал - суть не в том, что numpy быстрее, а в том, что некоторые неочевидные операции в numpy медленнее, чем в стандартном Python, например, создание массивов.
нормальное видео. например, увидел что-то новое, полез читать, изучать. увидел что-то старое, похлопал себя пяткой в грудь и скушал пирожок. Обнаружил косяк - настрочил своё гневное фу! :))) А нуб прочитал и возрадовался :))) 6-7: как учил меня один старый мастер: никогда не доверяй входящим данным, особенно от пользователей (моя вольная интерпретация: фильтруй базар)
@@maxpetrov4288 Ютуб мне порекомендовал видео, я его посмотрел и прокомментировал. В чём проблема? А про мой девятый пункт - я это написал к тому, что подобные "неочевидности" неочевидны только тем, кто не понимает, как работает программирование. Для человека, который учит программирование, а не питон, будет очевидно, какие функции Python будут медленно работать с NumPy объектами и наоборот, потому что он понимает, что происходит при вызове таких функций. По этому и в видео "для новичков" должно было не просто быть сказано, что мол вот, смотрите какой прикол, а объяснено, почему именно так происходит. Потому что понимание работы с памятью - это азы и основы даже для высокоуровневых ЯП, и если человек не понимает, как работает память в его программах, он может называть себя кем угодно, кроме программиста.
1 ошибка: не пишите на tkinter, пишите на wx. Ваши проги на ткинтере совсем не доступны для незрячих, так как gui рендерится не нативно, а читалки экрана для незрячих эти gui не понимают. «Видел» я небольшие скрипты для автоматизации. Написанные на tkinter... И я не мог пользоваться.
Подкину идею Расскажи про комментарии в начале файла Для линукс систем и Си кода это важный момент Там что то про кодировку или че то такое Раскрой тему асинка, прочитал книжку хорошую много полезного подчеркнул, но не против увидеть другие реализации с методами асинка Раскрой тему пакетов модулей гита и подобное Раскрой тему командной работы с репозиторием это думаю круто, работаю с гитом один и ничего такого, а вот в команде страшно, пайчарм еще такие сообщения выдает при обновлении локального гита merge rebase, интересно узнать про пул реки и тд ну и вообще можно раскрыть как из терминала так и из пайчарм ❤
Первая ошибка: начать с Python, а не с трушного C++ P.S. Для душнил: это рофл, мне наплевать на каком ЯПе кто пишет, ЯП это инструмент, главное, чтобы разработчик им грамотно воспользовался.
Вопрос не по теме, но если ответите буду очень благодарен, вы пользуетесь каким то оконным менеджером, вроде i3 или dwm, суть не в этом. Я нигде не смог найти нормальный гайд по кастомизации. То есть нигде не показано как настроить выпадающие уведомления, как добавлять в панель приложения работающие в фоновом режиме вроде telegram или obsstudio, выпадающее меню wifi, микшер громкости и так далее. Если знаете хороший ресурс посоветуйте пожалуйста
Пункт 2 - НЕ в скорости , а в памяти. Ну иэто логично опять же - ведь по сути генератор это не структура данных в отличие от листа.
Он и говорил о памяти, хотя я не помню чтобы кто-то утверждал что листкомп занимают меньше памяти, столько же сколько и обычные листы
Да, есть такое, немножко не так выразился, а на монтаже забыл поправить
Во втором примере оговорился😬
разница в основном будет не в скорости, а по памяти
Да, ошибочка
Здравствуйте, а есть путиводитель к изучению пайтона и для дальнейшой карьеры?
1:37 тут немного непонятные формулировки.
[value for value in range(10000)] - генератор списков
(value for value in range(10000) - генераторное выражение.
Было бы очень полезно объяснить, почему такая разница между ними и чем это обусловлено. + когда применяют список, а когда кортежи. Таким образом, новички более углубленно поймут свои возможные ошибки.
прикол в том, что сравнивать скорость по занимаемой памяти не корректно, так ещё и тут абсолютно разный функционал, первый вариант запишет всё в список, воторой создаст генератор без записывания и это вообще будет можно сказать функция
Да сам вывод некорректен. Каким образом он измерил скорость функцией getsizeof?😂
getsizeof возвращает размер объекта и логично, что у генераторного выражения он меньше, потому что он хранит только текущее состояние
Да и всегда надо понимать для чего тебе та или иная структура данных, а то такие видео "Топ 7 ошибок новичков" можно клепать сколько угодно, потому что эти самые ошибки и будут появляться из-за недостаточных объяснений
@@n1retА ты уверен что тебе нужен лист с миллионами значений? ты можешь создать генератор, и записывать уже в лист с генератора, что тебе надо и все, а не хранить мусорные значения, которыми ты даже в коде не будешь пользоваться 🤔
Первая ошибка, видимо, это смотреть такие видео вместо чтения документации
вы же в курсе, что генератор после выполнения итерации теряет её значение? другими словами - по генератору можно пройтись только один раз.
Благодарю за примеры. Из-за них решился взятся за прочтение Лутца.
Спасибо за фидбэк!
Для меня самое полезное было использование построчного профайлера. Как-то пропустил такую фишку :(. Обзор профайлеров и их использования, был бы полезен (мне)
самое полезное - нижнее подчеркивание для разделения разрядов, спасибо
Не знал про named tuple.
Спасибо, очень полезно
Благодарю
Первая ошибка новичка - изучать питон. Сначала надо научится программировать. Умение говнокодить - само придёт с годами))
надо начинать с FASM, согласен
Разве round не округляет? :.1f просто удаляет, а round округляет так же?
пж запиши видео про свою божественную настройку гиперленда вима браузера и тд
Я нихера не понял, но было интересно и хочу в этом разобраться
:0
Это школа библиотек?
Уже лет 10-15 никто не использует значения с плавающей для денег.
а для биткоинов? ;-)
Блин, а как сделать так, чтобы у меня было все так же красиво как и ZProger, я понимаю, что это линукс, но ваще не шарб ни в кастомизации, ни в чем либо другом😬
В следующем видео расскажу
@@zproger огромное спасибо! 😁
Какая разница в скорости? Разница в объёме использования памяти.
Да, оговорился немного
Не, я конечно всё понимаю, но о "Кортыжах" слышу впервые...
Зачем создавать класс и наследоваться от именованного кортежа, когда есть Data classes?
Спс. Зашло
Благодарю
Запиши уже как настроил вим для питона (((
Нет времени на это к сожалению, да и он не настроен, это дефолтный nvchad
0:50 ну я посчитал по твоим критериям: увеличил до миллиона транзакций в секунду. это работает годами. через 1000 лет банк потеряет 1 рубль из-за этой ужаснейшей ошибки. это действительно огромное количество расходов для компании.
Думаю компания не выдержит таких потерь
5!
И моё 5 более объективно, т.к. я новичек и мне было реально полезно! Вотъ!
ниче не понял что типо нампай медленнеее?? не поверю!))
Банковское приложение на пайтон, ору
А что у тебя за ОС
Это арч. В целом, можно скачать endeavour os и привести её к такому виду, если нужно что-то с графическим установщиком
Arch linux если не ошибаюсь
Arch + кастом BSPWM
Генератор не ускоряет в 8000 раз. И вообще, на стрессах он на 3-5% медленнее лист-компрехеншна.
Немного оговорился, там были замеры по памяти, следовательно в 8000 раз именно экономия памяти, а не ускорение.
Парень, тебе нельзя озвучивать... В твоей речи выпадают все гласные звуки и интонация не попадает в смысловые значения. Жуть!
Я не воспринимаю и половины того, что ты говоришь
Спасибо, буду исправлять. Нельзя озвучивать это как сказать "если не умеешь ходить, то даже не учись", это дело практики и нужно время. Можете глянуть первые видео и сравнить как я говорил раньше, только советую присесть перед этим)
4
named tuple - устаревший эрзац. dataclass рулят
Это совершенно разные структуры
и? в чем вы видите проблему в использовании датаклассов в приведенных вами примерах?@@zproger
Немного напрягает буква z. Что бы это значило? За СВО?
посмотрите сколько каналу лет и сколько видео сюда уже загружено с этим ником
Zorro был супергероем задолго до СВО :)))
Данное видео не было для меня полезным
Благодарю за фидбэк
Чи є у тебе в планах ,перейти на українську?
А кто тогда будет смотреть видео? Статистика моего канала показывает, что украинцев смотрит всего около 6%, русскоговорящих примерно 80%, при этом там целый ряд стран. Не вижу особого смысла это делать, я могу начать на корявом английском снимать, но какой с этого толк если будет по 100 просмотров.
Кома зайва! І це в тексті з одного речення!!!
Сідай, 2!!!😴
Вроде проще арифметику с денежными единицами переводить в int, и вести расчеты в центах/копейках,
10 + 10 + 10 выглядит понятнее, чем Decimal("0.1") + Decimal("0.1") + Decimal("0.1")
arch... me use it too,btw
:DD
В чем смысл использовать NamedTuple в сравнении с обычным классом или датаклассом? Правда не вижу преимуществ, можно было обойтись обычным классом, раз он уже создан
Именованный тапл занимает гораздо меньше памяти в сравнении с классом (если не использовать slots)
NamedTule это прежде всего кортеж.
можно вычитывать кортежи передавая распакованные значения в конструктор NamedTuple и на выходе получишь доступ к значениям по заданным именам а не по индексам, как в случае с обычным кортежем.
Может перейдешь ещё раз другие языки? Питон мой мэйн язык, а си шарп просто для прикола как пример, иногда задалюывает смотреть только питон
У меня канал о Python, не думаю что кто-то ждет здесь видео о других языках.
Я просто предложил, может даже раз в месяц сделать что то по типу рубрики.
Дело в том что ты единственный кто делает такоц интересный и особенный контент, но к сожалению только на питоне(жругих ютуберов на твоем уровненету), который порой даже мне надоедает@@zproger
У нас все на работе тебя смотрят, так к слову😂
Проблемка в том, что для поиска фишек нужно глубоко копать в язык, а на других языках я не пишу, поэтому особо ничего интересного рассказать не смогу 🧐🧐
Разве что в Rust можно копнуть, но это планы на будущее.
@@zproger кстати раст тоже интересный язык, хотел выучить но работа не позволяет. А в целом слышал что язык прикольный в плане фишек
Просто ставлю лайк за линукс порно. 😂❤
И каждый раз вопрос... Какие настройки и как он все это бэкапит...😅
Все никак не могу допилить систему, только сделаю, как сразу что-то отваливается в обновах, поэтому когда сделаю финальный релиз, будет ролик по ее настройке.
@@zproger Если изучить Библию. То оно так и должно себя вести... Рекламой вещей которыми пользуетесь вы повышаете количество пользователей и возможность поддержки тех фич... 😉😍
Библию знаю хорошо, но пример не понял))
1 - если вас удивляет пропажа точности при арифметических операциях с float и double типами, нужно открыть гугл и почитать, как эти типы организуют память и почему именно плывет точность. Decimal нужен только для фин. операций, так как в других случаях избыточен из за высокого потребления памяти в сравнении с float и double.
2 - выигрыш не по скорости, а по памяти. Второй вариант сработает только в случае, если нам не нужна индексация, так как мы получим объект-генератор вместо листа.
3 - ладно.
4 - если в ваших словарях в какой то момент появляются ключи разных типов данных, ещё и допускающих неявные преобразования между собой, вам стоит крепко задуматься, как и почему вы свернули не туда. И желательно на годик-другой пересесть на язык со строгой статической типизацией, ручки выпрямить.
5 - Используйте полноценные IDE, а не огрызки в виде текстовых редакторов, и тогда вам не придется удивляться, что использование зарезервированных ключевых слов почему то приводит к ошибкам, так как IDE вам об этом сообщит по месту.
6\7 - Если ваша функция просит только путь к файлу, и пытается туда что то записать, никак не проверяя, что ей передали, то скорее всего ваши руки растут немного не из плеч. Любая функция работы с ФС, являющаяся оберткой над функциями стандартной библиотеки, должна либо конкретизировать, что именно и с какими файлами она делает, либо ожидать помимо пути к файлу и флаги, отвечающие за режим работы с файлом - чтение\запись\чтение-запись\бинарный_IO. Так же, абсолютно нормально и правильно, когда контекстные менеджеры используются внутри такой функции, ибо в этом смысл - мы вызываем функцию, и просим её записать "text" в "file.txt". Как она будет это выполнять, вызывающий код интересовать не должно. А вот передача открытых файловых дескрипторов как раз таки и приводит к ошибкам и багам, и делать так нужно тогда и только тогда, когда по другому сделать невозможно.
8 - У "простых" туплей и именованных разные сферы применения. Нет "лучшего" и "худшего" вариантов, если контекст, в рамках которого и нужно выбирать, какой именно тип вам нужен. Про наследование от NamedTuple - типизация в питоне формальная. Мы всё ещё в такой класс можем в одно и то же поле запихивать и, условно, кошек, и велосипеды, и фиолетовое. А ещё такой "наследник", в случае переопределения конструктора и передачи всех нужных параметров конструктору родительского класса, вообще может создать франкенштейна, половина полей у которого объявлены как поля класса в исходном коде, а другие сгенерированы в рантайме. А если конструктор родителя не вызывать - то в чём смысл наследования от NamedTuple?
9 - Вау, специальная библиотека для работы со сложной математикой работает быстрее стандартного питонячьего интерпретатора, вот это открытие. NumPy "под капотом" целиком написан на С, по этому когда вы используете его встроенные функции и методы, они отрабатывают быстрее, так как вы вызываете скомпилированный код. Гуглим "В чем отличие интерпретируемых и компилируемых ЯП". А питоньи стандартные функции с numpy-объектами работают медленно, так как выполняется дополнительная аллокация и копирование памяти для преобразования unmanaged-данных из "внутрянок" numpy в типы, с которыми может работать питоний интерпретатор.
Для кого вообще записываются подобные видео?
Для кого вообще ты пишешь свои идиотские комментарии? Особенно содержательна вот эта часть "3-ладно"! Ну раз такому выдающемуся спецу ладно, то мы тут должны быть в восторге (для тебя поясняю: ИРОНИЯ). Ну и по 9-ому пункту ты тоже какую-то фигню написал - суть не в том, что numpy быстрее, а в том, что некоторые неочевидные операции в numpy медленнее, чем в стандартном Python, например, создание массивов.
нормальное видео. например, увидел что-то новое, полез читать, изучать. увидел что-то старое, похлопал себя пяткой в грудь и скушал пирожок. Обнаружил косяк - настрочил своё гневное фу! :))) А нуб прочитал и возрадовался :)))
6-7: как учил меня один старый мастер: никогда не доверяй входящим данным, особенно от пользователей (моя вольная интерпретация: фильтруй базар)
@@maxpetrov4288 Ютуб мне порекомендовал видео, я его посмотрел и прокомментировал. В чём проблема? А про мой девятый пункт - я это написал к тому, что подобные "неочевидности" неочевидны только тем, кто не понимает, как работает программирование. Для человека, который учит программирование, а не питон, будет очевидно, какие функции Python будут медленно работать с NumPy объектами и наоборот, потому что он понимает, что происходит при вызове таких функций. По этому и в видео "для новичков" должно было не просто быть сказано, что мол вот, смотрите какой прикол, а объяснено, почему именно так происходит. Потому что понимание работы с памятью - это азы и основы даже для высокоуровневых ЯП, и если человек не понимает, как работает память в его программах, он может называть себя кем угодно, кроме программиста.
Для нормисов, которых большинство
Благодарю, за комментарий. Не кратко, но четко все описано
А почему в последнем примере не написать декоратор timer, чтобы не загромождать код этими time.time time.time?)
Этому есть причина, которую я называю словом "лень" :D
Вот по этой причине многие хорошие блогеры и начинают скатываться)@@zproger
1 ошибка: не пишите на tkinter, пишите на wx.
Ваши проги на ткинтере совсем не доступны для незрячих, так как gui рендерится не нативно, а читалки экрана для незрячих эти gui не понимают.
«Видел» я небольшие скрипты для автоматизации. Написанные на tkinter... И я не мог пользоваться.
Интересный момент, спасибо.
Зачем так растягивать окончания?
По-другому не умею
Подкину идею
Расскажи про комментарии в начале файла
Для линукс систем и Си кода это важный момент
Там что то про кодировку или че то такое
Раскрой тему асинка, прочитал книжку хорошую много полезного подчеркнул, но не против увидеть другие реализации с методами асинка
Раскрой тему пакетов модулей гита и подобное
Раскрой тему командной работы с репозиторием это думаю круто, работаю с гитом один и ничего такого, а вот в команде страшно, пайчарм еще такие сообщения выдает при обновлении локального гита merge rebase, интересно узнать про пул реки и тд ну и вообще можно раскрыть как из терминала так и из пайчарм
❤
разве можно Яндексу доверять, новостная повестка, алгоритмы - все лживое
Разочарован 😢
Что это было в 8 примере?
Почему не декоратор 😮
«Лень» и должна была заставить его написать
4
😎
Не сможете сказать, что у него за WM?
bswpm
Я первый . обожаю этот канал
Спасибо 😉😉
Какой у тебя линукс дистрибутив, или мб плагины? интересно просто выглядит твоя система.
это arch + кастом bspwm оболочка
Что это за OC?
arch linux
Братик нифига ты имба, на арче сидишь красиво )) Скажи что за тема в vscode?
Это nvim от nvchad
@@zproger спасибо братик
Тоже хочу перейти в Линукс, недавно скачал арч и случайно повредил винду. Вот и стимул не возвращаться, а привыкать)
Поставь manjaro, будет тебе юзерфрендли arch based ОС. А вообще из под винды, если очень хочется никсы трогать, посмотри в сторону WSL @@result_123
Первая ошибка: начать с Python, а не с трушного C++
P.S. Для душнил: это рофл, мне наплевать на каком ЯПе кто пишет, ЯП это инструмент, главное, чтобы разработчик им грамотно воспользовался.
:DD
Хотел подушнить, но впилился в P.S...Плачу теперь.
Hello!
Hello 😎😎
Вопрос не по теме, но если ответите буду очень благодарен, вы пользуетесь каким то оконным менеджером, вроде i3 или dwm, суть не в этом. Я нигде не смог найти нормальный гайд по кастомизации. То есть нигде не показано как настроить выпадающие уведомления, как добавлять в панель приложения работающие в фоновом режиме вроде telegram или obsstudio, выпадающее меню wifi, микшер громкости и так далее. Если знаете хороший ресурс посоветуйте пожалуйста
Первая ошибка: начать изучать пайтон
😖😖
Если нет мозгов, то большая ошибка изучать что бы то ни было, без мозгов можно только потреблядь
А Фатальная ошибка не написать свою операционную систему...😂
Ну и не иметь точку респа с США видимо...😂
Просто интересно стало, а что с пайтоном не так? И чем тогда его можно заменить?
@@criticalrock7244c++
Первая ошибка: Решил учить питон
Почему? Минусов вроде нет, если нужна скорость то используй rpython и будет тебе счастье
Так можно сказать про любой язык
@@zproger Именно, для каждого языка своё предназначение