Мне 16 лет. Я изучал Python в течение 2 лет самостоятельно, без прохождения курсов. Однако я чувствую, что много чего не знаю или упустил. В данный момент я осваиваю Flask и недавно завершил изучение основ Git, ведь очень хочу получить опыт работы в команде. В будущем планирую стать backend-разработчиком на Python. Сейчас я запутался в том, что именно нужно изучать, какие материалы читать и где искать практические задания. Мне нужна помощь профессионалов и специалистов в этой области. Заранее благодарен за советы!
Прекрасно, что у тебя уже есть база знаний и опыт программирования на Python! Вот несколько советов, которые помогут тебе эффективно развиваться как backend-разработчик:
### 1. **Углубление знаний Python**
- **Структуры данных и алгоритмы**: Убедись, что ты хорошо понимаешь основные структуры данных (списки, множества, словари) и алгоритмы (поиск, сортировка). Это важно для решения задач и оптимизации кода.
- **ООП и паттерны проектирования**: Углубись в объектно-ориентированное программирование, изучая, как создавать классы и использовать наследование. Паттерны проектирования (Singleton, Factory и др.) также полезны.
### 2. **Изучение веб-технологий и Flask**
- **Flask**: Продолжай изучать Flask, но также обрати внимание на такие темы, как работа с базами данных (SQLAlchemy), создание RESTful API, аутентификация и авторизация пользователей.
- **HTML, CSS и JavaScript**: Хотя ты фокусируешься на backend, базовые знания фронтенда помогут лучше понимать, как работает весь стек. Это необязательно, но полезно.
### 3. **Базы данных**
- Изучай SQL и работу с реляционными базами данных (PostgreSQL, MySQL). Также ознакомься с NoSQL базами (MongoDB).
- Понимание основ проектирования БД будет очень полезным.
### 4. **Инструменты разработки**
- **Git и GitHub**: Ты уже начал изучать Git, что отлично. Попрактикуйся работать с репозиториями, делая форки, создавая ветки и отправляя пулл-запросы.
- **Docker**: Ознакомься с основами контейнеризации, это поможет в разработке и развертывании приложений.
### 5. **Практические проекты**
- Создай несколько собственных проектов на Flask, включая полноценные веб-приложения с интеграцией баз данных. Это может быть что-то простое, например, блог или TODO-приложение.
- Участие в open-source проектах на GitHub не только даст опыт работы в команде, но и расширит портфолио.
### 6. **Изучение теории**
- Читай книги и онлайн-курсы по Python и Flask:
- «Fluent Python» — хорошая книга для более глубокого понимания Python.
- Курсы на платформе Coursera, Udemy или аналогах по веб-разработке на Python.
- Изучай полезные ресурсы, например, документацию Flask, статьи на Medium по интересующим тебя темам.
### 7. **Сообщество и обмен знаниями**
- Вступай в сообщества разработчиков (например, на Reddit или в Discord), участвуй в обсуждениях.
- Посещай митапы и конференции, если есть такая возможность.
### 8. **Постоянное обучение и практика**
- Регулярно решай задачи на платформах вроде LeetCode, HackerRank, CodeWars. Это поможет практиковаться и улучшать алгоритмическое мышление.
- Удели время на изучение новых технологий и тенденций в разработке.
### 9. **Создание портфолио**
- Создай GitHub-репозиторий с выполненными проектами, чтобы показывать свои достижения потенциальным работодателям.
### 10. **Открытость к предложениям**
- Рассматривай стажировки и фриланс для получения реального опыта. Это поможет тебе лучше понять, как работает разработка на практике.
Следуй этим шагам, и ты сможешь значительно улучшить свои навыки backend-разработчика на Python. Удачи в учебе и в разработке!
Я 2 года изучал Python (сам, без курсов).
Думаю, что многого не знаю или упустил.
Переходи к созданию проектов, они будут выявлять над чем работать, и формировать тебя как специалиста.
Сейчас пытаюсь учить Flask, недавно закончил основы Git (очень хочу практики в команде).
Опять таки делай проект, я бы не рекомендовал flask (fastapi вместо), но главное это сделать проект, git будет нужен если работаешь один, необязательно командой.
В моих планах стать backend-разработчиком на Python.
В данный момент я просто запутался, что мне изучать, что читать, где брать практику.
Прекрасный выбор, после двух лет чтения, надо делать. Потом придет время опять почитаешь чего-нибудь.
Даю те советы который сам был бы рад получить много лет назад.
Стек: FastAPI, SQLAlchemy, PostgreSQL, Docker, хватит для начала.
Придумай интересную задачу для проекта, вообще пофиг что, главное чтобы тебе было интересно.
1) Поставь Linux, что-то простое к примеру Linux Mint, работай в нем и привыкай к терминалу, просто пользуйся ей, команды будут запоминаться по мере необходимости.
2) Читай книги, к примеру Грокаем алгоритмы. Бхаргава Адитья, она легко читается и с картинками..=)
2) FastAPI, напиши несколько эндпоинтов, с простой логикой, к примеру выводи данные из запроса в консоль, разберись в REST API, попробуй отправлять запросы через Postman и свагер /docs#
3) Когда разберешься с эндпоинтами, попробуй добавить базу данных, поставь PostgreSQL и SQLAlchemy, создай простую модель, попробуй записать данные из эндпоинта через ORM. Попробуй подключиться к базе через терминал, освой базовые команды SELECT * FROM table; ....
4) Попробуй добавить авторизацию, почитай что такое jwt token.
5) Напиши Dockerfile, собери проект в контейнер.
Не сдавайся, все получится!
Все обучение без практики - ничто.
Практика без смысла - демотивирует.
Придумай себе проект и пиши его. Можешь чисто для себя что-то придумать.
Популярно сейчас взять движок телеграм бота и попробовать в боте реализовать интересный и полезный функционал. Постепенно усложняй, дорабатывай.
Добавляй технологии (базы данных, авторизация, интеграция с какими-то апи, с мониторингом).
Гит можно и без команды использовать для своих изменений, чтобы мог откатить что-либо
Сначала научись что-то делать на одном языке.
Сделай пару сотен проектов с упором на развитие в ширину. (бэк, фронт, базы данных, операционные системы, докеры и т.д).
Можешь пойти на фриланс, там много придурков которые готовы тебя кинуть, зато опыта наберёшься)
Может и перепадёт что-то, заодно общаться, ставить и оценивать себя научишься - как по времени, так и по деньгам.
В случае кидалы, можешь спокойно взять его проект и доделать, с выбором технологий, которые ты считаешь правильными.
И в целом придерживайся Закона Парето .
Следом изучай математику, структуры данных и алгоритмы - это уже развитие в глубину.
После переходи к изучению других языков - в них ты вдохновишься на очень многие вещи, но это работает если действительно их изучать.
Вместо пробежаться по "rust by example" или "tour of go" и тем более "javascript за час".
Читай книжки, в первую очередь тебя должен интересовать процесс.
Если процесс не интересен - меняй направление, пока не найдёшь интересное.
Разбирай каждый кусок кода, который ты где-то увидел до атомов - и ты переоткроешь эти атомы для себя.
Потому-что иначе всё сведётся к линейному мышлению и тяжёлому интеллектуальному продвижению по лестнице саморазвития.
- А дальше?
Дальше ты сам будешь способен понять, что тебе нужно, а что не нужно и самое главное - что тебе интересно.
P.S: То что я описал, невыгодно тому, кто тебя будет нанимать.
Потому-что есть такое мнение: "стоимость разработки прямопропорциональна творческим способностям разработчика".
Следовательно пройдя этот путь, тебе будет глубоко насрать на то, что нужно кому-то, кроме тебя.
Тебя будет интересовать лишь новый вызов, а вести интерес.
Будешь как пират в поиске сокровищ, с каждым новым сундуком - хочется больше.
Книжки читать, если нужно тестовое задание маякни