🏃 Самоучитель по Go для начинающих. Часть 15. Конкурентность. Горутины. Каналы
В 15-й части самоучителя мы разберем работу базовых сущностей ОС для погружения в парадигму конкурентного программирования, а затем изучим основные способы её реализации в Go с помощью горутин и каналов.
👉 Читать гайд
📌 Остальные части в серии:
1. Особенности и сфера применения Go, установка, настройка
2. Ресурсы для изучения Go с нуля
3. Организация кода. Пакеты, импорты, модули. Ввод-вывод текста.
4. Переменные. Типы данных и их преобразования. Основные операторы
5. Условные конструкции if-else и switch-case. Цикл for. Вложенные и бесконечные циклы
6. Функции и аргументы. Области видимости. Рекурсия. Defer
7. Массивы и слайсы. Append и сopy. Пакет slices
8. Строки, руны, байты. Пакет strings. Хеш-таблица (map)
9. Структуры и методы. Интерфейсы. Указатели. Основы ООП
10. Введение в ООП. Наследование, абстракция, полиморфизм, инкапсуляция
11. Обработка ошибок. Паника. Восстановление. Логирование
12. Обобщенное программирование. Дженерики
13. Работа с датой и временем. Пакет time
14. Интерфейсы ввода-вывода. Буферизация. Работа с файлами. Пакеты io, bufio, os
⚒️ Ключевые понятия, составляющие и юзкейсы Kafka: на заметку разработчику
👉 Источник
#инфографика
Привет, друзья! 👋
Мы готовим статью о прокрастинации среди разработчиков и хотим узнать ваше мнение! 🤓 Поделитесь своим опытом, а самые интересные и полезные советы мы обязательно включим в нашу статью.
❓ Какая самая необычная причина прокрастинации у вас была в работе над проектом?
❓ Какой метод борьбы с прокрастинацией оказался для вас наиболее эффективным?
❓ Как вы справляетесь с когнитивной перегрузкой во время работы над сложными задачами?
Не стесняйтесь делиться своими историями и лайфхаками в комментариях! 💬 Ваш опыт может помочь другим разработчикам справиться с прокрастинацией. Спасибо за участие!
🤔 Кем я хочу быть – DS или ML engineer?! Стоит ли понимать специфику сферы?!
🗓 Встречаемся сегодня в 20:00 по МСК чтобы ответить на эти и другие вопросы на вебинаре «Как меняется математика в разных индустриях: от мобильных игр к фондовым рынкам»
В эфире вас будет ждать Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
➡️ Регистрируйтесь, если еще не успели: https://proglib.io/w/3aab60c7
🚀 Топ-5 стратегий кэширования
➡️ Реальное использование:
🔹 Cache Aside + Write Through: обеспечивает согласованную синхронизацию кэша/БД, позволяя при этом осуществлять контроль заполнения кэша во время чтения. Немедленные записи в базу данных могут нагружать БД.
🔹 Read Through + Write Back: абстрагирует БД и хорошо справляется с потоком трафика записи, задерживая синхронизацию. Однако это сопряжено с риском большей потери данных, если кэш выйдет из строя до синхронизации буферизованных записей с базой данных.
👉 Источник
#инфографика
Привет, друзья! 👋
Мы готовим статью на тему: «5 признаков зависимости от программирования». Нам очень важно ваше мнение! Поделитесь своим опытом и советами, и самые интересные из них мы включим в статью.
⌛ Как вы понимаете, что программирование начинает занимать слишком много места в вашей жизни? Какие признаки вы замечаете?
🏄 Какие методы и стратегии вы используете, чтобы сохранить баланс между работой и личной жизнью?
😔 Был ли у вас опыт, когда программирование негативно влияло на ваши отношения с близкими или здоровье? Как вы справились с этим?
Ваши ответы помогут многим! Спасибо за участие!
🐘🧠 Оптимизация использования памяти в PostgreSQL: секреты профессионалов
Сложные (и многочисленные) операции в базе данных требуют солидного объема оперативной памяти — например, для создания набора результатов PostgreSQL обычно приходится:
🔹 Выполнить поиск по индексу.
🔹 Извлечь связанные строки из одной или нескольких таблиц.
🔹 Объединить, отфильтровать, агрегировать и отсортировать кортежи в пригодный для использования результат.
Каждый из этих шагов требует памяти, и PostgreSQL может обрабатывать тысячи таких запросов одновременно. Так что рано или поздно перед разработчиками любого серьезного проекта встает необходимость решения нескольких сложных вопросов:
🔹 Как грамотно оптимизировать использование доступной памяти?
🔹 В каком соотношении распределить ОЗУ между несколькими типами памяти, которые необходимы PostgreSQL для эффективной работы?
🔹 Как предотвратить защитное завершение операционной системой процесса PostgreSQL, который использует слишком много памяти?
Для ответов на все эти вопросы нужно определить, сколько именно памяти использует PostgreSQL для основных процессов — а это сама по себе нетривиальная задача. Советы по настройке памяти так многочисленны и разнообразны, что в них сложно сориентироваться.
Поэтому в этой статье мы сведем всю мудрость экспертов к конкретным шагам, которые помогут максимально эффективно распорядиться доступной памятью.
🔗 Читать статью
🔗 Зеркало
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.
В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги
👉Подписаться👈
🤯⚡ Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. Эти данные доступны всегда. И это не баг, а фича.
Это настолько огромный вектор атак для всех организаций, использующих GitHub, что родился новый термин: Cross Fork Object Reference (CFOR). CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков).
Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.
👉 Подробнее
🤔 Как меняется математика в разных индустриях: от мобильных игр к фондовым рынкам
🗓 22 августа в прямом эфире разберем как математика применяется в разных отраслях бизнеса. И какие математические навыки необходимы для успешной работы в каждой из них.
Приглашенный спикер: Павел Запольский – Senior Quantitative Researcher at Exness и Co-founder GrowLytics. Запустивший более 10 проектов по машинному обучению и анализу данных для ведущих компаний.
😮 На вебинаре узнаете:
🔵 Математика в бизнесе: Чем отличаются разные сферы друг от друга. Почему стоит понимать специфику сферы
🔵 ML и продуктовое IT: Чем различается математическая сложность от индустрии к индустрии. Какие к ним необходимы уровни подготовки
🔵 Баевская математика в GameDev. Баевская математика как альтернатива AB тестированию. Как математические методы применяются в разработке игр
🔵 Finance: Что такое количественные финансы и математическое моделирование. Обсудим текущие индустриальные тренды в отрасли
🔵 Backtest: Как знания математики делают ваши активы более надежными
🔵 На практике подробно разберем два математических кейса по GameDev и Backtest.
➡️ Зарегистрироваться: https://proglib.io/w/0a8eb1c0
▶ Подборка топовых докладов с конференции Saint HighLoad++ 2023: на заметку разрабу
• Распределенные графовые СУБД — будущее для аналитики на Больших Данных? / Павел Велихов (TigerGraph)
• Как мы переживаем сплит-брейн и продолжаем писать данные по S3-протоколу / С. Богатырев (YADRO)
• Use actors, Luke / Андрей Парамонов (Dodo Engineering)
• Управляем доступом в распределённой Linux-инфраструктуре / Антон Жаболенко, Павел Пархомец
• Warden — зачем нам свой service mesh? / Ильяс Нежибицкий (Ozon)
• Делаем Сбербанк Онлайн надежнее и надежнее: как мы готовимся к пиковым нагрузкам / Артем Арюткин
• 7 петабайт логов в Elastic. Как мы это сделали? / Роман Николаев (Тинькофф)
• 5 GB трейсов в секунду, или Как устроена система трассировки в Ozon / Владимир Балун (Ozon)
• Микросервисы как худший архитектурный выбор для стартапа / Даниил Подольский (YADRO)
• Современные базы данных. Как выбрать СУБД в 2023? / Олег Бондарь (Яндекс)
Самые полезные каналы для программистов в одной подборке!
Сохраняйте себе, чтобы не потерять 💾
🔥Для всех
Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы
Азбука айтишника — здесь мы познаем азы из мира программирования
🤖Про нейросети
Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей
Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка
Библиотека нейротекста | ChatGPT, Gemini, Bing
Библиотека нейровидео | Sora AI, Runway ML, дипфейки
Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion
#️⃣C#
Книги для шарпистов | C#, .NET, F#
Библиотека шарписта — полезные статьи, новости и обучающие материалы по C#
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel
☁️DevOps
Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
🐘PHP
Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты
🐍Python
Библиотека питониста — полезные статьи, новости и обучающие материалы по Python
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты
☕Java
Книги для джавистов | Java
Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков
👾Data Science
Книги для дата сайентистов | Data Science
Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту
🦫Go
Книги для Go разработчиков
Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go
🧠C++
Книги для C/C++ разработчиков
Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++
💻Другие каналы
Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика
Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности
📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈
Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT
Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *
* Организация Meta запрещена на территории РФ
😎👨💻 Вам следует написать новый язык программирования: он будет ужасным, но это нормально
У нас, программистов, есть почти полный контроль над машиной и, теоретически, мы способны создать всё с нуля. Так как мы работаем с программными инструментами и сами пишем софт, то можем создавать инструменты для себя, начиная с операционной системы и выше. Это привилегия, недоступная для большинства областей деятельности.
Так почему бы в качестве пет-проекта не выбрать новый ЯП и какой в этом вообще смысл? Вы узнаете о грамматике и архитектуре языка, парсинге, среде исполнения и многом другом.
👉 Подробнее читайте в статье.
🔄 Построение отказоустойчивой (fault tolerant) системы: шпаргалка для разработчика
Отказоустойчивость — свойство технической системы сохранять свою работоспособность после отказа одной или нескольких её составных частей.
👉 Источник
#инфографика
🧑💻 Статьи для IT: как объяснять и распространять значимые идеи
Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.
Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.
Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.
👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Как находить только релевантные вакансии?
Когда вы ищете работу, то зачастую сталкиваетесь с массой неподходящих предложений. Мы знаем, как это может напрягать.
Для решения этой проблемы мы создали сервис Jobski. Его алгоритм сам подбирает релевантные вакансии, на основе вашей специализации, грейда, стека технологий, опыта и зарплатных ожиданий. В сервисе есть предложения для разработчиков, тестировщиков, аналитиков и других технических специалистов. Пул вакансий постоянно расширяется.
Чтобы начать поиск, вам нужно пройти регистрацию через Telegram и заполнить профиль.
Реклама. ООО "ТИММЕЙТ", ИНН 5503268412. Erid 2VtzqvCq2Ud
👨🍳 Rails Соглашение от David Heinemeier Hansson
У какого еще языка есть такое? А ниже — девять основных столпов Соглашения:
1️⃣ Оптимизация на радость программистам
2️⃣ Соглашение над конфигурацией
3️⃣ Меню это омакасе
4️⃣ Отсутсвие парадигм
5️⃣ Культ красоты кода
6️⃣ Острые лезвия
7️⃣ Цените интегрированные системы
8️⃣ Прогресс превыше стабильности
9️⃣ Возведите большую палатку
🔍 Два потока, одно ядро: как устроена одновременная многопоточность
Одновременная многопоточность (Simultaneous multithreading, SMT) — это функция, позволяющая процессору одновременно обрабатывать команды из двух разных потоков. Но задавались ли вы когда-нибудь вопросом, как это работает? Как процессор отслеживает два потока и распределяет ресурсы между ними?
В статье автор объясняет, как устроена эта функция. Понимание внутреннего устройства SMT поможет вам решить, подходит ли она для ваших продакшен-серверов. Иногда SMT способна резко повысить производительность системы, но в некоторых случаях она приводит к замедлению. Знание подробностей позволит вам сделать правильный выбор.
👉 Читать
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
❗Вакансии «Библиотеки программиста» — ждем вас в команде!
Мы постоянно растем и развиваемся, поэтому создали отдельную страницу, на которой будут размещены наши актуальные вакансии. Сейчас мы ищем:
👉авторов в наше медиа proglib.io
👉контент-менеджеров для ведения телеграм-каналов
Подробности тут
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
Ждем ваших откликов 👾
📶 Паттерны коммуникации в распределенных системах
Распределенные системы состоят из многих отдельных частей/узлов, работающих вместе, но физически расположенных в разных местах. Эти части системы должны общаться друг с другом через сеть, чтобы система могла функционировать как единое целое.
Хотя коммуникация критически важна, правильно ее организовать бывает непросто: разработчики иногда пытаются использовать один и тот же подход ко всем задачам коммуникации, что может быть неэффективно. Важно понимать, что существуют разные способы организации коммуникации, и выбор правильного метода зависит от конкретной задачи. Рассмотрим основные паттерны коммуникации, которые можно использовать для решения разных задач.
☑️ Запрос-ответ с HTTP
Этот синхронный паттерн коммуникации предполагает, что один сервис отправляет запрос другому сервису и ожидает ответа или ошибки, блокируя свою работу до получения результата. REST, наиболее популярный архитектурный стиль для этой модели коммуникации, использует методы протокола HTTP — GET, POST, PUT и DELETE.
Однако использование этого паттерна может привести к проблемам, если сервисы образуют цепочку взаимодействий: в таком случае сбой одного из сервисов может привести к отказу всей операции, а также к расточительному использованию ресурсов и каскадным сбоям.
☑️ Общие данные
Этот паттерн часто остается незамеченным, поскольку разработчики не всегда воспринимают его как модель коммуникации. В рамках этого подхода один компонент записывает данные в определенное место, а другой компонент считывает и обрабатывает эти данные. Например, один сервис может загрузить файл в облачное объектное хранилище (например, в корзину Amazon S3), а другой сервис затем извлекает этот файл для дальнейших действий.
Главное преимущество этого паттерна — простота реализации и возможность обеспечения взаимодействия между устаревшими и современными системами без проблем совместимости. Однако он не подходит для сценариев, требующих низкой задержки.
☑️ Асинхронный запрос-ответ
В отличие от синхронного подхода, запрос-ответ может быть реализован асинхронно и без блокировки. В этом случае получающий сервис должен явно знать место назначения для отправки ответа. Для реализации этого паттерна идеально подходят очереди сообщений, которые позволяют буферизовать несколько запросов.
Основная сложность здесь — корреляция между запросом и ответом: экземпляр сервиса, отправивший запрос, может отличаться от экземпляра, получающего ответ, поэтому требуется способ отслеживания запросов.
☑️ Коммуникация на основе событий
В этом подходе сервисы не общаются напрямую друг с другом, а генерируют события, которые могут быть использованы другими сервисами. Это требует наличия места для отправки данных о событиях и механизма, позволяющего получающим сервисам обнаруживать эти события. Брокеры сообщений, такие как RabbitMQ, могут обрабатывать оба этих аспекта. Издатели используют API для отправки событий в брокер, который управляет подписками и уведомляет подписчиков при поступлении события.
Этот паттерн идеально подходит для создания слабосвязанных взаимодействий между сервисами. Однако брокер сообщений должен обеспечивать надежную доставку событий, их упорядочивание и согласованность. Кроме того, добавляется дополнительный компонент в систему.
📨 Материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.
🔆 Потоковая обработка данных в реальном времени: архитектура на базе Kafka, Flink и Pinot
Системы для потоковой обработки данных обеспечивают непрерывный прием, обработку и анализ информации по мере ее поступления. Их главная цель — предоставление аналитических выводов и принятие решений практически в режиме реального времени.
Такие системы используются, к примеру, для мгновенной персонализации рекламы, анализа поведения пользователей и обнаружения мошеннических действий. Требования к системам очень высоки:
• Низкая задержка — максимально быстрая обработка данных с минимальным временем ожидания.
• Высокая пропускная способность — для обработки больших объемов данных.
• Отказоустойчивость — система должна продолжать работу даже при возникновении сбоев.
Для реализации эффективной системы нужно решить множество серьезных проблем, которые возникают на каждом этапе обработки данных:
Прием данных
• Необходимо работать с разными источниками данных, форматами и структурами.
• Надо поддерживать высокую пропускную способность даже при резких всплесках объема данных.
Обработка
• Каждую запись нужно обработать только один раз.
• Надо реализовать работу со сложными сценариями (вычисления с сохранением состояния; обработку событий, поступивших не по порядку; обработку данных, прибывших с задержкой).
• Все это должно выполняться масштабируемо и отказоустойчиво!
Аналитика в реальном времени
Надо обеспечить:
• Быстрые ответы на запросы к свежим данным.
• Непрерывный прием и обработку данных из потоковых источников.
• Сохранение полноты и согласованности данных.
Пока что не существует одного инструмента, способного выполнять все эти действия. Поэтому архитектуры потоковой обработки в реальном времени обычно состоят из нескольких специализированных инструментов от Apache, работающих вместе:
• Kafka отвечает за надежный прием и передачу данных.
• Flink обеспечивает мощную обработку потоков данных.
• Pinot предоставляет возможности для быстрой аналитики.
На основе этих инструментов можно создать комплексное, гибкое и масштабируемое решение, способное справиться со всеми проблемами, связанными с обработкой данных в реальном времени. Подробнее — в этой публикации.
📨 Материал взят из нашей еженедельной email-рассылки, посвященной бэкенду. Подпишитесь, чтобы быть в числе первых, кто получит дайджест.
🛠 PGlite — WASM-сборка Postgres от ElectricSQL. Она упакована в клиентскую библиотеку TypeScript, которая позволяет запускать Postgres в браузере, Node.js и Bun, без необходимости установки каких-либо других зависимостей.
И да, она занимает всего 3 МБ в gzip-архиве и поддерживает множество расширений Postgres, включая pgvector.
Любите автоматизацию и искусственный интеллект? Создайте и опубликуйте базу данных Postgres с помощью ИИ, созданного на основе PGlite компанией Supabase.
👉 Сайт & GitHub
🎮 Внимание, инди-разработчики и создатели небольших игровых проектов! 🔊
У вас есть уникальный опыт, которым вы хотите поделиться? Мы предлагаем вам отличную возможность!
Напишите статью о вашем проекте и процессе разработки:
• Архитектурные решения и паттерны проектирования
• Оптимизация производительности и решение технических проблем
• Использование новых технологий или фреймворков
• Опыт работы с игровыми движками (Unity, Unreal Engine, Godot и др.)
• Реализация сложных игровых механик
• Алгоритмы ИИ и поведение неигровых персонажей
• Сетевой код и решение проблем многопользовательского режима
• Кроссплатформенная разработка и особенности портирования
• Инструменты и методологии для повышения эффективности разработки
• Опыт внедрения процедурной генерации контента
• Решение проблем с управлением памятью и оптимизацией ресурсов
• Интеграция с внешними сервисами и API
• и т. д.
Мы опубликуем её совершенно бесплатно на нашем сайте и в социальных сетях!
Это ваш шанс:
• Поделиться своим опытом с сообществом
• Получить дополнительное освещение вашего проекта
• Внести вклад в развитие индустрии инди-игр
Не упустите эту возможность рассказать свою историю!
📩 Отправьте вашу идею на hello@proglib.io с темой «Статья от инди-разработчика».
🎯 Коллекция ресурсов для успешного прохождения следующего технического собеса
Добавить можно множество мок-собеседований на русском языке на YouTube.
👉 Источник
⚡️ Machine learning - самый крупный обучающий ресурс в Telegram, посвященный машинному обучению.
По контенту:
1. Разбираем и запускаем за вас самые свежие модели.
2. Составляем ежедневные дайджесты главных релизов и новостей из мира ии и мо, чтобы вы ничего не пропустили.
3. Публикуем бесплатные МЛ курсы 2024 года.
4. 2300 реальных задач с собесов с разбором
5. Учебники для скачивания.
А здесь целая папка для всех, кто любит и изучает машинное обучение.
И многое другое.
Это первоисточник всего, что появляется в платных курсах и популярных ресурсах по МО и ИИ.
Подписывайтесь, такие знания в 2024-м году на вес золота: @ai_machinelearning_big_data
🚀 Ускорьте свою базу данных: 7 проверенных методов масштабирования и оптимизации
Масштабирование улучшает производительность и повышает надежность систем хранения данных путем оптимизации использования ресурсов и распределения нагрузки. В этой статье мы рассмотрим 7 эффективных методов масштабирования и оптимизации базы данных.
🔗 Читать статью
🔗 Зеркало
🆙 Python укрепляет позиции в индексе TIOBE
Вероятно, Python станет самым популярным языком программирования в истории
😒 Почти 80% программистов несчастны на работе
Хотя разрабы хорошо зарабатывают и часто могут работать удаленно, многие все равно недовольны. Недавний опрос айтишников на Stack Overflow (65,4 тысяч разработчиков из 185 стран) выявил несколько любопытных аспектов:
⚡ 32,1% профессиональных программистов ненавидят свою работу.
⚡ 47,7% разработчиков признались, что утратили мотивацию, выгорели и не испытывают никакого энтузиазма.
⚡ Лишь 20,2% утверждают, что вполне довольны своей нынешней работой.
Согласно опросу, основные причины раздражения разработчиков — техдолг и сложность технологического стека, с которым они должны работать. Добавьте к этому постоянную необходимость выполнения задач в нереалистичные сроки, бесконечные совещания и массовые увольнения по всей отрасли... Пожалуй, 80% звучит вполне логично, если не сказать — занижено.
💬 Как думаете, ситуация в России с этим лучше/хуже?
🗑️ Как работает сборщик мусора: наглядная иллюстрация для разработчика
👉 Источник
#инфографика