В данной статье будут приведены различные идеи по созданию приложений для начинающих программистов, которые рекомендуется рассмотреть тем, кто планирует заниматься соответствующей деятельностью.
Разработка или программирование
Перед тем, как заниматься непосредственным написание программ на ПК и другие устройства, стоит разобраться с терминологией. В мире используют два термина, которые фактически описывают одни и те операции. Но на самом деле они разные.
Речь идет о разработке и программировании. Многие говорят, что это – процессы создания программных продуктов, разницы никакой нет. На самом деле соответствующее утверждение проблематично назвать грамотным:
- Разработка. Это – процесс создания сложного (или элементарного) проекта «с нуля». Разработчики не только разбираются в азах написания кодов, но и в структуре приложений. Они учат команду взаимодействовать друг с другом. Иногда – разбираются в основах тестирования.
- Программирование. Решение строго обозначенных задач при помощи выбранного языка. Людям предстоит просто писать приложения, которые будут отвечать конкретным критериям. Знать структуру ПО и разбираться в особенностях формирования ТЗ не придется.
Команда программистов – это узкоспециализированные специалисты. Они занимаются написанием простых или сложных программ без сопровождения и непосредственной разработки. Разработчики – это мастера-универсалы. Они работают более профессионально, ценятся на рынке труда больше. Каждый усидчивый программист может рано или поздно путем отработки навыков и повышения квалификации стать разработчиком.
Самая полезная программа для пк !
Как правильно создавать ПО
Идеи для программных проектов в 21 веке ничем не ограничены – только фантазией непосредственного клиента. Написать на компьютере можно все, что хочешь: от небольшого flash-приложения до полноценной онлайн игры. Но сначала придется не только разобраться с идеей, но и составить план ее реализации.
Чтобы сделать собственное приложение, пользователь должен:
- Выбрать язык для дальнейшего изучения. Далее будут рассмотрены самые популярные варианты.
- Изучить ЯП. Рекомендуется рассмотреть его основы. На данном этапе можно сформировать список простых и интересных задачек для начинающих. Они продемонстрируют принцип реализации тех или иных функций языка.
- Составить план проекта. А именно – продумать идею. То, что хочется получить «на выходе».
- Продумать ТЗ. Крайне важный момент для любого приложения. Чем более детализированным будет ТЗ (список требований), тем лучше окажется итоговый результат.
- Создать прототипы и проработать дизайн. То, как выглядит контент, тоже является важным моментом. Нет успешных, но ужасно смотрящихся проектов. В хорошем программном продукте во всех областях наблюдается гармония.
- Написать непосредственный код. Здесь иногда помогут туториалы и обучающие видео. Нужно написать «внутренности» приложения. Этой задачей занимается или программист, или разработчик.
- Провести тестирование. Процесс необходим для поиска ошибок и их дальнейшего оперативного устранения.
После того, как все сделано, нужно добавить приложение в «общий доступ», провести релиз продукта. Остается лишь поддерживать его при необходимости.
О языках
Язык программирования – это формальный язык, необходимый для записи программных продуктов, драйверов и служб. Он включает в себя несколько типов правил:
- семантику;
- лексику;
- синтаксис.
За счет использования ЯП можно создавать разнообразные программы для ПК и иных платформ. Все зависит от выбранного языка.
Классификация
Чтобы создать успешный проект, нужно грамотно выбрать ЯП. Все они разделяются по:
- Степени зависимости от устройств. Здесь выделяют низкий и высокий уровни.
- Принципам разработки. Проекты могут создаваться на процедурных, непроцедурных и объектно-ориентированных ЯП.
- Ориентации на непосредственный класс задач. Сюда относят универсальные ЯП и специализированные.
Проект может ориентироваться на конкретную платформу или выступать в качестве кроссплатформенного приложения. Второй вариант подойдет не только для компьютеров, но и для мобильных устройств. Обычно такую концепцию используют уже опытные специалисты.
Самые популярные ЯП – на чем писать
Задумываясь над проектами для начинающих программистов, стоит сначала выбрать язык, на котором разработчик начнет составлять приложение. Полезно рассмотреть самые популярные варианты в 21 веке:
- Python. Широко используется в машинном обучении. Синтаксис простой и понятный, напоминает английский. Приложения на нем не слишком быстрые, но безопасные. Используется ЯП в веб-приложениях и тогда, когда хочет сделать собственный сайт. Подходит для новичков.
- C (Си). Производительный и функциональный. У него отсутствуют надстройки. Рекомендуется тем, кому интересны средние и крупные приложения. Для прикладных программ на ПК не подходит. Идеален для встроенных программных продуктов.
- Java. Один из лучших вариантов для новичков. Быстро учится и легко считывается непосредственным программистом. Имеет множество библиотек и иных вспомогательных файлов для оптимизации.
- C++. Объектно-ориентированный язык. Для новичков из-за достаточно сложного синтаксиса не годится. Но, если человек уже знаком с разработкой, он должен воспользоваться этим вариантом. C++ — язык, который необходимо выучить всем современным программистам. Универсальный вариант для кроссплатформенного и нативного программирования.
- PHP. Подойдет для клиент-серверной и веб-разработки.
- HTML. Скриптовый программный язык, который нужен для создания веб-приложений. С его помощью можно подгрузить на сайт базу данных и многое другое.
- JavaScript. Еще один достаточно простой скриптовый ЯП.
Также есть Swift, Kotlin, VisualBasic и другие. Но предложенные варианты – лучшие в 2022 году. На них рекомендуется заострить внимание тем, кто с нуля хочет в сжатые сроки получить полноценный и интересный проект.
ТОП-9 идей
Проектов для программирования очень много. Все зависит от того, чему именно хочет обучиться каждый конкретный человек. Далее будут предложены примеры лучших приложения для новичков. Они позволяют лучше освоить выбранный язык разработки с нуля. Все предложенные примеры будут приведены на C++.
Вход и регистрация
Самый простой проект, нацеленный на рассмотрение файловых систем. С его помощью можно зарегистрировать нового пользователя через специальный интерфейс путем запроса логина и пароля. При успешной регистрации будет создан пользовательский файл с необходимыми учетными данными.
Когда клиент не обнаружен в БД, приложение выведет на экран сообщение об ошибке. Пример такого проекта – здесь.
Аренда авто
А это – популярный вариант для тех, кому нужно изучить:
- события клавиатуры;
- функции даты и времени;
- реализацию системы авторизации.
Контент предусматривает отдельное меню для администрации и интерфейс для пользователей. Также в нем есть расчет стоимости проезда, который базируется на основе времени и расстояния.
Инвентаризация
Элементарная утилита для поддержки хранения книг в специализированном магазине. Если человек приобретает литературу, количество «лотов» уменьшается. Когда книжка добавляется, система корректирует данные. Здесь огромную роль играют указатели.
Можно поменять код так, чтобы можно было добавить идентификатор книжки и искать на его основе литературу.
Студенческие отчеты
Пример для рассмотрения потоков ввода/вывода данных. Здесь же изучается система управления файлами. Контент собирает информацию об учащихся, а потом вычисляет среднюю оценку.
Это – элементарный консольный программный продукт. Вот – его код.
Казино – угадай номер
Интересное решение для тех, кому нужно научиться работать с:
- библиотеками;
- случайными числами.
Здесь система запросит сумму ставки, после чего предложит угадать число. Если все верно, пользователь получает выигрыш. В противном случае засчитывается проигрыш. Сумма на балансе уменьшается. Тут – исходный код.
Судоку
Классическая азиатская игра. В ней необходимо разложить цифры от 1 до 9 так, чтобы они отображались в строках и столбцах всего по одному разу.
Здесь особую роль играет концепция поиска с возвратом. Начальные значения должны быть жестко запрограммированы.
Валидатор кредиток
Контент, использующий алгоритм Луна. Он нужен для того, чтобы проверить кредитную карту пользователе.
Пример хорош тем, что он позволяет рассмотреть огромное количество транзакций электронной коммерции.
Вертолетик
Игра в «Вертолетик» из 90-х теперь в интерактивном режиме. Для нее рекомендуется использовать SDL-графику.
Смысл заключается в том, чтобы двигать вертолет вперед, не касаясь возникающих препятствий. Управление происходит за счет клавиатуры. Если отпустить кнопку, вертолет опускается. Он разбивается, а игра прекращает работу.
Рисование
Графическое ПО, в котором можно создавать машинки, а затем заставлять их двигаться при помощи графики. Использует Turbo C++. На других IDE тоже прекрасно работает.
Для того, чтобы утилита нормально функционировала, необходимо подключить graphics.h. Вот это ПО.
Как освоить разработку
Чтобы быстрее обучиться программированию в Москве и других регионах России, стоит воспользоваться дистанционными онлайн курсами. На них будут разобраны самые интересные, оригинальные и функциональные примеры ПО.
Новички в срок до 12 месяцев смогут создавать собственные проекты – от элементарных до сложных. Они сформируют первое портфолио, а также получат в конце электронный сертификат – документальное подтверждение приобретенным навыкам и знаниям.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus! Ниже – один из них:
Источник: otus.ru
12 идей проектов на Python для вашего портфолио
Сайт pythonist.ru опубликовал перевод статьи «12 Unique Python Project Ideas for Your Resume». Представляем его вашему вниманию.

