Программист практик | уроки программирования | подготовка к собеседованию
134 subscribers
126 photos
3 videos
1 file
21 links
разбор собесов, ответы на вопросы, решение задач

Для связи со мной:
@IvanReshet
Download Telegram
Коллеги, доброго вечера.
Есть два небольших вопроса, для планирования дальнейшего контента. Просьба ответить на них, для меня это очень важно!)
Вопрос 1. Какое направление в веб-разработке вас интересует в большей степени?
Anonymous Poll
41%
Backend
21%
Frontend
38%
Fullstack
Вопрос 2. На днях я отвечал на вопросы в аудио формате. Насколько хорошо воспринимается материал в таком виде?
Anonymous Poll
44%
Отлично
39%
Хорошо
17%
Плохо
Коллеги, всем привет!)
Сегодня будет одна из фундаментальных тем в С++. Поговорим про динамические массивы.
🤩6🤣4🔥1😐1
Всем, привет. Давайте поговорим про оператор new.
В C++ он используется для динамического выделения памяти в heap.
Зачем динамическая область памяти?
Все очень просто. Если вы создаёте статический массив, то обязаны использовать константное значение для указания его размера, но мы не всегда знаем заранее какое количество элементов будет в массиве. Тут на помощь приходит new.
Помимо массива мы можем использовать new и для одиночных объектов. Разберём подробнее.


1. Выделение памяти под одиночный объект:
T* ptr = new T;

где T - тип данных, под который выделяется память, а ptr - указатель на этот объект.

2. Выделение памяти под массив объектов:
T* arr = new T[size];

где T - тип данных, а size - количество элементов в массиве.

Для освобождения памяти, выделенной оператором new, используется оператор delete для одиночного объекта и delete[] для массива объектов:
delete ptr; // освобождение памяти одиночного объекта
delete[] arr; // освобождение памяти массива объектов


Оператор new и оператор delete требуют осторожного использования, так как неправильное управление памятью может привести к утечкам памяти.
В современном C++ также рекомендуется использовать умные указатели, такие как std::unique_ptr и std::shared_ptr, для более безопасного управления динамической памятью.
👍4🔥3
Всем, привет. Пока наши мозги окончательно не растаяли от жары, порешаем задачки) В комментариях опишите свое состояние в эту жару (можно и мемчиками).
👍3🔥1
Задача 1: Палиндром
(Уровень - лёгкий)

Дано целое число x, вернуть true, если число является палиндромом. Палиндром — это число, которое читается одинаково как слева направо, так и справа налево. Например, 121 — палиндром, а 123 — нет.

Примеры:
Input: x = 121
Output: true

Input: x = -121
Output: false
Explanation: Символ минус делает число не палиндромом.

Input: x = 10
Output: false
Explanation: Поскольку ноль в конце числа, оно не является палиндромом.

⬇️ Решение пишите в комментариях. ⬇️
👀1
Задача 2: Наибольшая возрастающая подпоследовательность
(Уровень - сложный)

Описание задачи:
Дан массив целых чисел. Найти длину наибольшей возрастающей подпоследовательности (не обязательно подряд идущих элементов).

Пример:
Input: [10, 9, 2, 5, 3, 7, 101, 18]
Output: 4
Explanation: Наибольшая возрастающая подпоследовательность: [2, 3, 7, 101], длина = 4
Другие возрастающие подпоследовательности данного массива:
10, 101
10, 18
9, 101
9, 18
2, 5, 7, 101
2, 5, 7, 18
и т.д.

⬇️ Решение пишите в комментариях. ⬇️
Доброе утро!)
Вот есть такой мемчик, и напрашивается вопрос. А почему так? Почему в ру сегменте не так много годного контента по java? Думаю стоит исправлять эту проблему. Посмотрим как пойдет) Для меня это будет новый опыт и можно будет назвать это неким "вызовом")) А пока поговорим о грядущих темах. На этой неделе поговорим про девопс.
🔥3🤓3👏1
Всем, привет!
Для начала, давайте поговорим про профессию DevOps.
Иногда говорят что DevOps это по модному сис. админ. И да и нет.

Что делает сис. админ?
- обновление и установка ПО
- инвентаризация
- настройка и поддержка сети, серверов
- настройка, подключение и поддержка видеонаблюдения
- настройка и поддержание стабильной работы всей it-инфраструктуры компании

Что делает DevOps?
- основная задача - это автоматизация процесса разработки, тестирования и развертывания приложения
(данный процесс включает в себя достаточно обширный список задач и компетенций)
🔥3👍2
Всем, привет!)
Сегодня сравним несколько облачных сервисов для размещения ваших сайтов и программ.☁️
👍4🔥3🤩2
Давайте поговорим об импортозамещении в облачных сервисах.
Как вы знаете, сейчас есть проблемы с оплатой и размещением информации на зарубежных ресурсах.

Чем мы пользовались раньше:
- aws
- azure
- google cloud

