Чашка Кода
466 subscribers
255 photos
5 videos
2 files
162 links
👋 Я - Никита, автор курсов и лекций по Python-разработке. Пишу на Python и Rust

✏️ В этом канале посты, которые сделают твой путь к веб-разработке проще

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
24 февраля приглашаю тебя на лекцию "Как получить оффер Х2" 🔥

Мы уже обсудили темы: «Как стать миддлом за год с нуля» и «Какие страшные тайны скрывает ООП», а скоро обсудим «Как делать код-ревью и улучшать код».

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

Вот краткое содержание выступления:
🟠Моя история 3-ёх офферов за 9 месяцев.
🟠Секреты любого технического интервью.
🟠Как поднять свой технический грейд.
🟠Разберём реальные вопросы с моего последнего собеседования.

А ещё будет розыгрыш подарков и интерактивная игра, для тех, кто придёт на выступление лично. Жду тебя в эту субботу, 24.02, в московской школе 21⚡️
Please open Telegram to view this post
VIEW IN TELEGRAM
7321
🚀 Моё выступление начнётся уже через 20 минут!

Жду тебя на лекции "Как получить оффер Х2". Напоминаю, что у тех, кто придёт лично, будет возможность выиграть подарок 🎁
221
Выступление прошло супер! 🥳

Спасибо всем, кто пришёл лично! Победители, не забудьте написать мне в личку 👍

Помогите выбрать тему следующего выступления:
Please open Telegram to view this post
VIEW IN TELEGRAM
7432
👻 Страшные тайны ООП 2

Сегодня продолжаем изучать тайны ООП. А если вы пропустили предыдущий пост - обязательно читайте.

Мы определили проблему. Задача: "не повторять один и тот же код и сделать код простым". Для решения этой задачи мы воспользуемся Наследованием.

1️⃣ Код 1.
Мы разработали персонажа для игры. Пока всё просто и понятно. У нас есть класс, который выполняет определённые действия.

2️⃣ Код 2.
Мы хотим добавить классы Warrior и Archer с общей реализацией всего, кроме метода атаки. Стоит вынести общие методы в общий класс. Для этого мы воспользуемся механизмом наследования:

Наследование позволяет нам объединить схожие части в один класс.


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

3️⃣ Код 3.
Расширим классы, добавив новый метод специальной атаки. Так как этот метод имеет уникальную реализацию у каждого класса, то реализация должна быть внутри класса наследника. В абстрактном классе мы добавляем абстрактный метод.

4️⃣ Код 4.
Если мы хотим добавить класс Paladin расширяющий Warrior, то проблем не будет. Мы добавляем уникальный дополнительный метод в новый класс. Paladin сможет использовать как новый метод, так и все методы Warrior.

В случае с TrainingDummy всё сложнее. Те методы, которые этот класс не может использовать мы обязаны переопределить, добавив вызов ошибки, что будет сложно поддерживать!

🌻🌻🌻

Наследование не просто позволяет нам удобно объединять общее поведение. Любые исключения приведут к большим изменениям. В итоге, каждое изменение приводит к дорогому рефакторингу. Изменения "верхних" классов приводят к изменениям всех "нижних" классов.

Наследование требует объединить общие детали в один класс!

Какие есть альтернативы - знают те, кто был на выступлении. А ты знаешь? Пиши об этом в комментарии!🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
222🤔11
🩸 Недавно я публиковал пост, в котором предлагал вам подумать, что не так с кодом на картинке. Сегодня я сделаю разбор этой задачи.

У нас есть рабочий код, это важно! Он запускается и всё с ним хорошо. Но в чём же проблемы?

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

Решить все эти проблемы можно простой командой
isort .
Не забудьте установить её 😅

🔄 Что делает isort? Это самый простой линтер. Линтер "причёсывает" наш код, делая его единообразным и комфортным для работы. Линтер isort работает только с импортом, сортируя и группируя их по секциям и типам.

Использование isort - это самый простой способ повысить качество кода, не прикладывая усилий. Помните, что:

Ваш уровень больше всего определяет простой и понятный код!
Please open Telegram to view this post
VIEW IN TELEGRAM
42🤔111
⚡️ 24 февраля в Школе 21 я провел лекцию "Как получить оффер Х2"