Чтобы получить достойную работу в IT, пригодится профильное образование и диплом. Но далеко не все разработчики заканчивали вуз. Работу можно найти и благодаря собственным навыкам, доказательством которых служат личные проекты. Причем проекты — мера куда более объективная, чем диплом.
В этой статье мы разберем 12 идей проектов на Python, которыми можно пополнить свое портфолио. Все идеи — из разных областей.
«Проект закончен лишь тогда, когда он начинает работает на тебя, а не ты на него», — Скотт Аллен
1. Умный ассистент
Ассистент — хороший проект. Благодаря ему интервьюер поймет, насколько вы хороший питонист: знаете, как правильно использовать ресурсы и создавать из них что-то полезное.
Чтобы создать ассистента, не нужно быть специалистом в области разработки на Python. Вы можете сделать это с помощью доступных пакетов.
Для реализации подобного проекта вы можете использовать, например, Pyttsx3 для распознавания текста. А с помощью модуля os можно добавить функции вроде проигрывания музыки, запуска приложений, поиска по Википедии и т. д. Но запомните одно правило: «одна библиотека — одна функция».
Также вы можете расширить функционал своей программы, добавив агрегатор веб-страниц или автоматизацию рутинных задач. К примеру, можно добавить скрипт, который будет скрапить результаты поиска Google. Все это вы можете включить в функционал вашего ассистента, чтобы проект смотрелся внушительнее.
У этого проекта нет конечной точки. Чем больше функций, тем профессиональнее и полезнее ваш ассистент.
2. Веб-сайт

