Я уже рассказывал (в этом посте), что базы данных важны, вне зависимости от выбора языка. Тоже самое можно сказать про алгоритмы. Алгоритмы - это дополнение навыка решения проблем (пост). Про сами алгоритмы я говорил в посте, но сегодня поговорим как это относиться к работе.
Если вы пишите на Python, Rust или другом языке, где есть функции, решающие 90% встречаемых проблем, критически важно их знать. Практикуя алгоритмы, вы познакомитесь с ними и начнёте использовать.
Не менее важна и алгортимическая сложность решений которые вы пишете, но про это расскажу отдельно.
#мудрость_на_каждый_день
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1👾1
Сразу польза от каждого из них:
🔹 Не усложняй! Простые вещи оставляй простыми.
🔹 Не придумывай! Не нужно создавать колесо заново.
🔹 Используй проверенные, "крепкие" технологии.
Весь бекенд сервиса написан на Python, с использованием фреймворка Django (мощный и популярный инструмент с большим количеством функций для веб-разработки). В качестве базы данных выбрали Postgres, который легко справлялся с нагрузкой в более 7 000 записей в минуту
Разработчики сервиса придумали, как создавать уникальные ID для записей. Причём, их хватает на 1024 уникальных значений для каждой миллисекунды! А для кеширования данных использовали Redis.
🙋♂️ Все эти инструменты использую и я в своей работе. Впрочем, как и большинство компаний на рынке.
Для многих задач использовались бесплатные решения с открытым кодом. Первую версию сервиса разрабатывали всего 8 недель. Через 2 года после запуска, в 2012, он был продан в Facebook за 1 миллиард долларов! Вы уже наверняка догадались, что этим сервисом был Instagram
Пишите комментарий, если хотите подробный разбор технической структуры сервиса!
#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤1👍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 "приходят".
#находки
На днях прочитал отчёт от stackoverflow. В исследовании для этого отчёта приняли участие 90 000 разработчиков, в основном из США (21%) и Германии (8%).
Выделил для вас основные инсайты:
Интересный взгляд на языки программирования, смотреть не на популярность языка, а на "удержание".
На прикреплённой картинке изображена миграция разработчиков между языками программирования. Как видно, из JS обычно "уходят", а в Rust "приходят".
#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔3👍1🔥1🦄1👾1
Можно по-разному относиться к «накручиванию» опыта в IT, но что если я скажу вам, что этот подход работает везде?
Концепция "fake it till you make it" (Притворяйся, пока не сделаешь это правдой) распространена во всех сферах:
Но мало просто говорить. Давайте посмотрим на реальный пример.
Кейс: Фейк-ресторан в Нью-Йорке стал настолько популярным, что перестал быть фейком! 🤯
💥 В итоге они открыли заведение на один день, приготовили стейки и приняли гостей, заработав деньги и славу! А нам подарили ещё одно подтверждение, что надо не бояться своих желаний и возможности потерпеть неудачу.
Обретя успех, вы всё равно останетесь в плюсе!
#мудрость_на_каждый_день #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
👾6🔥4
❄️ Больше не ментор? ❄️
Недавно я попросил удалить меня из таблицы менторов и перестал проводить созвоны. Рассказываю почему: 👇
Для начала я хочу выделить инсайты, которые успел собрать за более чем 100 часов менторских созвонов:
1️⃣ Провожу созвоны, только если у человека уже есть база. Но что в моём понимании база - требует времени для объяснения. Решение: Распишу, что считаю необходимым, чтобы начать проходить собесы или созвоны с ментором 🔜 ждите пост
2️⃣ Самый полезный пост за всё время - пост про Базы данных. Этот пост я отправляю почти каждому, с кем общаюсь
3️⃣ Чаще всего на созвонах мне задают два вопроса: как составить резюме и что изучать, чтобы выйти на работу. Уже пишу посты про это 😉
Почему же я перестал менторить?
➡️ Закончил курс по разработке и меня сразу же позвали в другую компанию. Пишем курс в пять раз больше по объёму. Для записи видео-лекций арендована студия у Красной площади. Думаю, будет круто 🔥
➡️ Пересматриваю модель встреч. Решил сделать бесплатный "предсозвон". В рамках него: ответы на все классические вопросы и анализ, нужен ли полноценный созвон вообще
➡️ Разрабатываю полноценное менторское обучение. Со встречами на каждых выходных по разработке сервиса и ревью кода
#мой_путь #мысли
Недавно я попросил удалить меня из таблицы менторов и перестал проводить созвоны. Рассказываю почему: 👇
Для начала я хочу выделить инсайты, которые успел собрать за более чем 100 часов менторских созвонов:
Почему же я перестал менторить?
#мой_путь #мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2🤔2👍1🦄1👾1
Продолжаю читать исследования, но теперь изучаю наш рынок. IT-сообщество devcrowd провело исследование, опросив 500 Go-разработчиков.
Казалось бы: раз они не пишут на Python, то и изучать нам там нечего. Но это не так. Сразу уточню, что в этом посте было 2 % (1 800+ человек) людей, которые ещё только изучают разработку и не работают профессионально. В отчёте от devcrowd только действующие разработчики, причём лишь 20 % на позиции Junior.
⚡️ ИНСАЙТЫ
И опять же, мы видим Rust. Становится всё интереснее с ним знакомиться!
#находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄5❤1🔥1🤔1👾1
Вдохновившись отчётами devcrowd и stackoverflow, я решил изучить феномен языка Rust.
Обычно языки программирования либо быстрые (C, C++), либо безопасные (Haskell, Ruby). Rust же умудрился быть и быстрым и безопасным одновременно. Под безопасностью обычно понимают работу с памятью. Может ли язык сам почистить выделенную память или это ответственность разработчика
Интересный факт: создатель Rust-а был вдохновлён на его создание... сломанным лифтом! Из-за проблем с памятью тот не работал. У меня есть похожий кейс - когда вылетает приложение Телеграм я вижу, что проблема в работе с памятью.
Язык достаточно популярный, на нём пишут почти 3 миллиона разработчиков, при этом в 2021 писал всего 1 миллион. Сам Rust похож на языки C и C++, при этом он такой же удобный, как Python.
#находки
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 - один из самых любимых языков среди разработчиков, среди компаний популярностью он пока не пользуется. Это подтверждает статистика HH.ru: rust - 70 вакансий, python - 2500+ вакансий. Разберёмся: в каких случаях компании стоит выбрать 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 и его преимуществ для компании. А первая часть поста тут.
Эта особенность связанна с предыдущей, особенно в отношении того, что важнее не скорость работы процесса, а консистентность. В Discord перешли с языка Go на Rust именно из за проблемы непредсказуемости работы сборщика мусора в Go.
Мнение сотрудников Discord и Cloudflare: "Для пользователя равномерная скорость работы сервиса значительно важнее быстродействия ввода-вывода"
Rust отличается низкими издержками при выполнении. По этой причине сервис AWS Firecracker написан на rust.
Это выдержка лишь из 20% статьи, выделил самые интересные моменты, которых достаточно, что бы понять что rust крутой язык.
Python идеальный язык, чтобы написать MVP и запустить сервис. Однако, когда тот уже готов и показал свою прибыльность, переписывайте его на rust! Rust обеспечивает качественную поддержку и расширение, что существенно экономит как денежные, так и временные ресурсы.
На иллюстрации к посту изображена корреляция обнаружения проблем при работе с rust и другими "традиционными" языками. Видно, что при работе с rust, проблемы обнаруживаются гораздо раньше, в связи с чем экономятся ресурсы компании.
#просто_о_сложном #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍1👾1
Я не верю в эзотерику, но у меня точно есть проклятие. Кстати, вы знали, что есть эзотерические языки программирования?
Решил вот поделиться с вами трудностями, с которыми сталкиваюсь. Всегда, когда я сталкиваюсь с информационными технологиями, я натыкаюсь на проблемы.
📌 В 2015 году не смог начать работать с C# (и слава богу), потому что мой компьютер не поддерживал его.
📌 В 2021 не смог поставить себе windows 11 из-за особенностей процессора.
📌 Бессчётное количество раз уже переустанавливал Ubuntu, но каждый раз происходит какая-то проблема: то установочный диск форматируется, то система "неправильно" ставится.
📌 В реальной работе тоже хватает трудностей. Если нужен доступ к системе, то его всегда дают не полностью, и приходиться переделывать.
📌 Я даже смог сломать налоговую, у меня в графу "номер паспорта" внесена буква, из-за чего налоговая не может передать мои данные в сторонние API, так как те принимают только числа.
📌 Нет ни одной компьютерной игры, в которой я бы не находил баги.
Возможно мне стоило стать QA и ломать системы за деньги?🤔 А какие трудности в программировании встречаете вы?
#мысли
Решил вот поделиться с вами трудностями, с которыми сталкиваюсь. Всегда, когда я сталкиваюсь с информационными технологиями, я натыкаюсь на проблемы.
📌 В 2015 году не смог начать работать с C# (и слава богу), потому что мой компьютер не поддерживал его.
📌 В 2021 не смог поставить себе windows 11 из-за особенностей процессора.
📌 Бессчётное количество раз уже переустанавливал Ubuntu, но каждый раз происходит какая-то проблема: то установочный диск форматируется, то система "неправильно" ставится.
📌 В реальной работе тоже хватает трудностей. Если нужен доступ к системе, то его всегда дают не полностью, и приходиться переделывать.
📌 Я даже смог сломать налоговую, у меня в графу "номер паспорта" внесена буква, из-за чего налоговая не может передать мои данные в сторонние API, так как те принимают только числа.
📌 Нет ни одной компьютерной игры, в которой я бы не находил баги.
Возможно мне стоило стать QA и ломать системы за деньги?
#мысли
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1🦄1👾1
В этот раз поговорим про git - систему контроля версий. Вы наверняка слышали про гит. Без него сложно представить коммерческую разработку. Но даже если вы знакомы с ним, то первый мердж реквест (запрос на слияние) точно запомнится вам на всю жизнь 😁
Собрал три инструмента, которые должен попробовать каждый разработчик. Все они нацелены на практическое использование, так что навыки вы точно получите. Итак, в порядке изучения:
Делитесь в комментариях, как вы изучаете современные инструменты для разработки
#находки #мудрость_на_каждый_день
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
Решил 400 задач на литкоде, что бы выучить Python. Вам достаточно решить всего 150, чтобы получить работу, даже если вы хотите работать в Google или Yandex!
Проанализировал несколько мнений о порядке решения задач и дополнил своим:
(вот самые ценные мнения: одно, другое - оба автора получили оффер в Google!)
⁉️ Какие именно задачи решать?
Собрал сайт, где выбрал 150 лучших задач по разным категориям. Разделил их на темы по возрастанию сложности.
Иностранный аналог - roadmap (часть заданий премиум, но есть "бесплатная копия")
Поздравляю, всего за один час в день вы научились решать алгоритмические задачи!
А я как раз сейчас учу rust именно по этим заданиям, так что решения выкладываю по мере прогресса
#python_полезности #находки
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄5🔥3❤2👍2👾1
✨ Нотация Большой О (Big O Notation)
Научиться решать алгоритмы — это только полдела. Нужно ещё уметь анализировать их на эффективность. Чаще всего для измерения эффективности алгоритма используется Нотация Большой О (Big O Notation) и записывается как
🟣 Что такое `O(n)`?
Это математическое описание сложности алгоритма. Для записи используется алгебраическое обозначение, где в скобках указывается зависимость от входных данных(обычно длины).
Пример:
Сложность сортировки выбором равна
🟣 Зачем нам это нужно?
Представим игру Судоку. Когда пользователь вводит число, необходимо проверить, что оно не встречается в ряду, столбце и подквадрате. Общий размер входных данных, при максимально заполненном судоку, равен 81 числу (9 * 9). Мы воспользуемся оценкой асимптотической сложности, где будем измерять "условные" действия.
🟣 Самые популярные сложности алгоритмов:
🟣
🟣
🟣
🟣
При логарифмической сложности пользователь вряд-ли заметит время на расчёты, даже если его судоку будет размеров 100 на 100. Если алгоритм будет неоптимальным, квадратичным или даже хуже, то вероятно он не дождётся проверки судоку.
💬 Подробнее про нотацию большой О
💬 А вот моё решение судоку
Научиться решать алгоритмы — это только полдела. Нужно ещё уметь анализировать их на эффективность. Чаще всего для измерения эффективности алгоритма используется Нотация Большой О (Big O Notation) и записывается как
O(n), то есть большая О и какой-то показатель 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👍2❤1
Капибара уже складывает последние подарки в мешок и совсем скоро покинет свою капибаречью нору, отправляясь их дарить.
Как думаете, какой подарок она заготовила для вас?
Напишите в комментариях ваш самый добрый и хороший поступок, который вы сделали в этом году. Вдруг капибара что-то упустила?
#мемы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🦄3🔥2❤1👾1