Чашка Кода
467 subscribers
254 photos
5 videos
1 file
161 links
👋 Я - Никита, Senior разработчик, автор курсов по Python-разработке. Пишу на Python и Rust

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
А какой ты IT-специалист в мире Алисы в стране чудес?

👍 - Шляпник
🦄 - Чешир
❤️ - Алиса
🔥 - Красная Королева
👾 - Абсолем
🦄5👍32👾2
🔥 Прочитал книгу "Погружение в паттерны проектирования". Не читайте эту книгу...

...пока не напишите решение хотя бы для одной бизнес-проблемы в коммерческом проекте!

🫣 Да кто это такие, эти ваши паттерны?

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

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

Однако время не стоит на месте, и книга банды четырёх, несмотря на свой легендарный статус, уже несколько устарела. "Погружение в паттерны проектирования" Александра Швец вносит в эту область свежий взгляд.

В книге представлен псевдокод, что делает ее доступной для разработчиков на любом языке программирования. Плюс, качественные иллюстрации и аналогии из повседневной жизни делают процесс погружения в материал намного проще 👍

🙅🏻‍♂️ Однако, я бы не советовал начинающим разработчикам читать эту книгу. Подождите с чтением этой книги до того момента, когда у вас будет накоплен коммерческий опыт. Без понимания реальных задач и проблем разработки, большинство из представленных в книге паттернов могут показаться абстрактными и непонятными.

На мой взгляд, эта книга одна из самых полезных в моей библиотеке. А какую последнюю книгу прочитали вы? 👇

#находки #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👾5👍2🔥1
Те, кто со мной достаточно часто общаются, знают, как я люблю Python ❤️

Считаю, что все должны писать на этом языке, но так же, я понимаю и его минусы. Вот, созвонился с Лолой, и во время созвона поняли, что Python не подходит для её задач, поэтому выбрали Golang 🦾

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

Кроме того, за два дня написал 82 страницы заданий для курса по Python! Задания получились просто огонь и сразу же были добавлены в курс 🔥

☀️ В связи с этими двумя новостями придумал крутой контент (анонсирую скоро), но обещаю, это будет просто пушка! Настолько полезного контента ещё было. Там будет сразу 4-5 постов супер полезной информации. Даже самому не терпится 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1👾1
Друзья, а для вас нейросети — помощники или конкуренты? 🔽

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
👾8
➡️ Согласно исследованию международного агентства новостей Reuters, чатом GPT ежедневно пользуются более 13 миллионов людей. Пессимисты говорят, что искусственный интеллект заберёт наши рабочие места в ближайшем будущем. Оптимисты же во всю используют возможности, которые мы получили с приходом ИИ.

👨‍💻 Давайте разберёмся, так ли всё плохо на самом деле и что вообще с этим делать? Разбирать вопрос мы будем со стороны бекенд-разработчика, который использует чат GPT каждый день в свой работе.

👉 Читайте мою статью по ссылке

#мысли #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👾3
👋 Всем привет!

В дополнение к моим размышлениям об ИИ расскажу о том, как стоит использовать чат GPT для прокачки своих навыков.

➡️ Не просите ИИ решить вашу задачу.
Встретившись с проблемой, решайте её самостоятельно. Не надо просить готовое решение у ИИ - так вы не получите навыка решения проблем. Если вы не понимаете задачу, то можете попросить ИИ переформулировать её, помочь разложить на подзадачи, или же придумать более простую версию задачи. Можете даже прямо ему сказать, чтобы не присылал вам готовый ответ, а только подсказывал.

➡️ Используйте чат GPT как собеседника.
Подготовил для вас такой чат. Используйте подход, когда сам ИИ задаёт вам вопросы и проверяет ответы на них. Можете продолжить такой же чат как у меня, или изменить основную часть, где я рассказываю про стек. Такой собеседник отлично подготовит вас к реальному собеседованию. Если не знаете ответ, лучше поищите ответ сами, не спрашивая помощи.

#python_полезности #мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👾2
8️⃣ шагов успешного прохождения алгособеса

