18 December 2013

Python на Хабре

PythonProgramming
Некоторое время назад, в силу определенных причин, мне пришла в голову мысль о том, чтобы начать изучать какой-нибудь новый язык программирования. В качестве альтернатив для этого начинания я определил два языка: Java и Python. После продолжительного метания между ними и сопутствующих нытья и долбежки головой о стену (у меня с новыми языками всегда так — сомнения, раздумья, проблема выбора и т.д.), я все-таки остановился на Python. Окей, выбор сделан. Что дальше? А дальше я стал искать материал для изучения…

Взялся я за это довольно основательно. Ограничиваться документацией и выпущенными печатными изданиями, на мой взгляд, — не кофильфо. Всегда интересно «потрогать руками». Стоит сказать, что для меня, например, большая проблема придумать для себя задачу, причем ту, которую интересно выполнить. Но опять же, перерывать весь Интернет в поиске чего-то, что поможет «загореться» — излишняя трата времени. Поэтому я нашел компромиссное решение — я перерыл Хабр, точнее его хаб «Python».

Перечень найденного материала ниже. Там не всё — что-то мне было неинтересно, в каких-то статьях я не нашел полезной информации, но большинство статей сгруппированы по категориям, под спойлерами. Категории довольно условные, прошу за это не пинать. Надеюсь, что еще кому-нибудь, помимо меня, этот пост будет полезен. И если вы думаете, стоит ли начать изучение Python или нет — считайте это знаком, что стоит :)

Продвинутый уровень
Python изнутри: 1 | 2 | 3 | 4
Материалы продвинутого уровня по Питону
Заметки об объектной системе языка: 1 | 2 | 3
Абстрактные классы и интерфейсы
Некоторые возможности Python о которых вы возможно не знали
Сопрограммы
Как устроен namedtuple или динамическое создание типов
Итерируем все и вся
Why itertools rocks
Порядок разрешения методов в Python
Руководство по магическим методам в Питоне
Ultimate benchmark пяти с половиной способов проверить наличие атрибута объекта
Интервально-ассоциативный массив
Неочевидное поведение некоторых конструкций
Консервация объектов в Python
Устранение утечек памяти в приложении на Питоне
Memoization в Python
Сортировки: key vs cmp
Всё, что Вы хотели знать о слайсах
Неочевидная оптимизация по скорости при решении конкретной задачи на Python
Ускорение кода на Python средствами самого языка
Производительность в Python. Легкий путь
Пользовательские атрибуты в Python
Руководство к дескрипторам
Еще немного о дескрипторах в Python
Как работает yield
Пайпы, the pythonic way
Сравнение эффективности способов запуска веб-приложений на языке Python
Использование памяти в Python
О порядке поиска пакетов и модулей для импорта в Python
Организация текучих (fluent) интерфейсов в Python
Антипаттерн settings.py
Размышления о Python
Python, философия дизайна — Guido van Rossum: 1 | 2
Мысли о Python 3
Перестаньте писать классы
Тестирование и отладка
Различный практикум
API:
В основном API различных социальных сетей и сервисов.
Пишем себе немного OpenID-авторизации
Экспорт друзей VK в Google Contacts
Скачивание музыки из VK: 1 | 2
Twitter + VK: 1 | 2
Клиент для SOAP API Почты России
Jabber-to-Evernote Gateway изнутри
Скрипт проверки наличия свободных дат в посольстве
Flightstats API: Пишем свое табло прилетов с Боингами и Аэробусами
Получение любимых аудиозаписей с pandora.com
Bing + Python, поиск изображений

Чат:
Программа-мечта начинающего питоновода
WebSocket-чат на Tornado для вашего Django-проекта
Yet another python Chat client

Боты:
ICQ бот
Простой Twitter-бот
Не совсем обычный XMPP-бот: туннелирование
Пишем бота для игры «Найди отличие»
Skype-бот для голосовых конференций
Пишем бота для Twitter на основе GitHub API

Сокеты, серверы:
Сокеты в Python для начинающих
Асинхронный удар
Асинхронный http-клиент, или почему многопоточность — лишнее
Как применять Linux epoll в Python
Сервер на python для websockets
Inbox.py: самый простой SMTP-сервер
Реализация небольшого асинхронного сервера
FTP сервер с авторизацией через базу данных

