Библиотека программиста | программирование, кодинг, разработка
82.6K subscribers
3.87K photos
182 videos
89 files
6.92K links
Все самое полезное для программиста в одном канале.

По рекламе: @proglib_adv

Курс по ML: https://clc.to/eLH_zQ

Другие курсы: https://clc.to/goHZHA

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5ba2901234b69883a4d46
Download Telegram
🗄️ Векторные базы данных: наглядная иллюстрация от ByteByteGo

Векторные БД появились не так давно, чтобы помочь в работе поисковых систем, основанных не на ключевых словах, а на нейронных сетях. Они имеют несколько ключевых применений в ИИ:

🔎 Семантический поиск — получение информации на основе смысла, а не только ключевых слов.
💡 Рекомендации — предложение контента, который наиболее релевантен интересам пользователя.
⚒️ Большие языковые модели — понимание слов в контексте для генерации и суммирования.
📈 Обнаружение аномалий — идентификация аномальных точек данных по сравнению с нормой.
🖼️ Классификация изображений — категоризация изображений на основе визуальных свойств.

Векторные БД позволяют моделям машинного обучения устанавливать связи между частями данных. Это поддерживает продвинутые возможности ИИ, которые невозможны при использовании только сырых данных. Векторное пространство действует как своего рода «память» для алгоритмов.

#инфографика
👍17🔥31
🤖📜 Искусственный интеллект: краткая история

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

Подробнее о том, как мы докатились до создания искусственного интеллекта, читайте в статье 👀
10👍2
💡 Каждый шаг вперёд в области вычислительной техники сопровождался достижениями в области отображения и редактирования кода. Появление графических пользовательских интерфейсов привело к появлению интегрированных сред разработки.

🧑‍💻 Даже сегодня у нас ограниченные возможности, когда мы хотим добавить дополнительный смысл к коду. Подсветка синтаксиса была изобретена в 1982 году, чтобы помочь детям программировать на BASIC. Но помимо цветов, большинство редакторов должны общаться с разработчиками через свои интерфейсы — всплывающие подсказки, подчёркивания и так далее.

🤔 К чему всё это? Недавно команда Vercel представила новый шрифт Geist, а ребята из GitHub пошли еще дальше — анонсировали появилась команда GitHub Next с целым семейством шрифтов Monaspace. Новые шрифты предлагают более выразительную палитру для кода и инструментов, с которыми вы работаете.

💬 Как вам?

🔥 — огонь
🥰 — пойду скачивать
🤔 — да как-то пофиг на шрифты
🤔44🔥24🥰10🥱63
Программирование — это не просто работа, это образ жизни и страсть для многих людей. Кто-то находит в кодинге творчество, кто-то — интересные задачи и возможности для саморазвития.

Расскажите, что именно вдохновляет вас писать код и создавать новые программы.

👉Опрос тут👈
👍133🤔3🥱3🔥1
rust.pdf
101.3 KB
🦀 Отличная новость для начинающих и начавших Rust-разрабов!

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

#roadmap #rust
👍18😁5
💻 Комфортный сетап и качественное рабочее пространство — это то, что прямо пропорционально влияет на вашу продуктивность. Кто-то тратит на всё это очень большие деньги, а кому-то вообще по барабану, в какой монитор смотреть, на чём сидеть и на что нажимать.

В любом случае эта тема важная и интересная. Смотрите подкаст «Мы обречены» о том, как собрать идеальное рабочее место для программиста:

📺 02:58 — Представление гостей
📺 05:31 — Значение и смысл личного и рабочего комфорта
📺 16:23 — Поднимающийся стол
📺 23:16 — Стул
📺 30:23 — Монитор
📺 45:23 — Клавиатура
📺 1:08:51 — Мышка
📺 1:15:28 — Странные бесполезные устройства
📺 1:21:33 — Умный дом
📺 1:47:52 — Важность комфорта для продуктивности
📺 1:58:07 — С чего начать в осваивании комфорта
📺 2:02:32 — Обнадеживающее аутро

#подкасты
👍14
🗣Можно напевать после очередного отказа...

#жиза
😁69🥱6👾5👍1
😈 Самые черные скидки в академии. -50% на курсы

🔥 В честь черной пятницы до 30 ноября мы запустили масштабную распродажу на все наши курсы – https://proglib.io/w/80fc1817

На всех курсах вас ждет:

⚫️ Лучший преподавательский состав.
Например, математику вам будут преподавать доценты ВМК МГУ. А алгоритмы разработчик из Яндекса и преподаватель МФТИ и НИУ ВШЭ.

⚫️ Бессрочный доступ ко всем курсам.
А это значит, что вы сможете проходить обучение в своем темпе, без жестких дедлайнов.

⚫️ Поддержка преподавателей в чате и на платформе Coreapp.
Вам всегда помогут разобраться в сложной теме и ответят на любые вопросы.

👉 А если вы сомневаетесь подходит ли вам курс, то вы можете начать изучение с бесплатных вводных занятий, чтобы познакомиться с преподавателями и форматом обучения.

Переходите на сайт и оставляйте заявку на вводные занятия – https://proglib.io/w/80fc1817