Создать свой сайт для портфолио — тоже хорошая идея. Можно создать «обычный» сайт: платформу для электронных платежей, образовательную платформу или что-то подобное. Но вы можете создать и сайт, который автоматизирует повседневные задачи и может использоваться в реальной жизни.
Например, ваш сайт может принимать список адресов электронной почты и отправлять введенное вами письмо на каждый из них. Или конвертировать PDF-файлы в аудио-файлы.
Наверняка у вас есть множество идей — воплотите их в жизнь.
3. Автоматизатор задач
Этот проект похож на первый, но с упором на автоматизацию.
Вы можете написать программу, автоматизирующую разные задачи. Например, для управления папками и файлами (переименование, удаление, перемещение). Полезным будет и скрипт, выполняющий SEO-действия в вашем блоге. Еще одна идея — скрипт, отправляющий поздравление друзьям на их день рождения.
Во всем этом вам помогут следующие библиотеки: BeautifulSoup (веб-скрапинг), Selenium (автоматизация действий в интернете), win10toast (уведомления Windows), os (менеджмент папок) и т. д.
4. Игра
Создание игр — кропотливый и времязатратный процесс. Но вы можете создать полнофункциональную игру, и лучше этого ничего не придумаешь.
Игра говорит о своем разработчике многое: о его креативности, собранности. Также качество игры показывает, насколько хорошо разработчик знает концепты программирования и ООП.
Python имеет множество библиотек для создания игр. Вы можете пройти по этой ссылке и выбрать подходящую для вас — ссылка.
5. Разработка модели компьютерного зрения
Компьютерное зрение — тренд 21 века. Каждая компания внедряет компьютерное зрение в свои системы (в каком-либо виде). Существует множество успешных стартапов в данной области.
Если вы реализуете модель компьютерного зрения, вы покажете работодателю, как быстро вы адаптируетесь к новым технологиям.
Компьютерное зрение можно использовать в различных областях. Вы можете создать систему распознавания лиц, распознавания болезней посредством анализа рентгеновских снимков, программу для анализа дорожного трафика.
В экосистеме Python есть множество библиотек, которые помогут помочь вам в этом деле. Одна из лучших — OpenCV.

