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

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
⚡️ Оказывается, за написание алгоритмов эффективной жарки котлет платят больше, чем за саму жарку котлет.

Предлагаю немного отвлечься от рабочих дел и решить небольшую задачку. Если справитесь, то вам точно нужно быть разработчиком! 🔽

У нас есть две сковороды, чтобы жарить котлеты для бургера. Каждую котлету нужно пожарить по одной минуте с каждой стороны. Сколько минимально времени нужно для жарки трёх котлет? 🔥

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2222
Сколько минимально времени нужно для жарки трёх котлет?
Anonymous Quiz
4%
1 минута
4%
2 минуты
46%
3 минуты
35%
4 минуты
2%
5 минут
9%
6 минут
4🤔1111
👻 Страшные тайны ООП

Недавно я выступал в Школе 21 и пообещал поделиться инсайтами, о которых я рассказывал во время выступления. Это первый пост про инсайты ООП.

В разработке часто используются два термина:

🟣DRY - Don't repeat yourself

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

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

🟣KISS - Keep it simple, stupid

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

🔊 Одной из концепций, которые нам даёт ООП, является Наследование. Оно помогает нам делать код проще за счёт разделения деталей реализации на классы. Так же наследование позволяет нам не повторять свой собственный код, за счёт наследования реализации родительских классов.

Это всё хорошо, но...
🔜
Please open Telegram to view this post
VIEW IN TELEGRAM
5111
Друзья, хочу поделиться подборкой свежих отзывов о моих карьерных консультациях⚡️

Спасибо вам за качественную обратную связь. Получать искренние и позитивные отзывы - вдвойне приятно! ❤️

В одном из следующих постов я планирую раскрыть лайфхаки, которые помогут вам составить резюме так, чтобы его конверсия увеличилась в 2 раза. Не выключайте уведомления канала и следите за постами. Впереди у нас ещё много интересного! 🔥

А если вы чувствуете, что пока не готовы к собесам или хотите проверить свои силы - пишите мне в личку @pysage
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7221
🔊 Отвлечёмся от рабочих задач?

Предлагаю немного размять мозги перед следующими тремя выходными и подумать, что же не так с кодом на картинке. Или всё так? Пишите свои версии в комментариях 🔽
Please open Telegram to view this post
VIEW IN TELEGRAM
32🤔111
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