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

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
⚡️ «Накрутить нельзя писать честно» - где поставить запятую?

Можно по-разному относиться к «накручиванию» опыта в 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
🫥 БАЗЫ — то, что нужно любому разработчику

В этот раз поговорим про git - систему контроля версий. Вы наверняка слышали про гит. Без него сложно представить коммерческую разработку. Но даже если вы знакомы с ним, то первый мердж реквест (запрос на слияние) точно запомнится вам на всю жизнь 😁

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

Собрал три инструмента, которые должен попробовать каждый разработчик. Все они нацелены на практическое использование, так что навыки вы точно получите. Итак, в порядке изучения:

1️⃣ Реальный репозиторий для практики: подробные инструкции на более 50 языках! Вот на русском. Буквально по полочкам разложен процесс того, как работать с гитом. Для тех, кто ещё не работал с гитом ознакомление обязательно.

2️⃣ Игра про гит - геймифицированный опыт всегда работает хорошо. Скачивайте и прокачивайтесь!

3️⃣ Изучение команд гита с визуальным отображением — по названию всё и так понятно. Если вам не хватает визуального отображения действий при работе с гитом, то тут можно понять, что именно происходит при использовании разных команд. Подходит даже тем кто уже работает с гитом, тут подробно изучаются команды вроде cherry-pick. Отдельный плюс — всё на русском.

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

#находки #мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄6👍2🔥1👾1
🫥 Неожиданное открытие!

В одном из прошлых постов я жаловался на то, что чат GPT работает не очень хорошо. Оказывается его можно значительно улучшить, просто добавив в конце запроса такой текст, как на картинке. Качество и подробность ответа вырастают заметно! В комментариях написал текстом, можно скопировать.

А вы говорите, что роботы не имеют чувств... 🫶

PS. Прочитал статью о том, как используя БЯМ, делают открытия в математике и других науках. БЯМ - большие языковые модели, вроде чата GPT.
Учёные дают чату основную версию кода и улучшенную, которая почти решает задачу и просят дописать третью часть. Третья часть как раз и должна решить проблему, решения для которой нет у человечества 🤖

Попробовал такой же подход, и действительно стало проще работать с чатом! То есть мы даём ему 1 и 2 шаг, просим добавить 3. Потом можно попросить и 4, 5 и так далее. Конечным итогом, который вам нужен, может быть и 10 шаг.

🔆 По сути это декомпозиция, просто интересный взгляд на неё.

#находки #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔1👾1
👀 Заметили, что наша капибара часто заказывает периферию и решили проследить за ней.

А вы пользуетесь корпоративным оборудованием? ⬇️

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🦄2
🚀7 секретов освоения алгоритмов🚀

Решил 400 задач на литкоде, что бы выучить Python. Вам достаточно решить всего 150, чтобы получить работу, даже если вы хотите работать в Google или Yandex!

Проанализировал несколько мнений о порядке решения задач и дополнил своим:
(вот самые ценные мнения: одно, другое - оба автора получили оффер в Google!)

🟣Решать задания нужно тему за темой. Сначала простые, потом сложные задания
🟣Решайте одну задачу не более 40 минут
🟣Если не успеваете решить, отрывайте разбор задачи (editorial) если он есть, либо решения (solutions)
🟣Читайте 2-3 варианта решения, пока не поймёте алгоритм
🟣Возвращаетесь к задаче и решаете её так, как поняли
🟣Как только вы научитесь решать задачи менее, чем за 40 минут, переходите к следующей сложности easy -> medium -> hard
🟣На любом уровне сложности используются одинаковые алгоритмы, просто сложные задачи более комплексные

⁉️ Какие именно задачи решать?

Собрал сайт
, где выбрал 150 лучших задач по разным категориям. Разделил их на темы по возрастанию сложности.

🟠В каждой теме только бесплатные задания с ссылкой на литкод
🟠Для каждого задания добавляю описания заданий на русским языке, алгоритмическое решение и реализацию на языках Python и Rust
🟠 Приятный бонус: сайт сделан как документация, так что после него будет легко читать большинство документаций

Иностранный аналог - roadmap (часть заданий премиум, но есть "бесплатная копия")

Поздравляю, всего за один час в день вы научились решать алгоритмические задачи!

А я как раз сейчас учу rust именно по этим заданиям, так что решения выкладываю по мере прогресса ✍️

#python_полезности #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄5🔥32👍2👾1
Нотация Большой О (Big O Notation)

Научиться решать алгоритмы — это только полдела. Нужно ещё уметь анализировать их на эффективность. Чаще всего для измерения эффективности алгоритма используется Нотация Большой О (Big O Notation) и записывается как O(n), то есть большая О и какой-то показатель n.

🟣 Что такое `O(n)`?
Это математическое описание сложности алгоритма. Для записи используется алгебраическое обозначение, где в скобках указывается зависимость от входных данных(обычно длины).

