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

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
ФРОНТ 🫥 БЕК

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

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

Как это всё должно работать?
Мы используем 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
🥸 Парадокс Даннига-Крюгера

Лучший показатель вашего уровня — это синдром самозванца. Согласно исследованиям Даннига и Крюгера:
Менее компетентные люди имеют более высокое мнение о своих способностях, чем более компетентные.


Схожее рассуждение встречается и у Лао-цзы, Сократа, Конфуция и других философов и учённых:
Зная мало мы считаем, что знаем много, а зная много мы скрываем это.


Исследование 1999 года сформировало эту гипотезу и подтвердило её исследованиями. Скорее всего вы замечаете это и на себе:

▶️ ПИК ГЛУПОСТИ
В момент получения первого оффера вы будете уверены в своих знаниях больше всего. Не поддавайтесь этому конгитивному искажению! Оно поможет вам пройти собеседования за счёт уверенности, но из-за него вам сложно будет признать свою неправоту. На диаграмме это "Пик глупости".

▶️ ДОЛИНА ОТЧАЯНИЯ
Устроившись в компанию вы подумаете, что ничего не знаете - сработает синдром самозванца. Именно в этот момент вы в среднем хорошо знаете сферу. Вы понимаете в чём слабы, но не забывайте, что есть то, в чём вы сильны. Зафиксируйте то, что вам кажется непонятным и изучайте. На диаграмме это "Долина отчания".

▶️ СКЛОН ПРОСВЕТЛЕНИЯ
Почувствовав, что вы понимаете достаточно много, не останавливайтесь в изучении! Попробуйте расширить свои знания в других темах, возможно даже не в программировании. На диаграмме это "Склон просветления".

▶️ ПЛАСТО СТАБИЛЬНОСТИ
Согласно исследованию, дальше начинается "Плато стабильности", старайтесь не забывать, что зачастую специалисты развиты только в той сфере которой они заняты. Изучайте новые технологии и инструменты если хотите продолжать развиваться.
Please open Telegram to view this post
VIEW IN TELEGRAM
332
⚡️ Репортаж с моего выступления в Школе 21. Часть 2

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

Напомню, на выступлении раскрыл 3 секрета тех собесов:
🟣Язык не важен
🟣Важны не вопросы, а ответы!
🟣Время не бесконечно, нельзя прожить за час больше 60 минут.

В предыдущей части репортажа мы разобрали 2 реальных вопроса с тех-собеса, в этот раз разберём ещё 3.

👉 Читать репортаж
Please open Telegram to view this post
VIEW IN TELEGRAM
6221
Ваш вопрос: Что полезнее для карьеры: прокачивать сильные стороны или исправлять слабые?

Мой ответ:
Если у вас меньше 5 лет коммерческого опыта, то: "Прокачивайте слабые стороны!". (Обычно это те технологии, с которыми вы работали мало).

Пример: вы хороши в работе в БД, но нет опыта с контейнерами.
Если вы будете искать работу, то наличие двух навыков даст большее преимущество.

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

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

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

➡️ Если вы уже знаете какой-то язык программирования и пробовали учить другой, то знаете, что с каждым новым языком процесс проще. Таким образом расширение навыков и проработка слабых сторон кажется более продуктивной.
Please open Telegram to view this post
VIEW IN TELEGRAM
443
🫥 REST - это не про отдых.

Начиная разрабатывать веб, чаще всего мы выбираем архитектуру REST. Либо нам достаются проекты уже с таким подходом. Предлагаю разобраться, что же из себя представляет REST. Но сначала рекомендую почитать пост про то, как в целом работает веб.

Сразу определимся:
🟣Rest - это лишь соглашение, мы не обязаны выполнять его детали. Это как обращение к protected и private атрибутам класса. Вы можете это делать, но есть соглашение.

🟣Есть REST - соглашение со списком правил, которых нам следует придерживаться при веб разработке. Есть RESTfull, прилагательное определяющее API, то есть программы, которые реализовывают описанные в REST правила. Таким образом, RESTfull API — это приложение, которое следует правилам из соглашения REST.

🟣REST — это архитектурный стиль, применимый для серверных приложений, которые взаимодействуют по системе клиент-сервер.

Сам по себе этот архитектурный стиль не является протоколом, но обычно мы соблюдаем стандарты HTTP в RESTfull приложениях.

➡️ Что мы получаем:
- Масштабируемость систем за счёт простого и систематизированного интерфейса
- Открытость компонентов к расширению
- Отдельные компоненты самостоятельны, а их взаимодействие структурировано

Читайте о 5 обязательных ограничений в REST в карусели:
1️⃣ Клиент-сервер
2️⃣ Отсутствие состояния
3️⃣ Кеширование
5️⃣ Единообразие интерфейса
5️⃣ Слои
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
843🤔1
💪 Прокачиваем структуру резюме

Сегодня поговорим о том, как заполнить блок "опыт работы".

1️⃣ Название компании
Тут всё просто. В нашем примере будет Sunflower Digital Group.

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

RESTfull API для отдела продаж туристической компании на FastAPI


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

3️⃣ Функции
Добавьте информацию о конкретных функциях приложения, это могут быть и достижения ваших коллег и ваши задачи. Описывайте всё как отдельные функции.

Ключевые проекты:
Микросервис для прогнозирования спроса
Интеграция с API бронирования отелей
Сбор и вывод статистики через Prometheus в реально времени c выводом в Grafana
CI/CD с линтером, тестированием и развертыванием на сервере


HR, который читает 1000 резюме в день, должен увидеть ключевые слова соответствующие вакансии, поэтому опишите функциональные возможности продукта.

4️⃣ Достижения
Добавьте раздел с вашими достижениями отдельно, достаточно 2-3 пунктов.

Разработал два функциональных микросервиса
Улучшил сервис по обработке данных


Можно указать совершенно абстрактные вещи, просто покажите, что умеете рефлексировать и замечать свои достижения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6421