Я уже рассказывал (в этом посте), что базы данных важны, вне зависимости от выбора языка. Тоже самое можно сказать про алгоритмы. Алгоритмы - это дополнение навыка решения проблем (пост). Про сами алгоритмы я говорил в посте, но сегодня поговорим как это относиться к работе.

Если вы пишите на Python, Rust или другом языке, где есть функции, решающие 90% встречаемых проблем, критически важно их знать. Практикуя алгоритмы, вы познакомитесь с ними и начнёте использовать.

Не менее важна и алгортимическая сложность решений которые вы пишете, но про это расскажу отдельно.

➡️ До получения работы вы можете попасть на этап алгоритмического собеседования. Как его проходить? (в тексте ниже рекрутёр - технический специалист, проводящий алгоритмический собес)

1️⃣ Выслушайте: Обратите особое внимание на особенности задания. Если вам сказали, что входные данные отсортированы, то это точно намёк на оптимальный алгоритм. Проговорите в слух всё, что вы поняли о задании. Ваше представление о задании должно быть таким же, как у рекрутёра.

2️⃣ Примеры: Большинство примеров маленькие или описывают конкретный случай. Добавьте примеры, которые покроют все возможные ситуации. Задайте себе вопросы "Это не особый случай? Этот пример достаточно большой?"

3️⃣ Брутфорс: Придумайте решение "в лоб" как можно быстрее. Не надо думать об эффективности и коде. Составьте алгоритм, который будет работать, а затем уже думайте об оптимизации.

4️⃣ Оптимизация: Воспользуйтесь оптимизацией BUD:
🟠Всю ли информацию о задании вы использовали?
🟠Используйте свой алгоритм для имеющихся примеров
🟠Определите, какая часть алгоритма самая затратная, есть ли лишние действия?
🟠Можно ли оптимизировать скорость за счёт использования памяти?

5️⃣ Повторение: До написания кода озвучьте рекрутёру своё решение, уточнив все детали. Если рекрутёр одобрил решение, то скорее всего уже всё хорошо. Спросите у рекрутёра совета, если решение не подошло.

6️⃣ Реализация: Нужно написать идеальный код! Пишите модульный код, который легко поддерживать. Написав, проведите рефакторинг, проверив строку за строкой.

7️⃣ Тестирование: Обычно код запустить нельзя! Проверяйте в таком порядке:
🟢Код ревью: проверьте ваше решение, строку за строкой
🟢Необычный или нестандартный ввод
🟢Проверьте код на небольших тестах
🟢Краевые значения и особые случаи

8️⃣ Представьте решение. Если все тестовые данные привели к необходимому ответу, то представьте своё решение. Расскажите как работает ваш алгоритм. Если использовались встроенные функции, то нужно понимать, насколько они эффективны. Проведите анализ производительности и потребления памяти по Big O Notation.

#мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1👾1
К моей статье о том, как ИИ забирает нашу работу, отлично подходит обложка свежего журнала The New Yorker ➡️

А вы согласны с редакторами журнала?

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62👾1
⚡️ Сколько программистов надо для разработки сервиса? Более того, этот сервис, за первый год работы, соберёт 14 миллионов пользователей! Спойлер: 3 человека!

Сразу польза от каждого из них:
🔹 Не усложняй! Простые вещи оставляй простыми.
🔹 Не придумывай! Не нужно создавать колесо заново.
🔹 Используй проверенные, "крепкие" технологии.

Весь бекенд сервиса написан на Python, с использованием фреймворка Django (мощный и популярный инструмент с большим количеством функций для веб-разработки). В качестве базы данных выбрали Postgres, который легко справлялся с нагрузкой в более 7 000 записей в минуту 🌐

Разработчики сервиса придумали
, как создавать уникальные ID для записей. Причём, их хватает на 1024 уникальных значений для каждой миллисекунды! А для кеширования данных использовали Redis.

🙋‍♂️ Все эти инструменты использую и я в своей работе. Впрочем, как и большинство компаний на рынке.

Для многих задач использовались бесплатные решения с открытым кодом. Первую версию сервиса разрабатывали всего 8 недель. Через 2 года после запуска, в 2012, он был продан в Facebook за 1 миллиард долларов! Вы уже наверняка догадались, что этим сервисом был Instagram 📷