До встречи на обучении 🙌
🤔31👍1
Хочу вас огорчить, программисты не делают игры — их делают дизайнеры и арт...

— правдивое начало статьи о разработке в геймдеве.

🤔 Можно уволить программиста, на его место придет другой и через условные месяц-два-полгода начнет закрывать таски не хуже. Если увольняется дизайнер, его монстр, пушка или контент повисает без хозяина и без «видения». Если её не перехватил сосед (а у соседа свой монстр), то в большинстве случаев его работа просто уходит в стол и монстра пишут заново на тех же ассетах и принципах, но заново.

🤯 Это не поток мыслей, а мнение и опыт автора статьи и разработчика игр в Ea Spb. И как вы уже поняли, этот материал об обратной стороне любви к играм и том, что из себя представляет геймдев в конкретной компании. 

💬 Ситуация в других компаниях может отличаться. Если у вас есть положительный опыт, поделитесь в комментариях👇
👍13🥱53😁2🌚1
🔢 Как научиться решать сложные задачи

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

Ещё больше книг, а также курсы, игры, методики и приложения — в нашей статье 👈
👍171
☝️🚀 Рейтинг Low Code опенсорсных инструментов разработки за последние 28 дней

🔝 Топ-5 в нашей подборке:

1️⃣ AppFlowy-IO/AppFlowy — альтернатива Notion на Flutter и Rust. Вы отвечаете за свои данные и настройки.
2️⃣ supabase/supabase — альтернатива Firebase. Один из самых быстрорастущих проектов на GitHub.
3️⃣ refinedev/refine — основанный на React фреймворк для создания внутренних инструментов, панелей администратора, информационных панелей и приложений B2B с акцентом на гибкость.
4️⃣ n8n-io/n8n — расширяемый инструмент автоматизации рабочих процессов.
5️⃣ appwrite/appwrite — end-to-end бэкенд сервер для веб-, мобильных, нативных или серверных приложений, упакованный в виде набора микросервисов Docker.

#инструменты
🤔16👍52
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈
👍93
🤔 Переосмысление привычных нам уровней разработчиков (junior, middle, senior)

Автор делится видением уровней разработчиков, в которых главный критерий разделения — способность решать проблемы. По его классификации 2-й и 4-й уровни дают предсказуемый результат эффективным способом, отличается только сложность решаемой проблемы:

1️⃣ Простое решение проблем случайным образом
2️⃣ Простое решение простых проблем
3️⃣ Решение сложных проблем случайным образом
4️⃣ Простое решение сложных проблем

По сравнению с классическим набором уровней эти уровни:

☑️ Более прозрачны
☑️ Измеримы
☑️ Соотносятся с опытом
☑️ Соответствуют ожиданиям

👉 Подробнее о каждом уровне с примерами читайте в статье
👍32🤔62
🛠 Как проектировать REST API: полезные советы для разработчика

1. Используйте существительные во множественном числе для обозначения коллекций.

# Хорошо
GET /products
GET /products/{product_id}

# Плохо
GET /product/{product_id}


2. Не добавляйте ненужные пути в структуру URL-адресов.

# Хорошо
GET /v3/application/listings/{listing_id}

# Плохо
PATCH /v3/application/shops/{shop_id}/listings/{listing_id}


3. Не добавляйте .json или другие расширения к URL-адресу.

4. Не возвращайте массивы в качестве ответов верхнего уровня от эндпоинтов. Верхний уровень ответа должен быть объектом, а не массивом, чтобы обеспечить обратную совместимость и возможность добавления пагинации.

# Хорошо
GET /things returns:
{ "data": [{ ...thing1...}, { ...thing2...}] }

# Плохо
GET /things returns:
[{ ...thing1...}, { ...thing2...}]


5. Не возвращайте структуры map. Вместо этого используйте массивы объектов, чтобы избежать проблем при работе с типизированными языками и не усложнять обработку данных.

# Хорошо
GET /things returns:
{
"data": [
{ "id": "KEY3", "foo": "bat" }
]
}

# Плохо
GET /things returns:
{
"KEY3": { "id": "KEY3", "foo": "bat" }
}


6. Используйте строки для всех идентификаторов.

# Хорошо
{ "id": "123" }

# Плохо
{ "id": 123 }


7. Добавляйте префиксы к идентификаторам. Это улучшает читаемость API и помогает различать разные типы идентификаторов.

8. Не используйте 404 для обозначения "not found". Вместо этого рекомендуется использовать другие коды ошибок, чтобы точно указать на отсутствие ресурса.

9. Будьте последовательными. Несоответствие в схемах и структурах может вызвать путаницу и усложнить работу с API.

10. Используйте структурированный формат ошибок. Это облегчает отладку и обработку ошибок на разных уровнях системы.

11. Обеспечьте механизмы идемпотентности. Это важно для предотвращения дублирования операций в условиях нестабильной сети.

12. Используйте строки ISO8601 для временных меток. Строковое представление времени более читаемо и удобно для работы.

👉 Подробнее

#проектирование_систем
👍548🤔2❤‍🔥1🔥1