PJ Dev
480 subscribers
58 photos
1 video
1 file
67 links
История в прямом эфире о том, как я стал разработчиком, изменил свои привычки и улучшил качество жизни

https://pjdev.ru/
Download Telegram
После собеседования я спросил у Антона, насколько он был честен в своей оценке. По его словам, мои знания core-python на хорошем уровне, но этого мало для того, чтобы начать работать, да еще и есть что подтянуть.

А дальше он дал рекомендации:
1. Разобраться с асинхронным и конкурентным программированием.
2. Изучить SQL на более серьёзном уровне.

Я решил начать с асинхронного программирования, и опять же, по рекомендации Антона, начал изучение с книги "Asyncio и конкурентное программирование на Python" автора Мэтью Фаулер. Книга действительно популярная, не раз мне её рекомендовали.

Все началось с простых понятий: процесс, поток, конкуренция и параллелизм. Далее тебя знакомят с командами async и await. Объясняют, что такое GIL, а дальше начинаются сложности. Автор предлагает написать свой асинхронный эхо-сервер с неблокирующими сокетами и использованием модуля selectors для построения цикла событий сокетов.

Тут потребовалась вся моя концентрация, но многое до сих пор осталось непонятным. Нужно больше практики.

Автор рекомендует обязательно осилить 4 главы, которые являются базой, а дальше пользоваться книгой по необходимости. Так что в планах закончить четвертую главу и написать что-то собственное на базе изученной теории.

#программирование #python #asyncio
🔥163👍1
Дочитал я, в общем, первые четыре главы книги "Asyncio и конкурентное программирование на Python", которые рекомендует осилить автор. И сел думать: "А что дальше... и где это применять?!"

Почитал еще другие ресурсы, а там пишут, что асинхронное программирование чаще всего используется в крупных микросервисах, что логично. Ведь там возникает множество различных запросов, а скорость выполнения ограничена скоростью ввода\вывода (IO-bound). Еще пишут, что асинхронное программирование часто используют в парсерах и в ТГ ботах. А у меня таких проектов, к сожалению, нет.

И тут я понял, о чем мне говорили в комментариях: что рано я туда полез и есть множество вещей более важных на данном этапе развития, которые стоит освоить в первую очередь.

В любом случае это был полезный опыт. Я стал лучше понимать, как работает процессор, что такое процессы и потоки. В чем разница между IO-bound и CPU-bound. Да и в целом для чего нужен асинхронный код и где его можно использовать, а где он вовсе может навредить. Уверен, что в будущем мне эти знания пригодятся.

И так план на ближайшие пару недель:
1. Завершить курс по GIT, который я давно начал, но бросил из-за более приоритетных дел. Постараюсь написать на него обзор с публикацией на Habr. Будет мой первый пост.

2. Я вступил в сообщество "Ботаним с Диджитализируй!", где ребята разбирают умные книги, касающиеся разработки. Пойду по их следам, и начну читать книгу "PostgreSQL Основы языка SQL : учебное пособие Евгений Моргунов". Постараюсь побольше попрактиковаться с SQL, может как-то более широко внедрить его в свою игру или напишу какой-нибудь новый учебный проект под это дело. Автор клуба предлагает работать с БД через Docker, заодно вспомню что такое контейнеры.

#программирование #python #asyncio #книги
🔥9👍5👌1
Многие из моих подписчиков уже знают, кто такой Тимофей Хирьянов, так вот, он недавно на своём канале запустил новую серию лекций "Информатика на Python". Я уже посмотрел первую, и в целом, нашёл для себя некоторые интересные моменты.

Так что рекомендуют всем для просмотра, особенно тем, кто хочет лучше разобраться в основах программирования на Python.

Если кто-то еще не знаком с творчеством Хирьянова, то очень рекомендую познакомиться: шикарный педагог и просто очень приятный человек. У него на канале много различных видео, в том числе и по Си.

Когда я только начинал своё погружение в мир Python, он мне очень сильно помог в этом. А сейчас, когда я уже сам преподаю детям, я во многом беру пример с него. В каком-то смысле мой кумир.

#Программирование #Python #Информатика #Рекомендация
🔥114👍4
Мне тут в комментариях недавно посоветовали книгу Эрика Мэтиза — "Изучаем Python. Программирование игр, визуализация данных и веб-приложения". Так вот, я написал один из проектов книги — копию игры Alien Invasion на PyGame. Так что минувшая неделя прошла довольно продуктивно.

Хотел бы вам его показать, но, судя по всему, не могу этого сделать. В книге указано, что все права защищены, и соответственно никакая часть книги не может быть воспроизведена без разрешения автора, но могу поделиться ссылкой на проект из репозитория автора. Конечно моих изменений вы там не увидите, но может оно и к лучшему.

Этот проект очень сильно помог мне разобраться с тем, как построить грамотную структуру. Я уже делал похожий проект, но у меня было все в одном файле, а тут явная структура. Весь проект разделён на небольшие модули: объекты в игре, настройки, логика, статистика.

Немного о самой книге. Она разделена на две части:
1) Основы программирования — это переменные, типы данных, операторы, циклы, функции, классы, работа с файлами и тестирование. В общем весь базовый арсенал. Эту часть я пропустил, так как в целом с ней уже достаточно хорошо знаком и перешёл сразу к проектам.

2) Три проекта:
- Игра на PyGame;
- Проект по визуализации данных на Matlib + Pygal;
- Создание веб-приложения на Django.

Сейчас есть желание написать собственную игру, чтобы добавить пет-проект себе в портфолио, а в идеале бы получить на него ревью более опытных специалистов, чтобы узнать, что еще я упустил. Также интересно перейти к третьему проекту — написать веб-приложение на Django, посмотреть чему новому я там смогу научиться.

При создании проекта на PyGame я в основном повторял за автором — это хорошая практика, когда ты задумываешься о том, почему было принято то или иное решение. В некоторых ситуациях я делал какие-то вещи по своему, как мне казалось лучше, но это не всегда было правильным решением т.к. я не знал конечной задумки в отличии от автора. Потом уже приходило понимание почему было сделано именно так. Тем не менее, некоторые мои решения мне понравились больше.

При создании проекта на Django постараюсь или сразу делать уникальный проект, а не повторять за автором, или делать его параллельно, чтобы была возможность добавить проектов себе в портфолио.

P.s. в комментарий добавил короткое видео с геймплеем.

#Программирование #Python #PyGame
👍10🔥6🤓2