Сегодня я хочу поделиться выжимкой из своего прошедшего выступления. На нём мы обсудили, как поднять свой грейд и получить оффер с зарплатой в два раза больше текущей.

На выступлении я рассказал:
✔️ Какие есть секреты на любом техническом собеседовании
✔️ Разобрал реальные вопросы из этого поста
✔️ Какие навыки нужны, чтобы поднять свой уровень разработки

Читайте полезное по
ссылке 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
8221
ვადასტურებ
🤔333311
🌷 Короткий пост для пятничного обсуждения

Тезис: «Если компания предлагает сделать тестовое задание, то работать в такой компании не стоит».

АРГУМЕНТЫ «ЗА»
✔️Если компания не готова оплачивать ваше время, то и ценить вас там вряд-ли будут.
✔️Скорее всего у такой компании нет времени на собесы, поэтому отсеивает кандидатов, используя тестовое.

АРГУМЕНТЫ «ПРОТИВ»
Если у вас нет реального опыта, то решение тестовых поможет вам его получить.
Сделать тестовое обычно не сложно. Делают его редко, так что у вас будет преимущество.

Пишите свои аргументы «за» и «против» этого тезиса в комментарии!
Please open Telegram to view this post
VIEW IN TELEGRAM
4221
ФРОНТ 🫥 БЕК

На мой взгляд, для работы в разработке сейчас стоит выбирать направление Веб-Бекенда. Но для этого нужно понимать, как работает веб. Разберём на примере.

У нас есть «фронт»:
🟣Социальная сеть - лента картинок с подписями от других людей.
🟣Лента со списком людей, на кого ты подписан.
🟣Лента того, что ты публиковал.

Как это всё должно работать?
Мы используем REST-подход. Вообще есть альтернативы, но о них расскажу потом. REST проще и популярнее.

У нас есть клиент, который делает запросы к серверу. На сервере мы определяем роуты (маршруты, эндпоинты):

🟣mysite.ru/posts
🟣mysite.ru/subs
🟣mysite.ru/my_posts

На фронте (клиенте), при нажатии на "посты", пользователь переходит по первой ссылке mysite.ru/posts. Бек (наш сервер) должен вернуть все данные, чтобы фронт их отрисовал.

В данном примере фронт нас вообще не интересует, поэтому разберём, что мы делаем на беке.

Бизнес приходит к нам с типичными задачами, все они описываются примерно так:

➡️ Запустить сервер, который будет отлавливать обращения с фронта
➡️ Научиться распознавать, какой роут был использован (posts, subs. my_posts)
➡️ На каждое действие возвращать клиенту данные в удобном виде
➡️ При обращении к subs, надо проверить кто текущий пользователь (значит, что нужна система авторизации). Для текущего пользователя сходить в БД и получить всех, на кого он подписан. Вернуть JSON со списком этих пользователей.

Этот пример можно бесконечно расширять, добавляя новую функциональность. Если вы можете справиться с таким (язык и фреймворк не важны, ведь это лишь инструмент), то вы готовы к собесам! 👨‍💻

Пишите в комментарии, если хотите подробный пост про REST, JSON или клиент-серверное взаимодействие. Я как раз закончил записывать урок про это для курса. 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
5331
Друзья, как проходит ваша рабочая неделя после затяжных выходных?

Если вы еще не успели по-полной "вкатиться" в рабочий режим, предлагаю решить небольшую задачку.

Что выведет этот простой код на картинке?
🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤔111
Если вы настоящий разработчик, то у вас постоянно будет желание что-то автоматизировать (кроме кода)!
9🤔222
⭐️ Примеры паттернов проектирования

Даже если вы уже читали книгу «Паттерны проектирования», вы можете не справится с одним популярным вопросом собеса. Если вас попросят привести примеры паттернов, вы можете подумать, что никогда не работали с ними.

Это не так!
Если вы пишите код на Python, то вы используете паттерны каждый день. Привёл для вас 5 примеров, которые пришли мне на ум первыми.

* Замыкание — функция, которая создаётся каждый раз во время её выполнения.

➡️ Хотите примеры для остальных 18 паттернов?
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5431