Полное практическое руководство по Docker: с нуля до кластера на AWS
Докер позволяет разработчикам, системными администраторам и другим специалистам деплоить их приложения в отдельных контейнерах, которых может быть много на одной машине. Причём у каждого контейнера может быть своя ОС и набор конфигураций, отличные от остальных. Чем-то это похоже на виртуальные машины, но при этом меньше нагружают систему и требует меньше ресурсов.
В этом руководстве вы сможете не только разобраться с устройством докера, но и создавать первые рабочие контейнеры.
#docker #aws
Докер позволяет разработчикам, системными администраторам и другим специалистам деплоить их приложения в отдельных контейнерах, которых может быть много на одной машине. Причём у каждого контейнера может быть своя ОС и набор конфигураций, отличные от остальных. Чем-то это похоже на виртуальные машины, но при этом меньше нагружают систему и требует меньше ресурсов.
В этом руководстве вы сможете не только разобраться с устройством докера, но и создавать первые рабочие контейнеры.
#docker #aws
Media is too big
VIEW IN TELEGRAM
Проект по блокчейну для начинающих С++ разработчиков
Это увлекательное путешествие в мир программирования и криптографии, где сложные концепции преподносят простым и понятным языком.
Видео включает в себя основы майнинга и транзакций. Автор также демонстрирует процесс программирования блокчейна, обеспечивая практическое понимание темы.
#видео #блокчейн #cpp
Это увлекательное путешествие в мир программирования и криптографии, где сложные концепции преподносят простым и понятным языком.
Видео включает в себя основы майнинга и транзакций. Автор также демонстрирует процесс программирования блокчейна, обеспечивая практическое понимание темы.
#видео #блокчейн #cpp
Методы сжатия данных: алгоритмы и инструменты
Сжатие используется повсеместно. Оно нужно, чтобы обмениваться информацией в интернете, компактно сохранять файлы на телефоне и много для чего ещё.
В этой статье мы рассмотрели основные алгоритмы и инструменты для сжатия данных. Рекомендуем прочитать, как минимум, для расширения кругозора.
Кстати, на идее сжатия данных даже построен сюжет сериала «Кремниевая долина». Рекомендую к просмотру, если ещё не смотрели.
Сжатие используется повсеместно. Оно нужно, чтобы обмениваться информацией в интернете, компактно сохранять файлы на телефоне и много для чего ещё.
В этой статье мы рассмотрели основные алгоритмы и инструменты для сжатия данных. Рекомендуем прочитать, как минимум, для расширения кругозора.
Кстати, на идее сжатия данных даже построен сюжет сериала «Кремниевая долина». Рекомендую к просмотру, если ещё не смотрели.
Простыми словами: Полиморфизм в ООП
Вот мы и добрались до заключительной парадигмы в ООП. Напомню, что наследование, абстракцию и инкапсуляцию можно прочитать выше или по тегу #простымисловами
Давайте же разберём подробно концепцию полиморфизма в объектно-ориентированном программировании (ООП) с примерами кода.
Полиморфизм — это концепция ООП, позволяющая использовать один и тот же интерфейс для разных типов объектов. Он позволяет объектам разных классов обрабатывать вызовы методов с одинаковыми именами, предоставляя каждым свой уникальный подход к реализации.
Зачем нужен полиморфизм?
1. Унификация интерфейсов позволяет использовать один интерфейс для взаимодействия с различными типами объектов.
2. Гибкость и расширяемость упрощает добавление нового функционала, так как новые классы могут использовать существующие интерфейсы.
3. Упрощение кода позволяет писать более общий и универсальный код.
Как это выглядит в коде?
В Python полиморфизм часто достигается через методические перегрузки и наследование:
В этом примере метод
В Java полиморфизм достигается через интерфейсы и абстрактные классы:
Здесь абстрактный метод
Давайте теперь посмотрим примеры кейсов, где может быть актуален полиморфизм:
1. Фигуры
Предположим, у нас есть несколько различных фигур, и мы хотим рассчитать их площадь. Полиморфизм позволяет нам использовать один интерфейс для разных типов фигур.
2. Платежные системы
Используем полиморфизм для различных способов проведения платежей.
Полиморфизм — ключевая концепция ООП. Он делает ваш код более универсальным и удобным для использования и расширения. Это особенно полезно, когда ваш проект растёт и требует поддержки различных типов объектов.
#простымисловами #ооп #полиморфизм
Вот мы и добрались до заключительной парадигмы в ООП. Напомню, что наследование, абстракцию и инкапсуляцию можно прочитать выше или по тегу #простымисловами
Давайте же разберём подробно концепцию полиморфизма в объектно-ориентированном программировании (ООП) с примерами кода.
Полиморфизм — это концепция ООП, позволяющая использовать один и тот же интерфейс для разных типов объектов. Он позволяет объектам разных классов обрабатывать вызовы методов с одинаковыми именами, предоставляя каждым свой уникальный подход к реализации.
Зачем нужен полиморфизм?
1. Унификация интерфейсов позволяет использовать один интерфейс для взаимодействия с различными типами объектов.
2. Гибкость и расширяемость упрощает добавление нового функционала, так как новые классы могут использовать существующие интерфейсы.
3. Упрощение кода позволяет писать более общий и универсальный код.
Как это выглядит в коде?
В Python полиморфизм часто достигается через методические перегрузки и наследование:
class Животное:
def издать_звук(self):
raise NotImplementedError("Этот метод должен быть реализован в подклассе")
class Кот(Животное):
def издать_звук(self):
print("Мяу!")
class Собака(Животное):
def издать_звук(self):
print("Гав!")
животные = [Кот(), Собака()]
for животное in животные:
животное.издать_звук() # Output: Мяу! Гав!
В этом примере метод
издать_звук
вызывается для объектов различных классов (Кот
и Собака
), и каждый объект реализует этот метод по-своему.В Java полиморфизм достигается через интерфейсы и абстрактные классы:
abstract class Животное {
abstract void издатьЗвук();
}
class Кот extends Животное {
@Override
void издатьЗвук() {
System.out.println("Мяу!");
}
}
class Собака extends Животное {
@Override
void издатьЗвук() {
System.out.println("Гав!");
}
}
public class Main {
public static void main(String[] args) {
Животное[] животные = { new Кот(), new Собака() };
for (Животное животное : животные) {
животное.издатьЗвук(); // Output: Мяу! Гав!
}
}
}
Здесь абстрактный метод
издатьЗвук
реализуется в классах Кот
и Собака
, и тот же метод вызывает различные реализации в зависимости от объекта.Давайте теперь посмотрим примеры кейсов, где может быть актуален полиморфизм:
1. Фигуры
Предположим, у нас есть несколько различных фигур, и мы хотим рассчитать их площадь. Полиморфизм позволяет нам использовать один интерфейс для разных типов фигур.
class Фигура:
def площадь(self):
raise NotImplementedError("Этот метод должен быть реализован в подклассе")
class Круг(Фигура):
def __init__(self, радиус):
self.радиус = радиус
def площадь(self):
return 3.14159 * self.радиус ** 2
class Прямоугольник(Фигура):
def __init__(self, ширина, высота):
self.ширина = ширина
self.высота = высота
def площадь(self):
return self.ширина * self.высота
фигуры = [Круг(5), Прямоугольник(3, 4)]
for фигура in фигуры:
print(f"Площадь: {фигура.площадь()}")
2. Платежные системы
Используем полиморфизм для различных способов проведения платежей.
class Платеж(ABC):
@abstractmethod
def провести_платеж(self, сумма):
pass
class КредитнаяКарта(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} с кредитной карты")
class PayPal(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} через PayPal")
платежи = [КредитнаяКарта(), PayPal()]
for платеж in платежи:
платеж.провести_платеж(100)
Полиморфизм — ключевая концепция ООП. Он делает ваш код более универсальным и удобным для использования и расширения. Это особенно полезно, когда ваш проект растёт и требует поддержки различных типов объектов.
#простымисловами #ооп #полиморфизм
Какой из следующих примеров наилучшим образом демонстрирует использование полиморфизма через переопределение методов (method overriding)?
Anonymous Quiz
70%
Класс Animal с методом makeSound() и его подклассы Dog и Cat, переопределяющие метод makeSound()
10%
Использование разных конструкторов класса Person для создания объектов с разными параметрами
13%
Класс Calculator с методами add(int, int) и add(double, double)
7%
Класс с приватными методами, которые вызываются через публичные методы
Знакомимся с Data Science и машинным обучением
Делать мы это будем с помощью бесплатного курса, который включает 30 уроков, 54 теста и 21 задачу. В рамках курса вы изучите основные теоретические понятия, а также познакомитесь с библиотеками Pandas и Scikit-learn — наиболее популярными инструменатами для анализа данных и машинного обучения, используя язык программирования Python.
Этих знаний более чем достаточно для старта в этой области. А начать можно уже сейчас по ссылке.
#курс #datascience #ml
Делать мы это будем с помощью бесплатного курса, который включает 30 уроков, 54 теста и 21 задачу. В рамках курса вы изучите основные теоретические понятия, а также познакомитесь с библиотеками Pandas и Scikit-learn — наиболее популярными инструменатами для анализа данных и машинного обучения, используя язык программирования Python.
Этих знаний более чем достаточно для старта в этой области. А начать можно уже сейчас по ссылке.
#курс #datascience #ml
Media is too big
VIEW IN TELEGRAM
Архитектура ПО для маленьких и... не сообразительных
Я не буду писать полное название видео, если хотите, то можете посмотреть по ссылке. Скажу лишь, что такой способ подачи информации иногда гораздо доходчивее сложных объяснений.
Если хотите понять, как лучше строить архитектуру и чего избегать, то лучше, чем человек с горящим... задом от современных архитекторов, не расскажет никто. Видео небольшое, но полезное.
#видео
Я не буду писать полное название видео, если хотите, то можете посмотреть по ссылке. Скажу лишь, что такой способ подачи информации иногда гораздо доходчивее сложных объяснений.
Если хотите понять, как лучше строить архитектуру и чего избегать, то лучше, чем человек с горящим... задом от современных архитекторов, не расскажет никто. Видео небольшое, но полезное.
#видео
Простыми словами: Зерокодинг
Многие хотят в IT, но не всех привлекает написание кода. Таким людям можно попробовать себя в зерокодинге.
Зерокодинг — это метод создания IT-решений без написания кода. Представьте себе, что вы собираете из конструктора дома модели, используя готовые блоки. Так и здесь: программисты используют платформы и инструменты, которые позволяют создавать сайты, приложения и автоматизировать бизнес-процессы, не погружаясь в детали программирования.
Основное отличие зерокодинга от обычного программирования в том, что вам не нужно писать код вручную. Вместо этого используются визуальные редакторы и конструкторы, где вы собираете компоненты, задавая функции и связи между ними. Это ускоряет процесс разработки и упрощает создание стандартных решений.
Сегодня профессии, связанные с зерокодингом, становятся всё более популярными. Зерокодеры работают с различными платформами: создают сайты на Tilda и Webflow, сборки опросов на Typeform, и даже приложения на Glide или Adalo. Их задача — понять, какие задачи нужно решить, и выбрать подходящий инструмент для этого.
Давайте немного поговорим о том, сколько такие специалисты могут зарабатывать.
Доход зерокодеров в России может варьироваться в зависимости от их навыков и опыта. В среднем, как показывает практика, начинающие могут зарабатывать от 50 000 до 80 000 рублей в месяц. Более опытные специалисты, которые могут интегрировать сложные составляющие и автоматизировать бизнес-процессы, могут получать от 100 000 рублей и выше.
Разумеется зерокодинг имеет свои плюсы и минусы, поэтому стоит учитывать их, если решите попробовать себя в этом направлении.
Плюсы:
— скорость разработки. Можно создать работающий продукт за считанные часы или дни;
— доступность. Не нужно иметь глубокие знания в программировании, подойдёт начинающим;
— экономия ресурсов. Дешевле, чем разработка с нуля с вовлечением команды программистов;
— тестирование гипотез. Удобно для быстрого прототипирования и проверки идей.
Минусы:
— ограниченная гибкость. Возможности платформ ограничены их функциями и шаблонами;
— сложности с масштабированием. Большие и сложные проекты могут потребовать перехода на полноценное программирование;
— зависимость от платформы. Если платформа изменяет условия или прекращает работу, можно потерять проект или данные.
Зерокодинг отлично подходит для малого и среднего бизнеса, стартапов, а также для тех, кто хочет заняться разработкой IT-решений быстро и без больших затрат. Однако для крупных и уникальных проектов, как правило, всё же требуется классическое программирование.
А вы хотели бы попробовать себя в этом?
🗿 — только код, только хардкор
❤️ — выглядит интересно и не так сложно, как обычное программирование. Я бы попробовал
🤔 — а можно просто денег и не работать?
#простымисловами #зерокодинг
Многие хотят в IT, но не всех привлекает написание кода. Таким людям можно попробовать себя в зерокодинге.
Зерокодинг — это метод создания IT-решений без написания кода. Представьте себе, что вы собираете из конструктора дома модели, используя готовые блоки. Так и здесь: программисты используют платформы и инструменты, которые позволяют создавать сайты, приложения и автоматизировать бизнес-процессы, не погружаясь в детали программирования.
Основное отличие зерокодинга от обычного программирования в том, что вам не нужно писать код вручную. Вместо этого используются визуальные редакторы и конструкторы, где вы собираете компоненты, задавая функции и связи между ними. Это ускоряет процесс разработки и упрощает создание стандартных решений.
Сегодня профессии, связанные с зерокодингом, становятся всё более популярными. Зерокодеры работают с различными платформами: создают сайты на Tilda и Webflow, сборки опросов на Typeform, и даже приложения на Glide или Adalo. Их задача — понять, какие задачи нужно решить, и выбрать подходящий инструмент для этого.
Давайте немного поговорим о том, сколько такие специалисты могут зарабатывать.
Доход зерокодеров в России может варьироваться в зависимости от их навыков и опыта. В среднем, как показывает практика, начинающие могут зарабатывать от 50 000 до 80 000 рублей в месяц. Более опытные специалисты, которые могут интегрировать сложные составляющие и автоматизировать бизнес-процессы, могут получать от 100 000 рублей и выше.
Разумеется зерокодинг имеет свои плюсы и минусы, поэтому стоит учитывать их, если решите попробовать себя в этом направлении.
Плюсы:
— скорость разработки. Можно создать работающий продукт за считанные часы или дни;
— доступность. Не нужно иметь глубокие знания в программировании, подойдёт начинающим;
— экономия ресурсов. Дешевле, чем разработка с нуля с вовлечением команды программистов;
— тестирование гипотез. Удобно для быстрого прототипирования и проверки идей.
Минусы:
— ограниченная гибкость. Возможности платформ ограничены их функциями и шаблонами;
— сложности с масштабированием. Большие и сложные проекты могут потребовать перехода на полноценное программирование;
— зависимость от платформы. Если платформа изменяет условия или прекращает работу, можно потерять проект или данные.
Зерокодинг отлично подходит для малого и среднего бизнеса, стартапов, а также для тех, кто хочет заняться разработкой IT-решений быстро и без больших затрат. Однако для крупных и уникальных проектов, как правило, всё же требуется классическое программирование.
А вы хотели бы попробовать себя в этом?
🗿 — только код, только хардкор
❤️ — выглядит интересно и не так сложно, как обычное программирование. Я бы попробовал
🤔 — а можно просто денег и не работать?
#простымисловами #зерокодинг
8 неэффективных практик JavaScript, которых лучше избегать
Самая большая ответственность каждого программиста заключается в том, чтобы написанный им код был легко тестируемым и сохранял работоспособность с течением времени.
Чтобы этого добиться, стоит следовать определённым правил и избегать заведомо плохих практик. О восьми из них можно узнать в этой статье.
#javascript #веб
Самая большая ответственность каждого программиста заключается в том, чтобы написанный им код был легко тестируемым и сохранял работоспособность с течением времени.
Чтобы этого добиться, стоит следовать определённым правил и избегать заведомо плохих практик. О восьми из них можно узнать в этой статье.
#javascript #веб
Как создать настольное приложение с помощью Electron. Руководство для начинающих
Эта статья в первую очередь будет полезна веб-разработчикам. Electron позволяет превращать проекты, написанные с помощью HTML, CSS и JavaScript в полноценные приложения для разных платформ. Многие такие приложения вы знаете: Skype, Discord, ваш любимый VS Code и так далее.
Как создать такое же приложение, вы можете узнать в этом руководстве.
#javascript #electron #руководство
Эта статья в первую очередь будет полезна веб-разработчикам. Electron позволяет превращать проекты, написанные с помощью HTML, CSS и JavaScript в полноценные приложения для разных платформ. Многие такие приложения вы знаете: Skype, Discord, ваш любимый VS Code и так далее.
Как создать такое же приложение, вы можете узнать в этом руководстве.
#javascript #electron #руководство
Forwarded from Метод утёнка
Инструмент для решения главной проблемы новичков в IT
Знаете какая главная проблема новичков? Правильно, многие просто не понимают с чего начать и на чём фокусироваться, ведь информации в интернете полно, но без опыта сложно понять что стоит внимания, а что нет, какие темы изучать в первую очередь и так далее.
Поэтому обратите внимание на сайт roadmap.sh. Здесь собраны дорожные карты для изучения языков программирования, технологий, а также целых направлений в IT. Просто, понятно, с полезными ссылками и возможностью отслеживать свой прогресс.
Как вам? Кажется, достойно ❤️ и сохранения в избранном.
#инструменты #roadmap
Знаете какая главная проблема новичков? Правильно, многие просто не понимают с чего начать и на чём фокусироваться, ведь информации в интернете полно, но без опыта сложно понять что стоит внимания, а что нет, какие темы изучать в первую очередь и так далее.
Поэтому обратите внимание на сайт roadmap.sh. Здесь собраны дорожные карты для изучения языков программирования, технологий, а также целых направлений в IT. Просто, понятно, с полезными ссылками и возможностью отслеживать свой прогресс.
Как вам? Кажется, достойно ❤️ и сохранения в избранном.
#инструменты #roadmap
Решение головоломки из университетского квеста с помощью Python
Black and White — это головоломка Мельбурнского университета, где вам необходимо распределить 25 диаграмм по цветам, соблюдая особые условия.
Решить её сможет далеко не каждый. Хотите проверить свои навыки? Переходите в статью, тут и сама задача и один из способов её решения.
В статье решение сделано на Python, но вы можете написать своё или повторить это, используя другой язык.
#задача #python
Black and White — это головоломка Мельбурнского университета, где вам необходимо распределить 25 диаграмм по цветам, соблюдая особые условия.
Решить её сможет далеко не каждый. Хотите проверить свои навыки? Переходите в статью, тут и сама задача и один из способов её решения.
В статье решение сделано на Python, но вы можете написать своё или повторить это, используя другой язык.
#задача #python
Графы в Swift: Поиск в Глубину и Поиск в Ширину
Граф — это математическая структура, состоящая из множества вершин (или узлов) и множества рёбер (или граней), которые соединяют пары вершин. Графы используются для моделирования отношений и связей между объектами.
В этой статье вы сможете познакомиться с графами, методами поиска в ширину (BFS) и поиска в глубину (DFS). Причём с упором на язык Swift.
#swift
Граф — это математическая структура, состоящая из множества вершин (или узлов) и множества рёбер (или граней), которые соединяют пары вершин. Графы используются для моделирования отношений и связей между объектами.
В этой статье вы сможете познакомиться с графами, методами поиска в ширину (BFS) и поиска в глубину (DFS). Причём с упором на язык Swift.
#swift
Forwarded from Сохранёнки программиста
Гарвардский курс по веб-разработке на Python и JS
Курс HarvardX: CS50's Web Programming продолжает легендарный CS50, фокусируясь на разработке веб-приложений с Python, JavaScript и SQL. Тут разбирают дизайн БД, масштабируемость, безопасность и UI.
В процессе обучения есть и практические проекты, среди которых создание API, интерактивных интерфейсов и использование облачных сервисов GitHub и Heroku.
Одним словом — годнота
#курс #web #js #python #en
Курс HarvardX: CS50's Web Programming продолжает легендарный CS50, фокусируясь на разработке веб-приложений с Python, JavaScript и SQL. Тут разбирают дизайн БД, масштабируемость, безопасность и UI.
В процессе обучения есть и практические проекты, среди которых создание API, интерактивных интерфейсов и использование облачных сервисов GitHub и Heroku.
Одним словом — годнота
#курс #web #js #python #en
Самая странная шпаргалка по Git
Энтузиасты решили креативно подойти к созданию шпаргалок и совместили их с азартными играми. Так появилась колода игральных карт, где на каждой размещены различные команды для работы с Git.
Колоду можно приобрести за 25 евро на Kickstarter.
Как вам идея?
❤️ — хочу на Новый Год
🗿 — если карты, то с голыми женщинами
#кек
Энтузиасты решили креативно подойти к созданию шпаргалок и совместили их с азартными играми. Так появилась колода игральных карт, где на каждой размещены различные команды для работы с Git.
Колоду можно приобрести за 25 евро на Kickstarter.
Как вам идея?
❤️ — хочу на Новый Год
🗿 — если карты, то с голыми женщинами
#кек