Пример:
Сложность сортировки выбором равна O(n²). Такая сложность читается, как "О(большая) от n в квадрате". Буква n представляет размер полученных данных. Запись (n²) показывает, что для сортировки потребуется количество действий, равное длине входных данных в квадрате.

🟣Зачем нам это нужно?
Представим игру Судоку. Когда пользователь вводит число, необходимо проверить, что оно не встречается в ряду, столбце и подквадрате. Общий размер входных данных, при максимально заполненном судоку, равен 81 числу (9 * 9). Мы воспользуемся оценкой асимптотической сложности, где будем измерять "условные" действия.

🟣Самые популярные сложности алгоритмов:

🟣 O(1) - при константной сложности всегда будет одинаковое количество действий, даже если судоку 100 на 100 ячеек.
🟣 O(log n) - логарифмическая сложность означает значительное сокращение при увеличении. Судоку 9*9 требует 6 действий (log81(2) = 6.33), а 100*100 потребует всего 13 действий.
🟣 O(n) - линейная сложность напрямую зависит от входных данных. Судоку 9*9 => 81 действие, 100*100 => 10_000.
🟣 O(n²) - квадратичная сложность означает значительное увеличение операций относительно увеличения входных данных. Так для 9*9 => 6_561 операций, а 100*100 требует 100 миллионов действий!

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

💬Подробнее про нотацию большой О
💬А вот моё решение судоку
Please open Telegram to view this post
VIEW IN TELEGRAM
👾6👍21
🚗 А вы хорошо себя вели в уходящем году?

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

Как думаете, какой подарок она заготовила для вас? 🎁

Напишите в комментариях ваш самый добрый и хороший поступок, который вы сделали в этом году. Вдруг капибара что-то упустила? 🔽

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄3🔥21👾1
👋 Розыгрыш 3-ёх карьерных созвонов

За последние годы моя жизнь сильно изменилась, но главное, что она изменилась к лучшему! ❤️

Я прекрасно помню, как было страшно менять сферу работы, выбирать язык программирования и готовиться к первым собесам. На январских праздниках я усердно занимался каждый день по 10-12 часов.

🤖 В самом начале было сложно понять, что вообще делать, что учить и почему всё именно так. Много источников информации, каждый эксперт рассказывает по-разному, на ютубе множество видео в духе «как пройти собеседование в IT», но проконсультироваться с реальным человеком, экспертом - возможности не было.

🔔 Поэтому на этот новый год я решил разыграть 3 карьерных созвона

⭐️ Подпишитесь на канал «Чашка кода»
⭐️ Поставьте «+» в комментариях под этим постом
⭐️ 8 января с помощью рандомайзера я разыграю подарки!
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄43👍3🔥1
🎆 Прошло полтора года с момента, как я занялся рефлексией и прокачиванием своих навыков. Поскольку изначально я завёл этот канал ради рефлексии о том, как выйти на работу за год, то пора подвести итоги.

▶️ Разработка — это не про написание кода.

До выхода на работу я каждый день писал код 7-10 часов в день. На работе я пишу код не больше 4 часов в неделю. В основном работаю с базами данных (у друзей такого нет, видимо мне просто "повезло"), прихожу на созвоны, обсуждаю задачи с командой и читаю код.

🟣 Вывод: Больше всего я писал код, только пока учил программирование и проходил собесы, реальная работа это, в лучшем случае, 20-30% процентов кода.

▶️Записывать курсы и другие учебные материалы — сложно.

До IT у меня был опыт обучения сотрудников разного уровня, но это почти всегда была работа 1 на 1, когда мы общались лично с человеком долгое время. В IT успел поучаствовать в записи курса, а впереди ещё один. Это оказалось очень сложно, начиная с момента проработки учебных материалов и заканчивая бесконечными перезаписыванием.

🟣 Вывод: Обучение и подготовка курсов занимает много времени, сил и других ресурсов, при этом многие курсы получаются плохими.

▶️Хорошая работа всегда зависит от хорошего самочувствия.

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

🟣 Вывод: Как бы не звучало банально, но следите за здоровьем! Не перерабатывайте и вовремя отдыхайте.

🕯 Друзья, желаю всем в новом году никогда не сдаваться, ставить себе реальные цели, правильно рассчитывать силы и верить в чудеса, ведь они действительно случаются!

#мой_путь #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3🦄1👾1
❄️Друзья, новогоднее бинго!

Я календарь переверну... и снова 3 января! Признавайтесь, все уже доели новогодние салаты, или у кого-то в холодильнике ещё лежит оливье? 😋

Давайте вспомним собеседования, которые мы проходили в прошлом году. Если получилось собрать три варианта в ряд или по диагонали — у вас бинго! 🌟

А если вы ещё пока не проходили собеседований, запоминайте вопросы.

Какие самые глупые, каверзные или надоедливые вопросы вам задавали на собеседованиях? 👇

#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👾21🦄1