О планах на 2024 год.
В 2023 году у нас было не так много постов и активностей. И у меня есть две новости: хорошая и плохая. Хорошая: постов будет больше; плохая: но не сразу. В 2024 году я планирую сделать группу более community-centered: у нас, вероятно, появится бот предложки, а может и еще пара ботов. То же самое касается и совместных активностей: если они и будут, то, вероятно, будут на чьих-то активных волонтерских началах. Ну, а пока это прекрасное время не наступило, у нас будет немножко постов по обработке данных и про хорошие книжки.
В 2023 году у нас было не так много постов и активностей. И у меня есть две новости: хорошая и плохая. Хорошая: постов будет больше; плохая: но не сразу. В 2024 году я планирую сделать группу более community-centered: у нас, вероятно, появится бот предложки, а может и еще пара ботов. То же самое касается и совместных активностей: если они и будут, то, вероятно, будут на чьих-то активных волонтерских началах. Ну, а пока это прекрасное время не наступило, у нас будет немножко постов по обработке данных и про хорошие книжки.
❤14👍5🍓1
Как начать учить python.
Начался новый год, и это неплохой повод начать программировать. Из нашего опыта, один из более простых онлайн-курсов по программированию: https://stepik.org/58852. Курс очень хорош для начинающих и проходится за 1-3 месяца.
Если же у вас уже есть опыт с другими языками программирования, то я могу посоветовать курсы от института биоинформатики:
https://stepik.org/course/67
https://stepik.org/course/512
В них нет разжевывания, но они позволяют быстро познакомиться с новым языком.
Вопросы, возникающие во время прохождения, можно задавать в нашем тг-чате: https://t.me/learnpythonforfun_chat
Начался новый год, и это неплохой повод начать программировать. Из нашего опыта, один из более простых онлайн-курсов по программированию: https://stepik.org/58852. Курс очень хорош для начинающих и проходится за 1-3 месяца.
Если же у вас уже есть опыт с другими языками программирования, то я могу посоветовать курсы от института биоинформатики:
https://stepik.org/course/67
https://stepik.org/course/512
В них нет разжевывания, но они позволяют быстро познакомиться с новым языком.
Вопросы, возникающие во время прохождения, можно задавать в нашем тг-чате: https://t.me/learnpythonforfun_chat
👍8🔥3👎1
Продолжаем про паттерны проектирования. На очереди Адаптер. Этот паттерн позволяет создать класс-оболочку с требуемым интерфейсом (соответственно, для некого класса с неподходящим интерфейсом).
https://refactoring.guru/ru/design-patterns/adapter
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/adapter
#python #patterns #паттерны #ООП
refactoring.guru
Адаптер
Адаптер — это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Forwarded from Data&Knowledge
Наткнулся тут на сборник гайдов по изучению ML, много ссылок с комментариями:
https://github.com/HorusHeresyHeretic/ReadMe
https://github.com/HorusHeresyHeretic/ReadMe
GitHub
GitHub - HorusHeresyHeretic/ReadMe: Тот самый [гайд от подписчика по изучению Data Science] из FAQ чата python_beginners это мануал…
Тот самый [гайд от подписчика по изучению Data Science] из FAQ чата python_beginners это мануал по подготовке к изучению учебных материалов учебного курса ODS RTFM - HorusHeresyHeretic/ReadMe
👍2
Следующий структурный паттерн - Мост. Предположим у вас есть класс, который содержит некоторую абстракцию и реализацию. Проблема возникает тогда, когда обе эти составляющие необходимо часто менять. Тут-то и приходит на помощь паттерн Мост. Он позволяет разделить абстракцию и реализацию. Описание паттерна:
https://refactoring.guru/ru/design-patterns/bridge
#python #patterns #паттерны #ООП
https://refactoring.guru/ru/design-patterns/bridge
#python #patterns #паттерны #ООП
refactoring.guru
Мост
Мост — это структурный паттерн проектирования, который разделяет один или несколько классов на две отдельные иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга.
🔥1
А не начать ли нам книжный клуб? :D
А начать. И начнем мы с того, что нужно знать каждому программисту - алгоритмы. Если коротко, то алгоритм - это последовательность действий, решающая определенную задачу за конечное время. И хороший программист должен знать, как оценивать эффективность алгоритмов, как создавать эффективные алгоритмы и какие алгоритмы используются в его инструментах.
И начнем мы с книги для начинающих:
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
План таков:
1. Заполучить книгу (купить, скачать из файлов ВК и т.д.)
2. Каждую неделю читать одну главу.
Итак, начинаем сегодня с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
А начать. И начнем мы с того, что нужно знать каждому программисту - алгоритмы. Если коротко, то алгоритм - это последовательность действий, решающая определенную задачу за конечное время. И хороший программист должен знать, как оценивать эффективность алгоритмов, как создавать эффективные алгоритмы и какие алгоритмы используются в его инструментах.
И начнем мы с книги для начинающих:
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих
План таков:
1. Заполучить книгу (купить, скачать из файлов ВК и т.д.)
2. Каждую неделю читать одну главу.
Итак, начинаем сегодня с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
Telegram
Учим Питон (Чат)
Курс с нуля: https://stepik.org/course/58852/
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
👍14🙏1
Еще немного про книгу "Грокаем алгоритмы". Эта книга для начинающих и подойдет для ознакомления с темой алгоритмов. Один из плюсов - алгоритмы уже реализованы для нескольких языков и их можно посмотреть на гитхаб:
https://github.com/egonSchiele/grokking_algorithms
Начинаем читать с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
https://github.com/egonSchiele/grokking_algorithms
Начинаем читать с главы "1. Знакомство с алгоритмами". Читаем её до следующих выходных. Вопросы можно задавать в нашем чате в телеграмме: https://t.me/learnpythonforfun_chat.
#книжный_клуб #алгоритмы
GitHub
GitHub - egonSchiele/grokking_algorithms: Code for the book Grokking Algorithms (https://www.amazon.com/dp/1633438538)
Code for the book Grokking Algorithms (https://www.amazon.com/dp/1633438538) - egonSchiele/grokking_algorithms
👍2❤1
Forwarded from Soul Catcher
Решил сделать небольшую задачу по книге "грокаем алгоритмы" на бинарный поиск главы 1
Решение предполагает программную реализацию и использование модуля urllib/requests/httpx/aiohttp.
Задача и её описание находятся тут:
http://176.119.156.68:8000/swagger/index.html
Это OpenAPI документация, она используется для документирования HTTP API. Сам эндпоинт, с которым надо работать из кода расположен тут:
http://176.119.156.68:8000/learnPerDay?minutesPerDay=12.5
Вижу тут два победителя:
Первый победитель должен написать в чат минимальное количество дней.
Второй победитель должен написать параметр, при котором достигается этот показатель.
Если вам зайдёт такой интерактив, то будут ещё задачи. Уже есть идеи для них)
Решение предполагает программную реализацию и использование модуля urllib/requests/httpx/aiohttp.
Задача и её описание находятся тут:
http://176.119.156.68:8000/swagger/index.html
Это OpenAPI документация, она используется для документирования HTTP API. Сам эндпоинт, с которым надо работать из кода расположен тут:
http://176.119.156.68:8000/learnPerDay?minutesPerDay=12.5
Вижу тут два победителя:
Первый победитель должен написать в чат минимальное количество дней.
Второй победитель должен написать параметр, при котором достигается этот показатель.
Если вам зайдёт такой интерактив, то будут ещё задачи. Уже есть идеи для них)
👍4❤2
Дан неупорядоченный массив из 32 элементов. Загадан случайный элемент массива. На каждом шаге бинарного поиска выдается ответ: больше или меньше загаданное число текущего варианта из поиска. За какое количество шагов бинарный поиск гарантированно завершит свою работу и выдаст нужный элемент?
#книжный_клуб #алгоритмы
#книжный_клуб #алгоритмы
За какое количество шагов бинарный поиск гарантированно найдет нужный элемент?
Anonymous Quiz
7%
4
30%
5
7%
6
16%
16
8%
32
10%
Не сработает
22%
Посмотреть ответы
👍2
Итак, продолжаем читать книгу
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих.
В предыдущей главе мы узнали, что такое бинарный поиск. Бинарный поиск позволяет найти нужный элемент, отсекая на каждом шаге половину элементов. Чтобы достичь этого, бинарный поиск полагается на свойство упорядоченности элементов в коллекции. Иными словами, если мы берем случайный элемент в массиве и знаем, что наш элемент больше выбранного, то нам не зачем хранить элементы меньше (левее) выбранного. Мы отсекаем ненужные элементы и повторяем операцию на оставшихся элементах, пока не останется один элемент. Этот элемент либо будет искомым, либо будет отличным от искомого. Последнее будет означать, что искомый элемент не содержится в коллекции.
В следующей главе мы познакомимся ближе с понятиями списка, массива и сортировки. Все эти понятия крайне важны для программиста и постоянно используются. В следующую неделю мы читаем главу "2 Сортировка выбором". Опять же, читаем до следующей субботы, если есть вопросы, задаем их в чате тг (https://t.me/learnpythonforfun_chat). В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Книжка несложная, успехов в прочтении :)
#книжный_клуб #алгоритмы
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих.
В предыдущей главе мы узнали, что такое бинарный поиск. Бинарный поиск позволяет найти нужный элемент, отсекая на каждом шаге половину элементов. Чтобы достичь этого, бинарный поиск полагается на свойство упорядоченности элементов в коллекции. Иными словами, если мы берем случайный элемент в массиве и знаем, что наш элемент больше выбранного, то нам не зачем хранить элементы меньше (левее) выбранного. Мы отсекаем ненужные элементы и повторяем операцию на оставшихся элементах, пока не останется один элемент. Этот элемент либо будет искомым, либо будет отличным от искомого. Последнее будет означать, что искомый элемент не содержится в коллекции.
В следующей главе мы познакомимся ближе с понятиями списка, массива и сортировки. Все эти понятия крайне важны для программиста и постоянно используются. В следующую неделю мы читаем главу "2 Сортировка выбором". Опять же, читаем до следующей субботы, если есть вопросы, задаем их в чате тг (https://t.me/learnpythonforfun_chat). В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Книжка несложная, успехов в прочтении :)
#книжный_клуб #алгоритмы
Telegram
Учим Питон (Чат)
Курс с нуля: https://stepik.org/course/58852/
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
🔥6
Forwarded from Игорь
Не помню гд я это нашёл. Может и тут же. Но может быть интересно. Это миниигра, где надо расставлять аннотации типов: https://github.com/laike9m/Python-Type-Challenges?tab=readme-ov-file
GitHub
GitHub - laike9m/Python-Type-Challenges: Master Python typing (type hints) with interactive online exercises!
Master Python typing (type hints) with interactive online exercises! - GitHub - laike9m/Python-Type-Challenges: Master Python typing (type hints) with interactive online exercises!
Какова сложность чтения произвольного элемента массива (если мы знаем его позицию)?
Anonymous Quiz
64%
O(1)
7%
O(log n)
20%
O(n)
9%
Посмотреть ответы
Какова сложность удаления элемента из списка (если мы знаем его позицию)?
Anonymous Quiz
50%
O(1)
9%
O(log n)
34%
O(n)
7%
Посмотреть ответы
Учим Питон
Какова сложность удаления элемента из списка (если мы знаем его позицию)?
Пояснение: мы имеем указатель на элемент двусвязного списка. Нам не нужно искать этот элемент внутри списка.
Итак, продолжаем читать книгу
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих.
В предыдущей главе мы познакомились с такими структурами данных, как массив и связный список. Массив может быть охарактеризован, как непрерывная последовательность элементов одного типа в памяти. Он поддерживает быстрый доступ O(1) к элементам по индексу, но удаление и вставка занимают больше времени - O(n). Список же состоит из узлов, где каждый узел связан с последующим или предыдущим (в случае односвязного списка) или с последующим и предыдущим (в случае двусвязного списка). Операция вставки и удаления в связном списке довольно просты, если у нас есть ссылка на удаляемый элемент O(1), но чтения элемента по индекс занимает больше времени - O(n). Кроме того, в этой главе мы познакомились с сортировкой вставками, которая выполняется за квадратичное время.
В следующей главе "3. Рекурсия" мы познакомимся поближе с понятиями рекурсии и стека. Концепция рекурсивного вызова является одним из подходов к построению итеративных алгоритмов. Стек же является базовой концепцией выполнения программ в современных вычислительных системах. Оба понятия важны для понимания программистом.
Читаем до следующей субботы, если есть вопросы, задаем их в чате тг (https://t.me/learnpythonforfun_chat). В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Книжка несложная, успехов в прочтении :)
#книжный_клуб #алгоритмы
Бхаргава А. - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих.
В предыдущей главе мы познакомились с такими структурами данных, как массив и связный список. Массив может быть охарактеризован, как непрерывная последовательность элементов одного типа в памяти. Он поддерживает быстрый доступ O(1) к элементам по индексу, но удаление и вставка занимают больше времени - O(n). Список же состоит из узлов, где каждый узел связан с последующим или предыдущим (в случае односвязного списка) или с последующим и предыдущим (в случае двусвязного списка). Операция вставки и удаления в связном списке довольно просты, если у нас есть ссылка на удаляемый элемент O(1), но чтения элемента по индекс занимает больше времени - O(n). Кроме того, в этой главе мы познакомились с сортировкой вставками, которая выполняется за квадратичное время.
В следующей главе "3. Рекурсия" мы познакомимся поближе с понятиями рекурсии и стека. Концепция рекурсивного вызова является одним из подходов к построению итеративных алгоритмов. Стек же является базовой концепцией выполнения программ в современных вычислительных системах. Оба понятия важны для понимания программистом.
Читаем до следующей субботы, если есть вопросы, задаем их в чате тг (https://t.me/learnpythonforfun_chat). В конце следующей недели я сделаю небольшую выжимку по главе и подготовлю опрос.
Книжка несложная, успехов в прочтении :)
#книжный_клуб #алгоритмы
Telegram
Учим Питон (Чат)
Курс с нуля: https://stepik.org/course/58852/
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
Курсы для прохождения: https://docs.google.com/document/d/1N-SxSRbe5eaV3z4BEknNVB1G7EKgtfdgVmTyy-q95fY/edit?usp=sharing
Правила: https://vk.com/@learnpythonforfun-pravila-gruppy-i-chatov
❤2
Для тех, кто хочет глубже понять рекурсию, немного задач на подумать:
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D1%8F
https://ru.wikibooks.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D1%8F
ru.wikibooks.org
Рекурсия
Исходный вариант статьи (В. В. Пупышев, «Рекурсия: плохо или хорошо?») опубликован в журнале «Потенциал».