Пишите комментарий, если хотите подробный разбор технической структуры сервиса! 🔽

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51👍1🦄1
⚡️ ИНСАЙТЫ ОТЧЁТА «2023 Developer Survey»⚡️

На днях прочитал отчёт от stackoverflow. В исследовании для этого отчёта приняли участие 90 000 разработчиков, в основном из США (21%) и Германии (8%).

Выделил для вас основные инсайты:

🟢 80% разработчиков изучают программирование, используя онлайн ресурсы (в 2022 было 70%)
🟢 Самым популярным способом изучения является чтение документации
🟢 Около 20% разработчиков не имеют высшего образования
🟢 5 лет - средняя разница в опыте между разработчиком и руководителем разработки
🟢 Более 53% разработчиков выбрали самой популярной технологией Docker (ТОП-2 в 2022)
🟢 63% разработчиков тратят более 30 минут в день на поиск решений в интернете
🟢 Rust - самый восхищающий язык, про это подробнее ниже

Интересный взгляд на языки программирования, смотреть не на популярность языка, а на "удержание".

🔜 Один из самых популярных языков, JS (7 место в рейтинге TIOBE) хотят использовать 40% разработчиков. Однако, среди тех, кто успел им воспользоваться продолжать использовать, хотят лишь 57%.

🔜 В случае с Python - это 40% и 60% соответственно. В случае с Rust, это 30% и 85%. Знают о языке не так много, но большинство тех, кто попробовали, остаются им довольны! Я тоже решил обратить на него взгляд и скоро поделюсь своими впечатлениями.

На прикреплённой картинке изображена миграция разработчиков между языками программирования. Как видно, из JS обычно "уходят", а в Rust "приходят".

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3👍1🔥1🦄1👾1
Друзья, как часто вы "копибарите"? 🤓

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🦄1👾1
⚡️ «Накрутить нельзя писать честно» - где поставить запятую?

Можно по-разному относиться к «накручиванию» опыта в IT, но что если я скажу вам, что этот подход работает везде?

Концепция "fake it till you make it" (Притворяйся, пока не сделаешь это правдой) распространена во всех сферах:

🟢 Социальный психолог, Эми Куди рассказывает — Когда мы показываем уверенность, или хотя бы думаем об этом, мы достигаем лучших результатов
🟢 Про это снимают сериалы: раз, два, три
🟢 Об этом поют и говорят звёзды Голливуда!

Но мало просто говорить. Давайте посмотрим на реальный пример.

Кейс: Фейк-ресторан в Нью-Йорке стал настолько популярным, что перестал быть фейком! 🤯

⚡️ Суть: несколько друзей сделали сайт, карточку на карте и даже сервис для бронирования столиков в фейк-ресторане. Они заполнили отзывы, сделали вид, что все места заняты и вызвали этим огромный ажиотаж! Более 900 реальных людей записались в лист ожидания в несуществующее заведение.

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

Обретя успех, вы всё равно останетесь в плюсе!
🔥

#мудрость_на_каждый_день #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👾6🔥4
❄️ Больше не ментор? ❄️

Недавно я попросил удалить меня из таблицы менторов и перестал проводить созвоны. Рассказываю почему: 👇

Для начала я хочу выделить инсайты, которые успел собрать за более чем 100 часов менторских созвонов:

1️⃣ Провожу созвоны, только если у человека уже есть база. Но что в моём понимании база - требует времени для объяснения. Решение: Распишу, что считаю необходимым, чтобы начать проходить собесы или созвоны с ментором 🔜 ждите пост

2️⃣ Самый полезный пост за всё время - пост про Базы данных. Этот пост я отправляю почти каждому, с кем общаюсь

3️⃣ Чаще всего на созвонах мне задают два вопроса: как составить резюме и что изучать, чтобы выйти на работу. Уже пишу посты про это 😉

Почему же я перестал менторить?

➡️ Закончил курс по разработке и меня сразу же позвали в другую компанию. Пишем курс в пять раз больше по объёму. Для записи видео-лекций арендована студия у Красной площади. Думаю, будет круто 🔥
➡️ Пересматриваю модель встреч. Решил сделать бесплатный "предсозвон". В рамках него: ответы на все классические вопросы и анализ, нужен ли полноценный созвон вообще
➡️ Разрабатываю полноценное менторское обучение. Со встречами на каждых выходных по разработке сервиса и ревью кода

