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

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

Задать вопрос, позвать на конференцию, записать со мной курс/статью/подкаст
👉 @PySage
Download Telegram
⚡️ ИНСАЙТЫ ОТЧЁТА «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
🫥 БАЗЫ — то, что нужно любому разработчику

В этот раз поговорим про 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