6. Разработка графического пользовательского интерфейса
Разработка GUI — интересный проект, который вполне можно включить в свое портфолио. Графический интерфейс — это то, что видит пользователь и то, с помощью чего он взаимодействует с вашей программой.
Пройдитесь вокруг дома, зайдите в местные магазинчики, узнайте об их нуждах и создайте программу с GUI, исходя из этих нужд. Запомните: хороший пользовательский интерфейс улучшает впечатление от вашей программы и повышает шансы заработать на ней деньги!
Tkinter — самая популярная библиотека Python для создания GUI. Правда, в ней может быть непросто разобраться, особенно если вы новичок. Но помимо Tkinter существует множество других GUI-библиотек, познакомиться с ними можно по ссылке.
7. Приложение для анализа настроения
Настроение — это наши мысли и чувства. Анализ настроения — это изучение субъективной информации в выражениях. Это сфера обработки естественного языка (Natural Language Processing, NLP). С помощью NLP мы можем распределить данные на позитивные, негативные или нейтральные. Для извлечения информации о настроении из текста используются различные техники обработки естественного языка.
Что касается личных проектов, вы можете написать приложение, которое будет определять настроение пользователя по его отзыву. Речь может идти об отзывах о ресторанах, торговых центрах или сайтах — распознавание настроения пользователей пригодится в любой сфере.
Вы можете предсказать, когда компаниям нужно начинать распродажи или предложить новый продукт. Вы поможете компаниям развивать их бизнес, а они вам — развить ваш стартап.
В этом деле вам помогут соответствующие библиотеки, а именно: NLTK, TextBlob, spacy, Gensim и CoreNLP.
8. Поисковый бот
Поисковый бот — это бот, который периодически просматривает сайты и извлекает нужную вам информацию.
Вы можете написать бота, который будет извлекать информацию из интернет-магазинов, сравнивать цену на два товара и возвращать ссылку на самый дешевый вариант. Также ваш бот может постоянно проверять цену на определенный товар и отправлять вам уведомление, когда, например, цена снижается или начинается распродажа.
А если добавить к поисковому боту немного автоматизации, вы получите продукт, который украсит любое портфолио.
Лучшие библиотеки для такого проекта — Beautiful Soup и requests.
9. Бот для алгоритмического трейдинга
Это больше, чем просто проект. Он может принести вам доход. Речь идет о боте, который автоматически продает и покупает акции в зависимости от цен.
Для новичков этот проект может показаться сложным. Если кратко, то вам нужно написать программу, которая получает две цены акций: нынешнюю и предыдущую. Следующий шаг — создание модели машинного обучения, способной предсказать будущую цену. После того, как ваш бот предскажет цену, сравните прогнозируемую стоимость акций с реальной. Если различие небольшое — поверьте в себя и начните торговать!
Этот проект, конечно же, займет много времени. Но если вы с ним справитесь, то точно получите достойную работу.