#мой_путь #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102🤔2👍1🦄1👾1
Инсайты исследования «Go-разработчиков 2023»

Продолжаю читать исследования, но теперь изучаю наш рынок. IT-сообщество devcrowd провело исследование, опросив 500 Go-разработчиков.

Казалось бы: раз они не пишут на Python, то и изучать нам там нечего. Но это не так. Сразу уточню, что в этом посте было 2 % (1 800+ человек) людей, которые ещё только изучают разработку и не работают профессионально. В отчёте от devcrowd только действующие разработчики, причём лишь 20 % на позиции Junior.

⚡️ ИНСАЙТЫ

🟣 1-2 года - среднее время "роста" специалиста до уровня Middle (моё мнение, что в Python то же самое)
🟣 75 % респондентов работают в продуктовых компаниях
🟣 62 % опрошенных ранее писали на другом языке. В большинстве случаев это PHP или Python (это подтверждает и статистика от stackoverflow)
🟣 20 % разработчиков не имеют высшего образования (как и за рубежом)
🟣 Половина разработчиков пишут только на Go, остальная половина использует так же Python (40 %) и JS (31 %). (стоит понимать, что JS используется для фронтенда, а Python используется "по любви")
🟣 Как и Python, Go часто используется для создания API/RPC или Веб-сервисов
🟣 Docker - самый популярный дополнительный инструмент (как и в отчёте)
🟣 Половина разработчиков (даже сеньоры) отметили, что плохо понимают архитектуру приложений и хотели бы изучить эту тему. Второе и третье места заняли распределённые системы и алгоритмы
🟣 Каждый пятый Go-разработчик ждёт оптимизации обработки ошибок, улучшенной работы с массивами, и другие вещи, которые уже есть в Python
🟣 Почти половина ответила, что не использует инструменты ИИ в своей работе
🟣 Только треть опрошенных ответила, что может свободно общаться на английском. 13 % не изучают английский, зато 52 % могут читать техническую литературу
🟣 40 % среди тех, кто хочет сменить язык, рассматривают Rust

И опять же, мы видим Rust. Становится всё интереснее с ним знакомиться!

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄51🔥1🤔1👾1
🫥 Феномен Rust 🫥

Вдохновившись отчётами devcrowd и stackoverflow, я решил изучить феномен языка Rust.

🫥 Последние 8 лет Rust занимает лидирующие позиции в топе самых "желанных" языков. Более 80 % разработчиков, которые пробовали писать на нём, остаются довольны. При этом язык очень свежий: работа над ним началась в 2006 году, однако первая версия вышла в 2015.

Обычно языки программирования либо быстрые (C, C++), либо безопасные (Haskell, Ruby). Rust же умудрился быть и быстрым и безопасным одновременно. Под безопасностью обычно понимают работу с памятью. Может ли язык сам почистить выделенную память или это ответственность разработчика ⚙️

Интересный факт: создатель Rust-а был вдохновлён на его создание... сломанным лифтом! Из-за проблем с памятью тот не работал. У меня есть похожий кейс - когда вылетает приложение Телеграм я вижу, что проблема в работе с памятью.

Язык достаточно популярный, на нём пишут почти 3 миллиона разработчиков, при этом в 2021 писал всего 1 миллион. Сам Rust похож на языки C и C++, при этом он такой же удобный, как Python.

🔹 А на картинке к этому посту я написал "Hello, world!" на Rust.

#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🦄1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🤔 Как часто вы задумываетесь о том, для чего вы делаете те или иные действия?

К примеру, зачем мы смотрим фильмы?

В детстве я довольно редко смотрел фильмы. За год мог посмотреть всего 5-6 штук. В более сознательном возрасте я понял, что их просмотр - это не пустая трата времени. На мой взгляд, фильмы отлично показывают нам, как можно поступать в разных жизненных ситуациях. Что нужно сказать или сделать, и какие результаты можно получить.

