Фундаментальные знания по основам программирования Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/zrgj
Общая теория программирования простыми словами
Слышали о такой? Когда-то её начали развивать, но в какой-то момент просто забыли. И пусть сегодня она не пользуется популярностью, вы можете использовать её в своих задач.
Важным её аспектом является определение подходов для нахождения правильных решений при разработке ПО. Но обо всём по-порядку. В этом небольшом ролике даётся вся нужная информация для понимания основ теории.
#видео #отп
Популярные способы сортировки и визуализация их работы
Существует множество способов отсортировать данные. Ниже вы увидите несколько из них. А выше наглядная демонстрация, как работает каждый способ.
Selection Sort (Сортировка выбором): Находит минимальный элемент в несортированной части массива и перемещает его в начало. Прост, но медленный на больших данных. Сложность сортировки: \( O(n^2) \).
Insertion Sort (Сортировка вставками): Поэлементно добавляет элементы в правильное место в отсортированной части массива. Хорошо работает на почти отсортированных данных. Сложность сортировки: \( O(n^2) \) в худшем случае, \( O(n) \) в лучшем.
Heap Sort (Пирамидальная сортировка): Использует двоичную кучу для последовательного извлечения максимального элемента и его размещения в конце массива. Стабильный алгоритм. Сложность сортировки: \( O(n \log n) \).
Bubble Sort (Пузырьковая сортировка): Попарно сравнивает соседние элементы и меняет их местами, если они в неправильном порядке. Самый простой, но крайне неэффективный метод. Сложность сортировки: \( O(n^2) \).
Cocktail Sort (Коктейльная сортировка): Двусторонний вариант пузырьковой сортировки, проходит массив в прямом и обратном направлении, уменьшая количество проверок. Сложность сортировки: \( O(n^2) \).
Circle Sort (Круговая сортировка): Рекурсивно сравнивает и обменивает элементы, находящиеся на противоположных концах массива, эффективно упорядочивая данные. Сложность сортировки: \( O(n \log n) \) в среднем.
Merge Sort (Сортировка слиянием): Делит массив на части, сортирует каждую часть отдельно и сливает их в один отсортированный массив. Эффективен для больших данных, но требует дополнительной памяти. Сложность сортировки: \( O(n \log n) \).
Quick Sort (Быстрая сортировка): Выбирает опорный элемент, делит массив на элементы меньше и больше него, сортирует их рекурсивно. Один из самых быстрых алгоритмов, но чувствителен к выбору опорного элемента. Сложность сортировки: \( O(n \log n) \) в среднем, \( O(n^2) \) в худшем случае.
Shell Sort (Сортировка Шелла): Улучшение вставок, использующее сортировку с убывающим шагом. Быстрее, чем классические вставки, но зависит от выбора шага. Сложность сортировки: \( O(n^{3/2}) \) в среднем.
#сортировка
Компьютерное зрение на С++
У нас тут периодически бывают статьи про машинное обучение и компьютерное зрение. Но, как правило, все они касаются Python. Сейчас же предлагаю посмотреть на реализацию на C++.
Здесь вы узнаете, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4.
Часть 1
Часть 2
#cpp #cv #ml
Простыми словами: Мультипарадигменное программирование
Следующее на очереди после декларативного программирования у нас программирование, которое объединяет в себе сразу несколько парадигм. Оно позволяет использовать их сильные стороны, обеспечивая гибкость и расширяемость кода. Этот подход особенно подходит для сложных проектов, где разные задачи требуют разных решений. Однако разработчики должны быть внимательны, чтобы избежать чрезмерного усложнения и сохранить читаемость кода.
#простымисловами #парадигмы
Решаем задачу о банкомате
Дано: Банкомат с кассетой, отделения которой заряжены купюрами разных номиналов. Клиент просит банкомат выдать ему определённую сумму. Необходимо найти все варианты выдачи этой суммы минимальным количеством купюр.
Вам кажется, что это легко? Возможно. Тогда попробуйте решить её самостоятельно. А если не получится, то залетайте в статью и посмотрите, как её решает опытный разработчик.
#задача #статья
Архитектурные IT-паттерны в образах строительных решений 🏗
Иногда кажется, что IT и строительство не так уж и далеки друг от друга: там и тут нужны прочный фундамент и хорошая архитектура, а также звучит вечное «давайте переделаем». Представим, как бы выглядели известные IT-паттерны, если бы с ними работали не разработчики, а прорабы 👷♂️
А какие ещё паттерны вы бы добавили в наш строительный IT-город? ♻️
#шерим
Как подросток превратил Twitter в личную машину для кражи денег?
Представьте: аккаунты Илона Маска, Билла Гейтса, Джеффа Безоса и даже Apple начинают публиковать странные твиты про биткоины.
Мир в шоке, миллионы людей в недоумении, а за всем этим стоит... 17-летний парень.
Как он провернул крупнейший взлом соцсетей в истории? Кто ему помогал? И почему даже опытные хакеры аплодировали этой дерзости?
В новом выпуске подкаста «АЙТИ КРАЙМ» мы разбираем взлом, который поставил под удар доверие к крупнейшей платформе и заставил весь мир задуматься: а насколько безопасны наши любимые соцсети?
Слушайте и смотрите новый выпуск:
Яндекс.Музыка
Apple Music
Spotify
YouTube
Telegram
#подкаст #айтикрайм
Lite после 3-х лет пользования Visual Studio Code. Стоит ли и почему?
Lite — это новый легкий редактор кода, созданный на языке Lua, который не является гибридным приложением. Для GUI-элементов тут используются библиотеки С и SDL.
Так чем же он лучше VS Code? Производительностью. Но не только ею. Прочтите эту статью и узнайте все преимущества нового редактора.
#vscode #lite
Создание сайта с адаптивной вёрсткой с нуля
В этом видео вы узнаете, как создать сайт на html
и css
с нуля, также познакомитесь с методологией БЭМ, которая используется во многим проектах. Но самое главное, вы увидите, как правильно сделать адаптивную вёрстку сайта.
Оригинал остался здесь.
#видео #веб #курс
Начинаем игру «Найди шпиона»
Если нашли — ставьте ❤️
Когда потратил несколько часов на оптимизацию кода, а он перестал работать:
Читать полностью…Делаем форму обратного звонка: лендинг, Go и SMS-уведомления
Классный туториал от Екатерины Саяпиной для вашего портфолио. Форма обратного звонка довольно часто используется на сайтах, поэтому умение делать её крайне полезно и может быть отмечено при трудоустройстве.
В этом руководстве вы научитесь не просто верстать блок обратной связи, но и делать бэкенд-часть на Go, работать с Callback и SMS API. Отдельный плюс — для этого вам не нужны сложные фреймворки — только HTML, Go и чуть-чуть JavaScript.
Старт по ссылке: https://habr.com/ru/companies/ru_mts/articles/856232/
#туториал #golang #javascript #html
Полное руководство по Геттерам и Сеттерам в TypeScript
В арсенале многих веб-разработчиков помимо JavaScript присутствует ещё и TypeScript. Во многом он похож на своего старшего брата, но при этом статически типизирован, что влечёт множество нюансов. Один из низ — наличие геттеров и сеттеров для доступа к private и protected свойствам классов и объектов.
В этом видео вы изучите синтаксис методов get, set, а также особенности применения.
#видео #typescript
Как сделать компилятор своими руками
У любого компилятора есть несколько обязательных составляющих. В этой статье вы узнаете для чего нужен лексер, парсер и LLVM, а также как они взаимодействуют между собой. Самое главное вы поймёте, как они превращают исходный код в исполняемый файл и наоборот.
#интересное
Как избежать ошибок новичков, мешающих масштабировать бэкенд
В этой статье автор рассказал, как ему удалось добиться производительности, которая позволила масштабировать бэкенд с 50 тыс. запросов до 1 млн запросов (~16 тыс. запросов в минуту) на GO. Используя минимальные ресурсы: (2 ГБ ОЗУ, 1 В ЦП и минимальная пропускная способность сети 50–100 Мбит/с).
#бэкенд
Системный инженер
ИТ-команда Гринатома ищет системного инженера, который займется сопровождением и развитием единой отраслевой системы электронного документооборота (ЕОСДО).
Предстоит обеспечивать доступность и непрерывность систем, проводить мониторинг работы прикладного ПО, устранять проблемы в функционировании сервисов. Идеальный кандидат имеет опыт администрирования Linux и серверов Java-приложений, уже работал с СУБД и понимает стек протоколов TCP/IP.
Узнайте о вакансии больше
#вакансии
Редактор карт для 2D-игр на Rust
Sprite Fusion — это бесплатный редактор, который работает прямо в браузере. Он позволяет быстро создать необходимый уровень и затем экспортировать его в Unity, Godot, Defold или Flame.
Мастхэв для геймдевелоперов можно пощупать здесь.
#gamedev #rust
Энтузиаст с Reddit создать удобный инструмент для изучения Rust
Rustfinity — это интерактивный тренажёр, который помогает изучать синтаксис и особенности языка. Вы можете читать теорию, а затем закреплять её с помощью задач. Задачи делятся по уровню сложности и тема.
Начать можно бесплатно по ссылке.
#инструмент #rust
Полезная программа для любителей электроники
Wokwi — это симулятор, в котором вы можете собирать схемы на Arduino, ESP32 или Raspberry Pi, писать код для них и смотреть, как это работает в режиме онлайн. Такой подход помогает продумать идею ещё до момента появления у вас деталей. Ну и сразу понять, что вам ещё нужно, что работает, а что нет.
#инструменты #diy
Хорошо ли вы знаете MongoDB? Проверяем в нашем новом квизе
MongoDB — одна из самых популярных NoSQL баз данных. Этот тест поможет вам проверить свои знания о её особенностях и основных принципах работы. Если чувствуете, что нужно освежить знания, рекомендуем ознакомиться с этой статьёй о MongoDB.
Пройти тест
#викторина #mongodb #бд
Почувствуйте себя настоящим хакером в игре Bandit
Это очень интересный проект для хакеров и пентестеров, в котором вам нужно подключиться к удалённой машине, отыскать там ключ к следующей машине и двигаться дальше.
Эта игра будет интересна всем, кто хочет просто понять, как происходят взломы, как работать с консольными командами и вот это вот всё.
Причём устанавливать ничего не нужно. Заходите на сайт проекта, выбирайте level 0 и разбирайтесь в условиях задачи. Когда разберётесь, подключайтесь к серверу по ssh и пробуйте пройти хотя бы первый уровень. Команда для подключения:
ssh -p 2220 bandit0@bandit.labs.overthewire.org
Внимание, важный вопрос!
Если бы ваши данные утекли, что бы вы сделали?
😱 — Обратился бы за помощью
👀 — Попытался бы удалить их
🤔 — Не знаю, это страшно
Топ-5 самых востребованных языков программирования в 2025 году
Каждый год аналитики, институты и профильные ресурсы составляют рейтинг языков программирования. Они опираются на разные данные и делают разные выводы.
Чтобы картина для вас была более объективной, в этой статье собрали несколько таких исследований вместе и выяснили, какие ЯП будут востребованы на рынке в следующем году.
А пока не перешли читать, напишите в комменты какой язык занимает первое место в топе на ваш взгляд.
Разработка Telegram Mini App с помощью React
Telegram Mini App — это веб-приложения, которые открываются внутри мессенджера Telegram. Эти приложения создаются с использованием стандартных веб-технологий, таких как HTML, CSS и JavaScript, и выглядят как обыкновенные сайты.
Сейчас они становятся всё популярнее, поэтому вам точно стоит иметь в запасе навык их создания. В этой статье вы узнаете, как создать собственный Mini App, используя React.
#react #telegram
20 паттернов программирования
Собеседования на позицию разработчика становятся всё сложнее, и чтобы выделиться, нужно не только знать ответы на вопросы, но и понимать их.
В этой статье вы узнаете о 20 ключевых паттернах, которые помогут вам решать задачи на собеседованиях
#статья #советы #собеседование
«Почему я не готовлюсь к алгоритмическому интервью»
Какая цель тестовых задач на знание алгоритмов во время интервью? Правильно, понять, как кандидат мыслит и умеет рассуждать.
Если заучивать алгоритмы и способы решения типовых задач, то есть шанс пройти интервью, ведь интервьюер может не заметить подвоха. Однако, в реальной работе всё вскроется.
Так считает автор этого материала и приводит ещё несколько доводов к своей точке зрения. Какие именно, можно прочитать в статье.
А вы как считаете? Поделитесь в комментариях
Разбираемся в Go за 20 минут
Этот ролик будет полезен новичкам, которые хотят начать изучение программирования с современного и востребованного языка Go.
Само собой, за 20 минут вы не сможете изучить даже сотую долю языка. Зато успете на практике разобраться с синтаксисом языка, основными типами данных, условными конструкциями и циклами. Этих знаний вполне хватит для понимания того, интересен ли вам Go. Вы даже сможете создать первые простые программы на нём.
Хотите больше таких роликов? Тогда ставьте ❤️
#видео #golang
Отличная новость для Data Analyst, Data Engineer и Data Scientist!
16 ноября у вас есть возможность за один день пройти все этапы интервью и получить оффер!
А самое интересное – в One Day Offer примут участие сразу несколько команд Сбера: Сеть Продаж, Стратегия и развитие, Финансы, Marketing AI, блок В2С, Департамент «Занять и сберегать» и СберНадежность. Такое нельзя пропустить!
Команды разрабатывают DS-решения для обслуживания клиентов, поддержки банковских операций, рекламных программ, чат-ботов, умных ассистентов и не только.
Регистрируйтесь и приходите 16 ноября!
Это #партнёрский пост
Кодогенерация в ИТ проектах: автоматизация или потеря контроля?
Кодогенерация ускоряет написание кода, помогает минимизировать ошибки и стандартизировать подходы к созданию программных продуктов. Вот только сохраняется ли при этом контроль над разработкой? Может ли генерация кода привести к потере уникальности и качества создаваемого ПО?
В этом разобрались в нашей новой статье.
История C++
Знаете ли вы, что язык программирования C++
прошёл долгий путь эволюции, начавшийся ещё в 1950-х годах?
Эта увлекательная история начинается с создания FLOW-MATIC
и FORTRAN
, чтобы облегчить программирование для бизнесменов и математиков.
#статья #историяit