Какие есть альтернативы сейчас:
- Яндекс облако
- VK облако
- selectel
- МТС
- Сбербанк облако
😢7
Ну и ладно!)) Разберемся с тем, что у нас есть и найдем подходящее решение. Будем планомерно со всеми сервисами знакомиться на практике. Поэтому, следим за каналом.
И не забывайте рекомендовать канал друзьям! Чем нас больше, тем больше это мотивирует меня делать контент!)
9
Коллеги, привет!)
Сегодня начинаем делать небольшой проект для получения опыта работы с облачными сервисами.
У нас будет отдельно написанный фронт и бэк.
Сделаем тестовое приложение, о котором я расскажу немного позже, и попробуем развернуть его на перечисленных ранее облачных сервисах.
😁4🔥2🤔2
Итак, коллеги. Попробую немного хайпануть.
🔥 Это будет написание всем известного "хомяка". 🔥
У нас будет своя веб версия.
Выходим на новый уровень!
Здесь я буду рассказывать о нюансах разработки, а весь процесс вы сможете увидеть на моем youtube канале.
Не забываем подписываться, чтобы не пропустить самое интересное! ⬇️
https://www.youtube.com/@WebWoodProg
🔥9🤯5👌2
Коллеги, всем привет! С Новым 2025 Годом.❄️
В прошлом году я немного сменил акцент с ведения канала на прокачку своих скиллов. И сейчас мы с командой разрабатываем очень интересную образовательную платформу, анонс которой в скором времени появится на канале. Еще, я очень соскучился по написанию разных статей и постов, поэтому периодически буду здесь публиковать что то интересное и полезное. А так же, на этом канале я буду вести дневник разработки проекта!) В этом году нас ждёт много интересного!) Очень рад вернуться к вам ☃️
❤‍🔥14🍾8👍7🔥4
Коллеги, доброе утро!)
На этой неделе нашей команде предстоит первый деплой проекта🌋
Поэтому, самое время поговорить об этом) Что это такое и как оно готовится!) Ждите об этом постик!)
🔥104👍1👏1
Начнем с того, что такое деплой.
Деплой (deploy) - это процесс развертывания на сервере приложения.
Его можно разбить на несколько этапов:
1. Подготовка окружения. Настройка облачного или локального сервера, установка всех необходимых библиотек и фреймворков.
2. Настройка бд. Создание структуры таблиц, настройка связей и начальных данных, а также прав для доступа.
3. Сборка приложения. Компиляция кода и подготовка его к запуску. Также сюда можно отнести и настройку процесса обновления кода из git.
4. Тестирование. Включение юнит и интергационных тестов. А также тестирование UI.
5. Деплой. Развертыванин приложения. Обычно настраивают так, чтобы это происходило автоматизированно ( CI/CD)
6. Мониторинг и поддержка. Для отслеживания работы приложения и поиска проблем есть различные инструменты (например Grafana)
7. Обратная связь и интеграции. Получение обратной связи от пользователей позволяет оперативно реагировать на проблемы использования продукта и вносить вовремя улучшения.
👍9❤‍🔥4💋1
▎Реализации первого этапа

При реализации первого этапа я столкнулся с важным выбором: развернуть сервер локально или воспользоваться облачными решениями.

Сначала я подумал о локальном сервере. Однако, у этого варианта есть несколько нюансов:

1. Непрерывная работа: Мне нужен был компьютер, который работал бы нон-стоп.

2. Безопасность данных: Необходимо было обеспечить защиту данных (репликация, фаервол и другие меры безопасности).

3. Удалённый доступ: Потребовался бы статический IP-адрес для постоянного доступа к машине.

После размышлений я понял, что это слишком много геморроя. Поэтому решил поискать варианты в интернете, что-то вроде хостинга. Однако стандартные варианты хостинга для сайтов не подходили, поскольку мне нужно было развернуть целое приложение на микросервисах с использованием Kubernetes и Jenkins (об этом мы поговорим позже).

Хотя облачные решения предлагают такие возможности, цены на них были довольно высокими. А мне нужно было что-то бесплатное! 😁 Кроме того, я хотел сам поковырять весь процесс DevOps.

В итоге мой выбор пал на VPS (Virtual Private Server). Это ресурсы ПК, предоставляемые провайдером хостинга через интернет, обычно с установленной ОС (в нашем случае Linux Server) и статическим IP-адресом.

После долгих поисков я наткнулся на облачное решение от Сбера — их "Free Tier". У него были неплохие стартовые ресурсы:

Количество vCPU: 2

Объем RAM: 4 ГБ

Диск NVMe: 30 ГБ

Это выглядело очень привлекательно. Единственным минусом оказалось то, что за статический IP-адрес пришлось заплатить около 150 рублей в месяц. Но это копейки по сравнению с тем, что предлагали другие компании за аналогичные ресурсы.

Я выкупил эту услугу, настроил сервер и установил MicroK8s (позже расскажу, почему выбрал его вместо стандартного Kubernetes). Потребовалось немало усилий, чтобы настроить графический интерфейс для Kubernetes и обеспечить удалённый доступ.

Но вскоре я узнал, что если я не буду постоянно оплачивать статический IP, все мои данные удалят спустя месяц.

После этой информации я решил плюнуть на VPS — не хочу зависеть от других! Вернусь к плану А и разверну свой сервер локально. И понеслась...

Но это уже другая история! Продолжение следует...
🔥131