Система:
Мониторинг за изменениями файловой системы
Python на примере демона уведомления о новых коммитах Git
Git. Автоматическая проверка сообщения коммита на стороне сервера с помощью Python
Скрипт для рекурсивного сравнения директорий
Python для системных администраторов
Gnome Applets. Введение
Пишем апплет для GNOME
Пишем апплет-переводчик для Gnome
Totem Gnome Applet
Переименование процессов в Python
Как написать дополнение для GIMP на языке Python
KDE4 + Python. Плазма-змей
KDE4 Plasma Desktop. Создание плазмоида
Whois: практическое руководство пользователя
Симуляция нажатий Home, End, PgUp, PgDown
Демон для удаленного управления компьютером через e-mail

Работа с консолью:
Простой консольный прогрессбар на питоне
Пишем консольный переводчик для *nix на Python

Парсинг, обработка текста:
Первые шаги в программировании на Python
Пишем свой шаблонизатор на Python
Как я учился работать с XML
Кузявые ли бутявки, т.е. пишем морфологический анализатор
Обработка Excel файлов с использованием Python
Социальный граф хабрасообщества
Regexp и Python: извлечение токенов из текста
Автоматизируем проверку трекинга почты России
Доставка свежей прессы с помощью Python прямо в почтовый ящик
Разбор кода и построение синтаксических деревьев с PLY. Основы
Частотный анализатор английских слов
Grab — python библиотека для парсинга сайтов
Документация по Grab — библиотеке для парсинга сайтов
Парсинг на Pуthon. Как собрать архив Голубятен
Генерим PDF бочками

Работа с изображениями:
Играемся с изображениями в Python
Получаем тип и размеры изображения без скачивания его целиком
Решение проблемы оперативного ресайза изображений

Геймдев:
Пишем платформер на Python, используя pygame: 1 | 2.1 | 2.2
Игра Жизнь на Python
Blender 2.49b + Python 2.6 – используем клавиатуру в своей игре
Blender 2.6 + Python 3.2 – задействуем устройства ввода в собственной игре

Python + Django:
Заметки для построения эффективных Django-ORM запросов в нагруженных проектах
Django ORM, gevent и грабли в зелени
Хостинг картинок за полчаса
Фотогалерея на Django с использованием Google Picasa в качестве хостинга
Сумбурные заметки про python и django
Пишем backend для мобильного приложения за несколько минут
Капча с помощью PIL или практический велосипед

Flask:
Мега-Учебник Flask: 1 | 2 | 3 | 4
Создание RESTful API в Google App Engine на основе Flask

Алгоритмы и структуры данных, ИИ, анализ данных:
Декодирование капчи на Python
Распознавание некоторых современных CAPTCHA
Задачка о восьми ферзях
Реализация графов и деревьев на Python
Поиск в строке. Реализация в CPython
Анализ рынка ноутбуков с помощью Python
Введение в анализ текстовой информации с помощью Python и методов машинного обучения
Введение в анализ данных с помощью Pandas
Шифр Виженера. Разбор алгоритма на Python
Латентно-семантический анализ и поиск на python
Необыкновенный способ генерации лабиринтов
PyBrain работаем с нейронными сетями на Python
Простой классификатор на PyBrain и PyQt4
Обучаем компьютер чувствам (sentiment analysis по-русски)
Определение части речи слов в русском тексте (POS-tagging)
Частотный анализатор английских слов

Вне категории:
Реализация кеша с ограничением по числу элементов на Python — решения: простое и посложнее
Случайные числа из звуковой карты
Пишем модуль расширения для Питона на C
Создаем симулятор солнечной системы
Взламываем шифры с Python
История одной оптимизации
Кодим безумный пассивный сниффер в виде модуля для Python
Рисуем волну .wav-файла
Tilt-Shift фотографии своими руками
Программный захват с вебкамеры
Распознаём изображение с токена при помощи камеры
Простой интерпретатор с нуля на Python
Руководство: пишем интерпретатор с JIT на PyPy
Играемся с гироскопом ноутбука thinkpad в linux

P.S. Если есть какие-то предложения о добавлении сюда ссылки на материал — прошу в личку. По поводу опечаток и чего-нибудь этакое — туда же.
Tags:pythonpython3pythonicобучениеdjangotornadopyqt4pygtktkintertwistedдекораторыgilstacklesswxpython
Hubs: Python Programming
+142
416.6k 3652
Comments 65