5 лучших ресурсов для изучения Python: часть 2
Недавно я уже постил подборочку из 5 годных источников, которые помогают прокачаться в Python.
Пост собрал почти 300 репостов, а это много. Поэтому делюсь ещё пятёркой тоже вполне себе крутых источников для изучения Python (кроме этого канала, конечно 😎). Тут уже даже и бесплатные книги есть.
Сохраняйте себе и учитесь на здоровье:
1. Python.org
Шутки шутками, мемы мемами, а лучший источник для изучения любого языка — это его документация. На Python.org есть куча ссылок, материалов и ресурсов по работе языком. А ещё — отличное руководство для начинающих, которое проведет вас по основам языка.
2. Электронная книга «Learn Python the Hard Way»
Бесплатную книгу «Learn Python the Hard Way» можно читать онлайн на любых устройствах, в т.ч. и мобильных. Не знаю, откуда данные, но несколько раз видел утверждение, что её читают минимум 1,5 млн людей. Если правда, считаю, достойно.
3. LearnPython.org
Это — платформа с интерактивными руководствами, с которыми можно попрактиковаться прямо в браузере. Идеально для новичков.
4. Серия книг «Invent with Python»
В основе серии лежит идея «наслаждаться процессом его изучения». Каждое руководство, совет и урок освещают подход к решению какой-то определенной задачи.
Онлайн-версии доступны бесплатно.
5. Электронная книга «Dive into Python 3»
Это — онлайн-книга, в которой объясняются отличия третьей версии языка Python от второй. Тема уже более узкая, но зато книгу тоже можно скачать бесплатно.
#подборка
Как учить Python с нуля с удовольствием: пишем своего чат-бота
Python — подходящий язык программирования для старта. Но многие новички учат его неправильно: почти все онлайн-курсы, тренажёры, книги и видео предлагают начинать учить Python с каких-то странных задач, вроде: «Давайте решим вот эту математическую задачку» или «Давайте напишем рекурсивный поиск чисел Фибоначчи».
Автор этой статьи Илья Осипов втянулся в программирование, когда писал чат-бота для своего вуза. Расписание на сайте было неудобным и он решил написать чат-бота, который будет присылать расписание занятий в более удобном виде. И через годчат-ботом пользовалось уже 4 тысячи пользователей.
В статье Илья предлагает начать изучение с решения реальных проблем и написать своего полезного чат-бота: https://tproger.ru/articles/kak-uchit-python-s-nulya-s-udovol-stviem-piwem-svoego-chat-bota/
#начинающим #telegram
Самые популярные вопросы на собеседовании: «Объясните функцию range»
Range генерирует список целых чисел. Её можно использовать тремя способами. Функция принимает от одного до трёх аргументов.range(stop)
— генерирует целые числа от 0 до целого числа stop
:[i for i in range(10)]
#=> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop)
— генерирует целые числа от start
до stop
:[i for i in range(2,10)]
#=> [2, 3, 4, 5, 6, 7, 8, 9]
range(start, stop, step)
— генерирует целые числа от start
до stop
с интервалами step
:list(range(2,10,2))
#=> [2, 4, 6, 8]
#собеседование
Как придумать надёжный, но запоминающийся пароль?
Можете взять несколько слов и объединить их в последовательность, напоминающую сюжет. Затем отформатировать и добавить специальные символы.
А можете просто написать Telegram-бота, который будет генерировать такие пароли для вас прямо в мессенджере. В статье вместе с @Selectel рассказали, как это сделать: https://tprg.ru/rSzN
Реклама ООО «Селектел» LjN8KSsLC
Пишем GPT в 60 строк NumPy — часть 2
Оказалось, что только кинул предыдущий пост в отложку, как через несколько часов вышла вторая (и финальная) часть статьи. Что ж, увидел, исправляюсь, делюсь с вами: https://habr.com/ru/post/717644/
В этой части автор уже вплотную подходит к тому этапу масштабирования. Когда требуется куча труда разработчиков и денег, а фреймворки обучения могут становиться абсурдно долгими и сложными. Так что если ваш путь лежит как раз в такие команды, это хорошая база для старта.
#ml
Хинт для программистов: у Tproger есть 4 канала, где можно получать отборную инфу по конкретной теме.
Каждый найдёт что-нибудь для себя:
— разработка на Java: @a_cup_of_java
— нейронные сети и ML: @neuro_channel
— мобильная разработка: @mobi_dev
— разработка на С# / .NET: @dot_net_c_sharp
Реклама tproger.ru LjN8KGPSp
Leetcode 934: Разбор задачи на Python с использованием dfs + bfs
Вообще, LeetCode — это онлайн-платформа с алгоритмическими задачами по программированию, своего рода тренажёр для подготовки к техническим собеседованиям. Считается, что если регулярно с ним заниматься, то через полгода ваши шансы устроиться в бигтех.
На практике конечно, там много нюансов, но это и не важно! Давайте пока просто познакомимся с типичной задачкой и попробуем её решить.
Вам дана двоичная матрица размера n x n, где 1 представляет сушу, а 0 представляет воду. Остров — это 4-направленно связанная группа 1, не связанная ни с какими другими 1. В сетке ровно два острова. Вы можете изменить 0 на 1, чтобы соединить два острова в один остров.
Как найти наименьшее количество нулей, которое нужно перевернуть, чтобы соединить два острова?
Решение разобрали здесь: https://tproger.ru/articles/leetcode-934-razbor-zadachi-s-ispol-zovaniem-dfs-bfs/
#задачи
Бесплатное обучение по созданию искусственного интеллекта с нуля
Всего за 3 вечера под руководством Дмитрия Романова, основателя Университета Искусственного Интеллекта, вы с легкостью напишете свой первый искусственный интеллект
Какие нейронные сети вы создадите?
— Классификация марок молока
— Классификация людей на входящих и выходящих из автобуса
— Обнаружение возгораний
— Оценка стоимости квартир
— Классификация отзывов на Teslа
— Оценка резюме соискателей
— Прогнозирование стоимости полиметаллов
— Сегментация изображений самолетов
— Распознавание команд умного дома⠀
Лучше освоить навыки создания нейронных сетей вам помогут домашние задания с проверкой от кураторов.
Регистрация по ссылке
Реклама ООО «Терра Эй Ай»
Ответ:Функция-декоратор
— это функция, которая оборачивает другую функцию. В разработке она используется для расширения обёрнутой функции
Станьте Middle Python-разработчиком за 10 месяцев
Курс «Python Developer» от OTUS подходит как новичкам, так и практикующим разработчикам, которые хотят перестроиться на Python-разработку.
Там вы изучите 74 темы от базового синтаксиса и работы с веб-фреймворками до настройки виртуальных машин и Data engineering, создадите два полноценных проекта, получите диплом гособразца и помощь в трудоустройстве.
Сделать вжух и стать миддл-питонистом можно по ссылке: https://tprg.ru/d2M7
Реклама ООО «Отус Онлайн-Образование»
Для работы в международной команде базового английского может не хватить. Держите 5 советов, которые помогут подготовиться к общению с иностранными коллегами
А если хотите подтянуть язык для работы в IT — попробуйте Яндекс Практикум. Они запустили курсы специально для разработчиков, аналитиков и продакт-менеджеров.
В основе обучения — занятия с личным преподавателем, дополнительно вас ждёт разговорная практика с иностранными IT-специалистами. Они помогут освоить язык на примере собеседований, стендапов, ревью и других рабочих встреч. Будет проще пройти реальное англоязычное собеседование, если вы уже тренировали его на занятиях.
Записывайтесь на бесплатную консультацию к куратору, который определит ваш уровень языка и расскажет о курсе: https://tprg.ru/Vz1D
Реклама АНО ДПО «Образовательные технологии Яндекса»
Какие книги по Python вы читали недавно? Какая книга вам понравилась больше всего, а какую лучше вообще не открывать?
Читать полностью…Самые популярные вопросы на собеседовании: « В чем разница между remove, del и pop?»
Тип данных List
в Python помогает сохранять разные типы данных в определенной связанной последовательности. И есть несколько методов для удаления элементов из списка. Вот в чём их основное различие:
1. remove()
удаляет первое совпадающее значение:li = ['a','b','c','d']
li.remove('b')
print(li)
#=> ['a', 'c', 'd']
2. del
удаляет элемент по его индексу:li = ['a','b','c','d']
del li[0]
print(li)
#=> ['b', 'c', 'd']
3. pop()
удаляет элемент по индексу и возвращает этот элемент:li = ['a','b','c','d']
print(li.pop(2))
print(li)
#=> 'c'
#=> ['a', 'b', 'd']
#собеседование
Как войти в IT? Стоп, это из другой интеграции!
Сейчас вы не услышите традиционной рекламы курсов с обещаниями из домохозяйки сделать айтишника. Потому что речь пойдет о необычном для образовательного рынка продукте.
Вы слышали о тренде на микро-обучение? Так учат сотрудников IBM, Google и другие IT-гиганты.
Суть в том, что вы смотрите короткое видео, содержащее доступную и понятную информацию, и сразу применяете ее на практике, закрепляя понимание материала. А когда вы выполняете задание, вам сразу начисляются HP как в игре.
Ребята из DeepSkills адаптировали под микро-обучение уже более 20 курсов по программированию, аналитике данных и Data Science. Учиться можно прямо во время поездки в метро и даже завтрака. Такая учеба не влияет на ваш образ жизни, но зато позволяет приобретать навыки. А геймизация делает процесс еще более залипательным.
На платформе большое количество бесплатного контента. Кликайте и узнайте ещё больше: deepskills.ru
Реклама ООО «Дипскиллс»
Хорошая новость для Python-разработчиков: «Честный знак» проведёт первый онлайн-хакатон с призовым фондом 900 000 рублей
«Честный знак» — это система маркировки и прослеживания продукции, которая борется с контрафактом и некачественными лекарствами, техникой и другими товарами. Например, специальный QR-код на молоке, который сканируют на кассе, — и есть «Честный знак».
На хакатоне у вас будет возможность создать свой продукт для эффективного управления товарными запасами, дистрибуцией и продажами бизнеса. А также продукт для прогноза показателей производства/продаж.
Когда: 24-26 марта, заявки принимают до 14 марта
Узнайте подробнее и оставляйте заявку на участие: https://tprg.ru/ThyE
Реклама ООО «Оператор-ЦРПТ» LjN8KE9hJ
Дайджест Python #4: версия 3.12 и свой GPT за 60 строк кода
Собрали дайджест из лучших материалов по Python. Как написать свою GPT-модель всего за 60 строк кода, что нового в Python в версии 3.12 и как повлиять на работу коммунальных служб с помощью машинного обучения — читайте в статье:
https://tproger.ru/articles/dajdzhest-python-4-versija-3-12-i-svoj-gpt-za-60-strok-koda/
#дайджест
Объяснение:
Функция range()
может принимать в качестве параметров исключительно int-значения
И так как в примере выше мы подаём ей float-число
, на выходе нам выдаётся ошибка
Самые популярные вопросы на собеседовании: «Как перевести строку в верхний/нижний регистр?»
Это очень простой вопрос, но и на них иногда «спотыкаются», особенно новички. Для ответа на этот вопрос можно использовать строковые методы upper()
и lower()
:small_word = 'potatocake'
big_word = 'FISHCAKE'
small_word.upper()
#=> 'POTATOCAKE'
big_word.lower()
#=> 'fishcake'
#собеседование
Пишем GPT в 60 строк NumPy — часть 1
Если уже тестировали популярные модельки нейросетей через API или даже просто когда-то что-то где-то слышали и хотите копнуть глубже, в этой статье автор рассказал, как написать GPT всего в 60 строках numpy с нуля: https://habr.com/ru/post/716902/
Для понимания статьи достаточно базово разбираться в Python, NumPy и обладать небольшим опытом в обучении нейросетей. В реализации отсутствует большая часть функциональности, чтобы максимально её упростить. В общем, enjoy.
Вообще, понимание архитектуры GPT — всего лишь небольшая часть более масштабной темы больших языковых моделей, но жизненно важная для разработчиков нейросетей. GPT оказалась первой архитектурой, у которой есть удобные свойства масштабирования, высокой параллелизации на GPU и качественного моделирования последовательностей. Ну и самое приятное, что исходники выложены на гитхабе: github.com/jaymody/picoGPT.
#ml
Над чем вы работали на этой неделе, какие задачи героически решили и какие баги превратили в фичи?
Делимся всем, чем хочется похвастаться — текст, скриншоты кода и даже ссылочки на видео: https://tproger.ru/articles/chto-vy-delali-na-jetoj-nedele-post-ljogkogo-hvastovstva-za-20-24-fevralja/
Первый взгляд на Arduino Lab for MicroPython и сравнение с Thonny IDE
В ноябре 2022 года Arduino объявили, что MicroPython стал частью их экосистемы. Вместе с этим разработчики выпустили новую IDE — Arduino Lab for MicroPython. Но чем она лучше той же Thonny, которую до сих пор используют для программирования микроконтроллеров на Python?
Если работаете или планируете работать с Arduino, вот небольшая заметка с обзором новой функциональности: https://habr.com/ru/company/selectel/blog/716098/
#arduino
Самые популярные вопросы на собеседовании: «Что такое декоратор?»
Этот вопрос, пожалуй, встречается на каждом собеседовании. Вообще декораторы — тема большая и как-нибудь обязательно найду хороший материал, чтобы раскрыть её шире. Но а пока давайте базово разберёмся в этом вопросе.
Если вкратце, декоратор позволяет добавить новую функциональность к существующей функции. Это делается так. Функция передаётся декоратору, а он выполняет и существующий и дополнительный код. Для примера напишем декоратор, который записывает в журнал вызовы другой функции.
Напишем функцию декоратора
В качестве аргумента он принимает функцию func
. Декоратор определяет функцию log_function_called
, которая вызывает func()
и выполняет код print(f'{func} called.')
. А затем возвращает определенную им функцию:def logging(func):
def log_function_called():
print(f'{func} called.')
func()
return log_function_called
Напишем другие функции, к которым позже добавим декоратор:def my_name():
print('chris')
def friends_name():
print('naruto')
my_name() #=> chris
friends_name() #=> naruto
Теперь добавим декоратор к эти двум функциям:@logging
def my_name():
print('chris')
@logging
def friends_name():
print('naruto')
my_name()
#=> <function my_name at 0x10fca5a60> called.
#=> chris
friends_name()
#=> <function friends_name at 0x10fca5f28> called.
#=> naruto
Теперь легко добавить ведение журнала в любую функцию, которую мы пишем. Достаточно написать перед ней @logging
.
#собеседование
Как писать чистый код на Python?
Python — один из наиболее элегантных и чистых языков программирования. Но красивый и чистый синтаксис не означает чистый код.
Бьерн Страуструп, создатель C++, говорит, что чистый код должен быть красивым и эффективным. Логика должна быть понятной, зависимостей как можно меньше, а производительность — приближена к оптимальной.
Годная заметка, в которой показывают, как реализовать это всё на Python: https://pythonist.ru/kak-pisat-chistyj-kod-na-python/
Введение в Git: от установки до основных команд
Git — это консольная утилита, с помощью которой вы можете откатывать свой проект до более старой версии, сравнивать, анализировать или соединять изменения в одном репозитории. Притом, это может быть что угодно — не только код.
И сегодня умение работать с Git — мастхев для разработчика на любом языке программирования. Если ещё не разбирались с Git, вот простой и доступный гайд для начинающих: https://tproger.ru/translations/beginner-git-cheatsheet/
#git #начинающим
У нас для вас отличные новости! Наш сайт обновился и теперь может уведомлять по почте и в Telegram о новых материалах, которые интересны именно вам
Для этого вам нужно:
1. Авторизоваться на сайте tproger.ru
2. Зайти в свой профиль и подписаться на интересные вам теги в разделе «Подписки». Например, библиотеки, инструменты и другие
3. В разделе уведомлений выбрать, как именно вы хотите получать уведомления
4. Всё! Вы великолепны и теперь всегда будете первым узнавать о свежих материалах
Дайджест Python: пишем AI-плеер для сайта и боремся с лесными пожарами
Собрали свежий дайджест из лучших материалов по Python.
Узнайте, как создать плеер для сайта на основе ИИ, как предсказать развитие лесных пожаров, почему крупные IT-компании США массово увольняют сотрудников и как быстро прокачать свой код на Python: https://tproger.ru/articles/dajdzhest-python-3-pishem-ai-pleer-dlja-sajta-i-boremsja-s-lesnymi-pozharami/
#дайджест
Как ускорить код на Python?
На Python можно написать всё: от десктопных программ до высокопрофессиональных веб-приложений. Это интерпретируемый язык и на нём можно использовать продвинутые инструменты, типа интроспекции и метапрограммирования.
Есть у Python и один минус, который превращается в жирный довод в спорах про «самый лучший ЯП» — это низкая скорость работы по сравнению с программами, написанными на компилируемых языках программирования (C++ и др).
Но на самом деле, тут всё зависит от прямоты рук. Давайте разбираться, как проанализировать и здорово ускорить код на Python: https://tproger.ru/articles/kak-uskorit-prilozheniya-na-python/
Где полезна асинхронность в Python, а где — нет
Наткнулся на интересную статью прям для самых начинающих, в которой на пальцах разбирают плюсы и минусы асинхронного программирования, зачем оно нужно и какие задачи решает.
Если вы новичок и ещё не разбирались в синхронном/асинхронном программировании, не слышали про параллелизм и не знаете, зачем все этим заумные слова придумали, это заметка поможет разобраться:
https://habr.com/ru/company/kts/blog/713084/
#начинающим