10. Пакет Python
Пакет Python — это папка с Python-файлами, которые выполняют определенные задачи. Пакеты помогают разработчикам писать меньше кода — нужно лишь импортировать пакет. Каждый пакет Python содержит в себе набор действий, которые выполняются согласно соответствующим инструкциям.
Создавать пакеты не так сложно — вы можете найти соответствующие руководства на YouTube.
- пакет для предобработки текста для NLP
- пакет для скрапинга результатов поиска Google
- скрипт для автоматизации какой-либо задачи, упакованный в пакет, чтобы им мог воспользоваться каждый..
11. Мобильное приложение
Считается, что Python не годится для создания мобильных приложений. Это не совсем так. Существует множество библиотек, которые могут помочь вам создать мобильное приложение.
Одна из них — Kivy. Это кроссплатформенная библиотека, с помощью которой можно создавать приложения и для Android, и для iOS.
12. Упрощение анализа данных
Если у вас есть базовые знания в области машинного обучения, вы, наверно, слышали о анализе данных. С него начинается любой проект в области ML.
Если вы принимали участие в проекте, связанном с дата сайенс, вы знаете, какие шаги нужны для подготовки данных для модели машинного обучения. Они одинаковы практически в любой области — обработка отсутствующих значений, категориальных данных или разделение данных на обучающую и тестовые выборки.
Все эти шаги являются общими для всех моделей машинного обучения.
Вы можете создать сайт, который будет принимать набор данных, обрабатывать его и возвращать результат. На таком сайте нужны лишь слайдеры, выпадающие списки и поля ввода.
При создании подобного сайта вы можете использовать библиотеку streamlit. Это библиотека с открытым исходным кодом, которая была создана для машинного обучения. С ее помощью вы можете писать меньше кода и создавать потрясающие приложения.
Итоги
Все проекты, которые мы обсудили в статье, — лишь идеи. Вы можете их развить или видоизменить до неузнаваемости. При этом каждый из них можно реализовать при минимуме усилий и даже без глубоких знаний.
Источник: techrocks.ru
Лучшие Проекты Для Начинающих Python-Разработчиков

Чтобы научиться ходить – надо ходить, чтобы научиться подтягиваться – надо подтягиваться, чтобы научиться решать задачи по физике – надо решать задачи по физике. Так говорил преподаватель физики в моём университете, и эта аналогия применима и к программированию.
Можно сколько угодно упираться в сухую теорию, но без применения своих знаний на практике научиться программировать невозможно. В этой статье я подобрал несколько проектов для начинающих python-разработчиков. Эти проекты помогут закрепить теорию, применить полученные знания на практике и набить руку в написании кода. Некоторые из них даже можно добавить в будущее портфолио. Я объясню, чем хорош каждый проект, какие навыки и темы он позволяет проработать, а также сориентирую какие библиотеки и технологии можно использовать для его реализации.
Цель данного «топа» – это не создание самого оригинального портфолио и не перечисление уникальных проектов. Цель статьи разобраться в простых вещах, технологиях и темах, которые помогут развить практические навыки программирования. Поэтому не стоит ждать здесь сборку Оптимуса Прайма, программирование Звезды смерти и создание двигателя на китовом жире. Мы пройдёмся по простым, но в тоже время базовым вещам. Ведь как говорил один мой приятель: «Всё великое начинается с малого».

Парсер
Первый проект в списке – парсер сайтов. Это программа, которая просматривает код веб-сайта и получает оттуда какую-то информацию.
Предположим, есть сайт «Авито». Мы можем сделать программу, которая будет «как бы заходить» на Авито; просматривать объявления из раздела «Аренда квартир в Москве» (через программный код на страницах); и записывать в текстовый файл информацию из этих объявлений.