На днях посмотрел фильм «Круэлла» и не мог пропустить эту цитату:
«Я приукрасил твоё резюме, переписал его заново. Все так делают. А ещё я присочинил рекомендации.»

Кстати в фильме, Круэллу, для которой её друг Джаспер «доработал» резюме, взяли на работу 😁

#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍1👾1
🫥 Чем хорош Rust для продакшена? (с) - Часть 1

Несмотря на то, что Rust - один из самых любимых языков среди разработчиков, среди компаний популярностью он пока не пользуется. Это подтверждает статистика HH.ru: rust - 70 вакансий, python - 2500+ вакансий. Разберёмся: в каких случаях компании стоит выбрать Rust?

🪐 Для каких проектов подходит Rust?

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

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

Преимущества языка:

Надёжность и стабильность
Язык rust славится своей надёжностью, на него перешли в npm - 1.3 миллиарда скачиваний в сутки требуют надёжной инфраструктуры. Особенно важно то, что баги, обнаруженные в продакшене, исправлять дороже и дольше в 30 раз, чем обнаруженные на проработке, и в 6 раз относительно этапа разработки (исследование). Так что использование rust с его строгой типизацией и особенной работой с памятью позволяет значительно снизить расходы и упростить рефакторинг.

Мнение сотрудников x(twitter) и npm лишь подтверждает этот тезис.

#просто_о_сложном #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄4👍2🔥1
🫥 Чем хорош Rust для продакшена? (с) - Часть 2

Продолжаем тему Rust и его преимуществ для компании. А первая часть поста тут.

Предсказуемость при работе
Эта особенность связанна с предыдущей, особенно в отношении того, что важнее не скорость работы процесса, а консистентность. В Discord перешли с языка Go на Rust именно из за проблемы непредсказуемости работы сборщика мусора в Go.
Мнение сотрудников Discord и Cloudflare: "Для пользователя равномерная скорость работы сервиса значительно важнее быстродействия ввода-вывода"

Сокращение затрат
Rust отличается низкими издержками при выполнении. По этой причине сервис AWS Firecracker написан на rust.

Это выдержка лишь из 20% статьи, выделил самые интересные моменты, которых достаточно, что бы понять что rust крутой язык.

🔊 Моё мнение по использованию Rust:
Python идеальный язык, чтобы написать MVP и запустить сервис. Однако, когда тот уже готов и показал свою прибыльность, переписывайте его на rust! Rust обеспечивает качественную поддержку и расширение, что существенно экономит как денежные, так и временные ресурсы.

На иллюстрации к посту изображена корреляция обнаружения проблем при работе с rust и другими "традиционными" языками. Видно, что при работе с rust, проблемы обнаруживаются гораздо раньше, в связи с чем экономятся ресурсы компании.

#просто_о_сложном #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1👾1
Подсмотрели у капибары лайфхак и сразу бежим делиться с вами! 💥

А какую рекламу любите вы (если вообще такая есть)? А вот выбор нашей редакции, олды оценят.

#мемы
🦄62
Я не верю в эзотерику, но у меня точно есть проклятие. Кстати, вы знали, что есть эзотерические языки программирования?

Решил вот поделиться с вами трудностями, с которыми сталкиваюсь. Всегда, когда я сталкиваюсь с информационными технологиями, я натыкаюсь на проблемы.

📌 В 2015 году не смог начать работать с C# (и слава богу), потому что мой компьютер не поддерживал его.

📌 В 2021 не смог поставить себе windows 11 из-за особенностей процессора.

📌 Бессчётное количество раз уже переустанавливал Ubuntu, но каждый раз происходит какая-то проблема: то установочный диск форматируется, то система "неправильно" ставится.

📌 В реальной работе тоже хватает трудностей. Если нужен доступ к системе, то его всегда дают не полностью, и приходиться переделывать.

📌 Я даже смог сломать налоговую, у меня в графу "номер паспорта" внесена буква, из-за чего налоговая не может передать мои данные в сторонние API, так как те принимают только числа.

📌 Нет ни одной компьютерной игры, в которой я бы не находил баги.

Возможно мне стоило стать QA и ломать системы за деньги?🤔 А какие трудности в программировании встречаете вы?

#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61🦄1👾1