Точка входа в программирование
20.3K subscribers
1.25K photos
216 videos
2 files
2.77K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Почему процессор и видеокарта не могут заменить друг друга

Задумывались ли вы об отличиях CPU от GPU? Почему нельзя задачу отрисовки передать на тот же или отдельный CPU? Вот краткий ответ:

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

— GPU сконструировано так, чтобы оперировать небольшим количеством однотипных операций, зато одновременно в большом количестве. Это отлично подходит для рендера изображений (например для видеоигр), где кадр за кадром происходит повторяющиеся операции.

Детальней и с демонстрацией о различиях работы, структуры CPU и GPU можно узнать из этого ролика.

@prog_point #теория
11🍌3❤‍🔥2👍1
Урок: Как работает сжатие?

Алгоритмы сжатия – это способ уменьшения объема данных без потери информации. Они полезны при создании протоколов обмена данными, работе с файлами и сохранениями. Такие алгоритмы используются повсеместно, а без них любой обмен данными замедлился в разы.

В этом уроке рассмотрят различные методы сжатия, их избыточность, алгоритмы Хаффмана, а также сжатие с потерями и без:

https://youtu.be/CJFUN6BrkGE?si=cpDz1uFIznvqsKqU

#урок #теория #ru
6🍌2👍1
Статическая и динамическая типизация — кто эти двое и в чём ключевая разница?

Статическая и динамическая типизация — это два основных подхода к обработке типов данных в программировании.

В статической типизации тип данных переменной определяется на этапе написания кода и остаётся неизменным во время выполнения программы.

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

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

@prog_point #general #теория
👍164🍌4
Как работает прокси-сервер: максимально простое объяснение

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

Ловите короткое видео, где простым языком отвечают на следующие вопросы:

— Что такое прокси-сервер?
— Зачем нужен прокси-сервер?
— Какие бывают прокси-сервера?
— Разница между прокси и VPN?
— Когда выбрать VPN, а когда прокси?
— Плюсы и минусы прокси-сервера.

@prog_point #теория
👍52🍌1
ООП в JavaScript на примерах с Фредди Меркьюри

ООП в JavaScript можно представить как конструктор LEGO. Вы создаете кучу кубиков (объектов), каждый со своими специальными функциями и свойствами. А знание ООП помогает вам строить более крепкие и крутые конструкции, используя эти кубики как основные блоки.

Держите простую статью, которая наконец поможет разобраться в основных концепциях ООП на примере с Фредди Меркьюри. Всё с подробными объяснениями и примерами кода.

@prog_point #oop #javascript #теория
❤‍🔥7👍21🍌1
Просто о принципах SOLID

SOLID — это набор правил проектирования, придуманных Робертом Мартином в начале 2000-х, чтобы помочь разработчикам создавать приложения, которые легко поддерживать и расширять. Следуя этим правилам, код становится проще для понимания и внесения изменений.

Эти принципы стали основой современной разработки и используются в таких объектно-ориентированных языках, как Java, C++ и Python. Об этих принципах любят размышлять разработчики и спрашивать на собеседованиях. Следовательно, SOLID — база. А если длинные видеоуроки вам не по душе, то для начала вполне подойдет этот короткий ролик.

@prog_point #solid #теория
👍51🍌1
​​Основы многопоточности

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

Но бывают случае, где без многопоточности точно не обойтись, поэтому разбираться в ней крайней желательно. А поможет в этом статья, где простым языком рассказывают за многопоточность — что, как и почему (на примере Java).

@prog_point #теория #java
👍10🍌1🍓1
Что такое библиотека, фреймворк и чем они отличаются?

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

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

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

@prog_point #теория
👍81🔥1
Бесплатный курс по алгоритмам и структурам данных

Познания в алгоритмах и структурах данных помогают начинающему программисту в эффективном решении задач и оптимизации производительности программ.

Ловите бесплатный интерактивный курс, в котором рассмотрены структуры данных, наиболее часто использующиеся на практике: массивы, списки, очереди, стеки, динамические массивы, очереди с приоритетами, системы непересекающихся множеств, хеш-таблицы, сбалансированные деревья.

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

@prog_point #структуры #алгоритмы #теория
❤‍🔥4🍌1
​​Подборка алгоритмов, которые правят миром

Существует очень много алгоритмов, но какие из них используются в реальной жизни? Вот список конкретных из них, которые используются повсеместно и на которые вам точно стоит обратить внимание:

— Алгоритмы сортировки;
— Преобразование Фурье;
— Алгоритм Дейкстры;
— Алгоритм RSA;
— Алгоритм безопасного хеширования;
— Алгоритм факторизации чисел;
— Анализ связей;
— Пропорционально-интегрально-дифференцирующий алгоритм
— Алгоритм сжатия данных;
— Алгоритм генерации случайных чисел;

Про каждый из этих алгоритмов простым языком рассказывают в этой статье. Так что сохраняйте такой маст хэв.

@prog_point #алгоритмы #general #теория
12👍5❤‍🔥1🍌1