Пусть скрипт пишет в файл ссылку на объявление, контактный телефон, цену и описание. Затем этот файл сортируется по цене аренды, и на выходе мы сможем выбрать самые дешёвые квартиры. Такая программа и будет являться парсером или, как их часто называют, веб-скрапером.
В тренировочно-образовательных целях необходимо всё сделать максимально вручную, но без фанатизма. Поэтому используем модуль requests для работы с сетевыми запросами (для получения кода сайта, регистрации, авторизации). Библиотека BeautifulSoup понадобится для разбора и выдергивания информации из HTML-кода сайта, который мы получили с помощью requests.
Разработка парсера заставит разобраться с тем, что такое, зачем нужны и как работают сетевые протоколы HTTP/HTTPS. Придётся выяснить, что такое HTTP-запрос – из чего он состоит; как работать с GET, POST, PUT, DELETE-запросами; чем они отличаются; как формировать заголовки запросов. Предстоит покопаться со статус-кодами, URL-адресами, схемами авторизации, сессиями, редиректами, прокси и куки-файлами. Параллельно познакомиться с форматом JSON и вникнуть в HTML/CSS-код, семантику и DOM-модель веб-страницы.
Работа с сетевыми протоколами – это фундаментальные computer science навыки, без которых называть себя полноценным программистом немного не справедливо.
Мне кажется, пример с квартирами на Авито идеально подходит для пробы пера. Поэтому попробуйте написать скрипт, который создаст файл с информацией о всех трехкомнатных квартирах, которые продают в твоем городе, по цене, скажем, дороже 3 000 000 рублей.
На скелет подобного проекта можно нарастить мяса в виде подключения базы данных, многопоточного выполнения или вообще превратить парсер в пул Telegram-ботов, о которых мы и поговорим дальше.
Бот
Каждый мужчина должен посадить сына, вырастить дом и построить дерево, а каждый питонист должен сделать хотя бы одного бота для социальной сети или мессенджера.

Бот – это простой проект, но в тоже время, он даст новичку навыки работы со сторонними библиотеками, асинхронностью и, что самое главное, опыт работы со сторонним API.
Однако прежде придётся разобраться, что такое API, вникнуть в понятие синхронности/асинхронности, потренировать понимание ООП, если сделать бота классом, а не просто набором функций.
Масштабировать сложность проекта можно до бесконечности. Например, прикрутить базу данных или заставить бота присылать уведомления, когда изменяются цены в интернет-магазине. Если бот как-то взаимодействует с файлами на компьютере, то придётся параллельно освоить и работу с файловой системой.
В ходе разработки возникнут вопросы: как хранить в проекте секретные данные (токены, пароли), и как разделить бизнес логику приложения. Веcь код, отвечающий за работу непосредственно с площадкой, стоит вынести в один модуль, а код обработки полученных данных в другой модуль. Этим всё не ограничится. В процессе всплывёт ещё много других подводных камней. А это ценный практический опыт, который нам и нужен.
Загрузка (то есть деплой) бота на хостинг по типу Heroku или Google App Engine – уже отдельная история, которая также прокачает твои технические навыки.
Если хочется сделать бота ВКонтакте, то смотрим в сторону библиотек vkwave и vkbottle. Они современные, асинхронные и простые в использовании. Синхронный и уже местами забагованный vk_api использовать не советую.
Для Telegram рекомендую полностью асинхронный Aiogram.
В качестве альтернативы можно использовать модуль pytelegrambotapi. Он попроще и поддерживает как синхронный, так и асинхронный режим работы.
В случае с Discord ботами самым популярным является модуль discord.py (c 9 000 звёзд на GitHub). Он асинхронный, хорошо документирован и прост в освоении. По принципу использования и написания кода похож на Aiogram и vkwave.
Если разобраться, как работать с одной из перечисленных библиотек, то с другими проблем уже не возникнет. Этот принцип справедлив для многих модулей и фреймворков не только языка Python. Об этом я ещё скажу дальше.
Идея проекта попроще: бот, который по запросу присылает случайный фильм из файла или БД.
Вариант посложнее: бот для учёта финансов. Пишешь ему сообщение сколько денег потратил и на что. Он записывает всё в Google-таблицу, БД или Excel-таблицу и ведёт какую-нибудь статистику.
Можно сделать бота, который следит за ценами. Отправляешь ему ссылку на товар. Если на этот товар появляется скидка, бот присылает уведомление.
В случае с ботами всё ограничивается лишь вашей усидчивостью и фантазией. Ковыряйтесь на здоровье!
Веб-приложение (интернете магазин)
Если браться за создание сайта, то это должен быть не блог, не клон Instagram, не онлайн предсказатель будущего, а именно интернет-магазин.
Придётся разобраться с админ-панелью сайта, регистрацией, авторизацией, личным кабинетом, избранными товарами, корзиной, категориями товаров, подключением базы данных, миграциями, разграничением прав доступа, пагинацией, сессиями и кучей всего другого.
В качестве усложнения проекта можно добавить систему оплаты, скидочные промокоды, раздел с лидерами продаж, кеширование, отправку чека на почту или рекомендательную систему, основанную на in-memory СУБД Redis или вообще модели машинного обучения.
А если вы совсем без тормозов, то прикрутите REST API сайта. Для этого потребуется дополнительно вникнуть в вопросы сериализации JSON-объектов, работе с сетевыми протоколами и прочему.
Разработка веб-сайта познакомит вас с паттерном проектирования MVC (модель-представление-контроллер), HTML/CSS и, возможно, JavaScript кодом.
Основываясь на своём опыте, скажу, что для освоения веб-разработки лучше варианта чем Django нет. Django большой фреймворк, в котором по умолчанию есть модули для всего, что я перечислял выше. Кроме того, он базируется на классическом, упомянутом ранее шаблоне MVC (правда там он называется MVT, но не суть).

