Путь к карьере - саморазвитие
В свободное время:
Story points: 9
Смотреть видео собеседований на Python разработчика. Запоминать, записывать популярные вопросы и ответы.
Заглушки для пустых спринтов (1 неделя жизни без планов):
Story points: 6
REST (Прочитать про фреймворки, что бы можно было говорить свободно на эту тему) - Архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Другими словами, REST - это набор правил того, как программисту организовать написание кода серверного приложения
Творческая деятельность:
Story points: 8
Сервис поиска по популярным вопросам с собеседований
Спарсить из какого-либо источника самые популярные вопросы на собеседованиях и ответы на них. Сохранить в читаемом виде в Elasticsearch, реализовать полнотекстовый поиск по вопросам. (Для этого надо посмотреть как развернуть Elastic на локальной машине без докера). Доступ к информации через API, выводящий информацию в PyQT5 (поэтому без докера) или простенький JS/HTML/CSS шаблон (тогда используем Web фреймворк и все упакуем в докер).
Будет плюсом добавить админку Django, Postgres и ETL процесс.
Story points: 4
Оформление GitHub аккаунта
Высосать из python_pj папки максимально конкурентно способные проекты (В приоритете проект ЯП - можно разбить по репам разные спринты)
Для каждой репы README.md, /.github, .gitignore
Story points: 2
Наполнение портфолио GitHub
https://www.youtube.com/watch?v=4w4sSabOjl0
Реализовать эти 3 очень простенькие программы и связать их ТГ ботом.
Сами по себе бесполезные, но если еще добавить преобразование аудио/видео в текстовый файл или добавление субтитров в видео файл (метод есть в той же библиотеке moviepy), то выйдет неплохой проект для объёма портфолио.
В видео так же показывается модуль PyPDF2, который позволяет защитить паролем PDF файл. На вход поступает PDF файл и пароль, на выход защищенный паролем PDF файл. При открытии вылезет GUI с просьбой ввести пароль. Тоже можно реализовать в боте.
Story points: 5
Наполнение портфолио GitHub
https://yandex.ru/video/preview/514822623020836454
По материалу из видео написать похожий проект на Django. Хорошая работа для портфолио. + на видео показана удобная работа в PyCharm с архитектурой файловой системы проекта и локальной базой данных -> пора бы уже настроить правильную рабочую среду. (Visual Studio в пизду - перехожу на VS Code или PyCharm)
Story points: 3
Наполнение портфолио GitHub
https://github.com/Python-World/python-mini-projects/tree/master
Story points: 8
Наполнение портфолио GitHub
Flet - движок с современным графическим интерфейсом и анимациями прям как JS. Работа не только как приложения на клиенте, но и в WEB!!!
Попробовать написать приложение под него.
Story points: 10!
Django Framework
Найти где-нибудь готовый курс по Django и перечитать его полностью. После этого или в процессе по практиковаться, охватывая как можно больше возможностей фреймворка. Это очень объёмная тема и на собесах спрашивают примеры реализаций разных ситуаций. В Django есть много путей для реализаций одной и той же задачи. Курс нужен что бы знать эти пути или хотя бы понимать как можно лучше реализовать. Django это не только админка!
Формат курса любой - лучше текстовый, что бы можно было законспектировать важные детали. В курсе ЯП очень мало информации. По искать другой курс направленный конкретно на Django.
Story points: 10!
Большой и ценный проект на 3 месяца
Стек: FastAPI, Websockets, JWT, OAuth2, Docker, PostgreSQL, Alembic, Django, Kafka?, MongoDB? мб что то еще
Задача: Реализовать Онлайн-Чат для друзей.
Есть уже реализованная работа https://github.com/togrul2/chatapp-api
Моя задача реализовать по своему.
В чужой работе реализован функционал:
- Friendship system, people can befriend with each other.
(Система дружбы, люди могут дружить друг с другом.) - Chatting, friends can chat with each other.
(В чате друзья могут общаться друг с другом.) - Groups, people can participate in groups.
(Группы, люди могут участвовать в группах.) - Sending media files, people can send media files to each other which are not exceeding 10Mb.
(Отправляя медиафайлы, люди могут отправлять друг другу медиафайлы, размер которых не превышает 10 Мб.)
Буду использовать микросервисную архитектуру.
Для каждого сервиса должны быть:
1. Unit/py тесты (Фикстуры, моки ...)
2. Нарисованная архитектура, либо диаграмма последовательности, лучше всего если в PlantUML
3. Документация openapi
4. Файл переменных окружения
+ для всего Онлайн-Чата должна быть общая схема как микросервисы друг с другом взаимодействую. (Возможно стоит начать реализацию Онлайн-Чата именно с неё!)
- Auth_api + Django админка
- UGC_api (вебсокеты сюда. Как это связать с апи в душе не ебу. ChatCPT в помощь). Хорошо подумать над БД. Сообщения - это UGC биг дата. Для обработки такого количества информаций понадобится бд с возможностью горизонтального расширения. С возможность сделать больше шардов и реплик. Из курса ЯП, я бы рассмотрел: Vertica/ClickHouse(сложновато, но я работал)/MongoDB. Однозначно стоит перечитать раздел теории ЯП, по OLAP/OLTP хранилищам.
- Notifications_api
Краткое ТЗ (описание) всего сервиса:
Люди регистрируются с помощью email, или же с помощью OAuth2.0 (на почту отправляется письмо с ссылкой на верификацию), выбирают себе уникальный shortname.
Люди могут общаться в личных сообщениях, могут создавать беседы, добавлять друг-друга в друзья. Всё, что касается сообщений, групповых чатов будет хранится в микросервисе UGC_api. (Причем биг дата здесь только сообщения. Может сделать отдельное хранилище для списка групповых чатов?)
Все, что касается друзей будет в auth_api. Даже возможно без OneToOne связи, сразу в users таблице (id, email, shortname, friends: [List])
Комментарий: Для начала продумай архитектуру. У тебя есть готовый крутой, почти такой-же проект с ЯП, есть готовый проект Онлайн-чата другого чела на гитхабе, есть теория ЯП, в конце концов ChatGPT. Бери и делай, на собеседовании зачтётся!
Story points: 8!
Решать задачи на литкоде
Парсинг заказов с фриланс бирж
Парсить заказы с бирж Freelance.ru, хабр фриланс по тегам Python, Парсинг, бот и отправлять новые заказы в ТГ.
Сохранять ссылки на уже полученные заказы в Redis. По возможности развернуть этого бота на дешевом хостинге на Ubuntu (для тренировки работы в боевом окружении Linux системы)
Docker тоже нужен.
Под каждым новым заказом, сделать кнопку "Отправить отклик", нажав на которую нужно ввести текст и бот должен оставить отклик под этим заказом с нужным текстом.
Посмотреть как реализовать такое ТЗ (Как парсить ТГ каналы по названию)
1. Бот должен уметь принимать на вход названия нескольких ТГ каналов для последующего парсинга информации. Названия каналов должны сохраняться в боте. Их можно добавлять или убирать по одному. При парсинге информации бот ставит временные метки, где он закончил парсить, чтобы в следующий раз начать с этой метки. Бот не парсит свежие новости, с момента публикации которых не прошел еще 1 час (чтобы успеть получить репосты и лайки). Бот сначала собирает Количество просмотров, сумму всех реакций (эмодзи) и количество репостов. Далее бот формирует два списка, один по Репостам, второй по Вовлеченности. Для этого бот делит Репосты на Просмотры у каждой новости в канале, составляет из них всех список, ранжирует список от большего значения к меньшему и выдает 30 самых топовых новостей по репостам, которые он нашел в каналах ТГ. То же самое бот делает со списком вовлеченности, делит сумму всех реакций (эмодзи) под постом на Количество просмотров, получает некий процент. Далее из этих новостей с процентами составляет список, ранжирует его от самых больших процентов к самым меньшим и выдает 30 новостей с самой большой вовлеченностью.
2. Бот в режиме закрытого канала автоматически принимает заявки на вступление в канал, сразу после подачи. При этом бот показывает текст уведомления для того, кто подал заявку. Текст можно прописать в боте и можно менять его. Можно так же отключить текст и не показывать его вообще.