Изучая Django придётся научиться работать с маршрутизацией, моделями данных, миграциями, контроллерами, шаблонизаторами HTML и ORM (это специальная штука, которая позволяет работать с базой данных без SQL запросов, а через питоновские объекты). Много предстоит поработать с ООП, потому что все модели данных представлены классами. Часто приходится использовать наследование.
Важно, что практически все современные популярные питоновские и не только фреймворки устроены точно также, как Django. Если вы разберётесь с Django, понять, как работает PHPшный Laravel, Jav’овый Spring или Ruby on Rails не составит труда.
Django ORM практически идентичен Eloquent из Laravel, шаблонизаторы тоже плюс/минус у всех похожи, модели и миграции отличаются чисто косметически.
Потом, для расширения кругозора, можно ещё взглянуть на микрофреймворк Flask.
Выбирайте предметную область, которая вам интересна. Любите компьютерные игры – создаём магазин игр, тащитесь по топовому шмоту – вот вам магазин одежды. Короче стараемся получить максимум удовольствия. И едем дальше.
GUI
Разработка приложений с графическим интерфейсом не является основной сферой применения Python. Однако это не значит, что GUI на нем не пишут совсем.

В качестве тренировочного опыта, лично я бы остановился на создании Аудио проигрывателя для компьютера. На функционал не скупимся. Добавляем возможность работать с плейлистами, управление воспроизведением (старт, стоп, пауза, перемотка), стоит добавить анимацию звуковой дорожки, ползунки громкости и т.д. Про уникальный дизайн также не забываем.

Для графики рекомендую использовать фреймворк PyQt, а для работы с аудио библиотеку Pygame.
PyQt – более фундаментальный и сложный графический фреймворк, чем tkinter или pysimplegui. Поэтому обратить внимание стоит именно на него. Тут по аналогии с MVC веб-фреймворками. Разберись с базовыми принципами и дальше проблем не будет. Под базой здесь я подразумеваю концепцию событий (сигналов) и обработчиков событий (слотов).
PyQt также поможет прокачаться в понимании ООП, потому что все графические объекты представлены классами, а наследование используется повсеместно.
Внешний вид элементов в PyQt задаётся в графическом Дизайнере ручками или с помощью CSS-свойств в коде, что делает разработку проще.
По PyQt в Интернете много уроков, есть даже отдельные книги, что также плюс.
Отмечу, что многие графические приложения основаны на шаблоне проектирования MVP (модель-представление-представитель). Это вариация шаблона MVC на котором базируются веб-приложения.
Pygame – простая и популярная библиотека для работы с мультимедиа объектами. Позволяет работать с аудио, видофайлами, а если в ней хорошо разобраться, можно и 2D игру сделать.
Data Science-приблуды
Сферы искусственного интеллекта и Data Science занимают большую часть сообщества Python-разработчиков. Да, проекты подобного рода специфичны и вникать в них всем необязательно. Но не упомянуть о них я не мог.

Анализ данных – гигантская область, в которую входит математика, computer science и программирование. Разбор всех этих тем выходит за рамки данной статьи и заслуживает отдельного цикла.
Как по мне интересный проект – анализ настроения пользователя по его комментарию на форуме, или на вполне конкретном сайте, например, Кинопоиске. Оригинальностью проект не блещет. Но покопаться придётся.
Это задача из сферы обработки естественного языка (Natural Language Processing или NLP). Для работы с NLP стоит обратить внимание на библиотеки: NLTK, TextBlob, spacy, Gensim и CoreNLP. Пара слов о каждой.
NLTK – основная библиотека для NLP, позволяет обрабатывать тексты для классификации, токенизации, стемминга, разметки, фильтрации, работать с семантическими рассуждениями и многим другим. В первую очередь знакомиться именно с этой библиотекой.
TextBlob – обёртка над NLTK, которая предоставляет простой интерфейс для этой библиотеки. Иногда ею просто удобнее пользоваться.
spacy – модуль, который помогает решать спектр задач: от определения частей речи и выделения именованных сущностей, до создания собственных моделей анализа.
Gensim – библиотека тематического моделирования. Позволяет обрабатывать тексты, работать с векторными моделями слов (например, Word2Vec или FastText) и создавать тематические модели текстов.
CoreNLP – модуль для распознавания свойств текста.
Пока далеко не ушли от кино. Вспомним одну из классических задач машинного обучения – разработку системы рекомендаций. Рекомендательная система – это программа, которая будет угадывать предпочтения пользователя в плане выбора фильма. Для её написания придется научиться работать с такими базовыми библиотеками для любого data scientist’а как Pandas, Numpy, Matplotlib и Scikit.
Pandas нужен для обработки данных, NumPy для математических вычислений, Matplotlib позволяет визуализировать данные, то есть строить диаграммы и графики, а Scikit содержит модели машинного обучения и инструменты для работы с ними.
Следующий большой класс задач – компьютерное зрение. Не мудрствуя лукаво, создаём приложение, которое по фото или видео определяет наличие/отсутствие маски на лице человека. Самая ходовая библиотека компьютерного зрения – это OpenCV. Её и предстоит изучать. Также стоит ознакомиться со сверточными нейронными сетями и концепцией deep learning в целом.
Обучающие data-сеты для любого из указанных проектов можно спокойно найти в Интернете.
В этом топе, как и в большинстве интернет-подборок, не оказалось из рядя вон уникальных проектов. Почему так? Почему большинство python-каналов переполнено роликами по написанию однотипных ботов, парсеров и скриптов? Все просто! Все перечисленное – это базовые вещи, отвечающие за понятные базовые навыки, через развитие которых необходимо пройти каждому python -разработчику.
Чтобы найти что-то по-настоящему оригинальное, предлагаю поделиться вашими идеями интересных pet-проектов в комментариях.
Знаете, учиться всегда тяжело. А по началу очень тяжело. Но я в тебя верю! Господь тоже в тебя верит! Но на всякий случай, для подстраховки, он создал тебе в помощь Google.
Не забывай про это.

P.S. Также есть видеоверсия данной статьи на YouTube.
Источник: habr.com