Как читать код
Статья пригодится не только разработчикам, но и тем, кто хоть иногда сталкивается с кодом и вынужден разбираться в том, как он работает.
Вы узнаете, как упростить себе задачу, с чего начать и что делать с неизвестным синтаксисом:
https://habr.com/ru/articles/840178/
❤️ — так и делаю
🤔 — ерунда какая-то. Просто садишься и построчно изучаешь
#советы
Статья пригодится не только разработчикам, но и тем, кто хоть иногда сталкивается с кодом и вынужден разбираться в том, как он работает.
Вы узнаете, как упростить себе задачу, с чего начать и что делать с неизвестным синтаксисом:
https://habr.com/ru/articles/840178/
❤️ — так и делаю
🤔 — ерунда какая-то. Просто садишься и построчно изучаешь
#советы
❤5🎉2✍1👀1
Точка входа в программирование
Почему вы должны попробовать Rust Все, кто решил пойти в программировании, сталкиваются со сложностью выбора первого языка. Многие выбирают JavaScript, Python или Kotlin из-за их низкого порога входа. Но на этот раз мы предлагаем вам обратить внимание на…
Полезный репозиторий для тех, кто всё-таки хочет освоить Rust
Здесь собраны полезные библиотеки и инструменты для Rust, а также проекты, реализованные с его помощью.
Если хотите увидеть все возможности языка, то вам точно стоит заглянуть сюда: https://github.com/rust-unofficial/awesome-rust
#rust
Здесь собраны полезные библиотеки и инструменты для Rust, а также проекты, реализованные с его помощью.
Если хотите увидеть все возможности языка, то вам точно стоит заглянуть сюда: https://github.com/rust-unofficial/awesome-rust
#rust
Простыми словами: Что такое абстракция в ООП
Про наследование мы уже рассказали. Теперь поговорим про абстракцию.
Абстракция — это концепция, которая помогает скрыть сложные внутренние детали и выделить только ключевые аспекты объекта. Это как использование бытового прибора: вы знаете, какие кнопки нажимать, но не обязаны понимать, как он работает изнутри.
Зачем нужна абстракция?
1. Упрощение взаимодействия: Абстракция упрощает использование сложных систем, предоставляя понятные и удобные интерфейсы.
2. Сокрытие деталей реализации: Позволяет скрывать детали, которые не важны для пользователя объекта.
3. Повторное использование кода: Обеспечивает создание общих интерфейсов, которые могут быть использованы в различных контекстах.
Пример 1: Абстрактные классы
В некоторых языках программирования, таких как Python, Java или C#, существуют абстрактные классы. Они содержат методы, которые должны быть реализованы в дочерних классах.
Здесь
Пример 2: Интерфейсы (в других языках)
В языках программирования, таких как Java или C#, существуют интерфейсы, которые определяют набор методов, которые должны быть реализованы классами.
Здесь
Давайте теперь посмотрим, где применяется эта концепция в реальной жизни:
1. Управление пользователями. Абстракция позволяет создавать общие интерфейсы для работы с пользователями различных типов — например, администраторы и обычные пользователи.
2. Работа с данными. Часто используется, когда нужно создать общий интерфейс для работы с разными источниками данных.
3. Системы оплаты. Можно создать абстракцию для различной обработки платежей — кредитными картами, PayPal, Bitcoin и т.д.
#простымисловами #ооп
Про наследование мы уже рассказали. Теперь поговорим про абстракцию.
Абстракция — это концепция, которая помогает скрыть сложные внутренние детали и выделить только ключевые аспекты объекта. Это как использование бытового прибора: вы знаете, какие кнопки нажимать, но не обязаны понимать, как он работает изнутри.
Зачем нужна абстракция?
1. Упрощение взаимодействия: Абстракция упрощает использование сложных систем, предоставляя понятные и удобные интерфейсы.
2. Сокрытие деталей реализации: Позволяет скрывать детали, которые не важны для пользователя объекта.
3. Повторное использование кода: Обеспечивает создание общих интерфейсов, которые могут быть использованы в различных контекстах.
Пример 1: Абстрактные классы
В некоторых языках программирования, таких как Python, Java или C#, существуют абстрактные классы. Они содержат методы, которые должны быть реализованы в дочерних классах.
from abc import ABC, abstractmethod
class Животное(ABC):
@abstractmethod
def издать_звук(self):
pass
class Кот(Животное):
def издать_звук(self):
print("Мяу!")
class Собака(Животное):
def издать_звук(self):
print("Гав!")
животные = [Кот(), Собака()]
for животное in животные:
животное.издать_звук()
Здесь
Животное
— это абстрактный класс с абстрактным методом издать_звук
, который обязаны реализовать все дочерние классы, такие как Кот
и Собака
.Пример 2: Интерфейсы (в других языках)
В языках программирования, таких как Java или C#, существуют интерфейсы, которые определяют набор методов, которые должны быть реализованы классами.
interface Животное {
void издатьЗвук();
}
class Кот implements Животное {
public void издатьЗвук() {
System.out.println("Мяу!");
}
}
class Собака implements Животное {
public void издатьЗвук() {
System.out.println("Гав!");
}
}
public class Main {
public static void main(String[] args) {
Животное кот = new Кот();
Животное собака = new Собака();
кот.издатьЗвук(); // Output: Мяу!
собака.издатьЗвук(); // Output: Гав!
}
}
Здесь
Животное
— это интерфейс, который определяется методом издатьЗвук
, что должен быть реализован в классах Кот
и Собака
.Давайте теперь посмотрим, где применяется эта концепция в реальной жизни:
1. Управление пользователями. Абстракция позволяет создавать общие интерфейсы для работы с пользователями различных типов — например, администраторы и обычные пользователи.
from abc import ABC, abstractmethod
class Пользователь(ABC):
@abstractmethod
def доступ(self):
pass
class Админ(Пользователь):
def доступ(self):
return "Полный доступ"
class Гость(Пользователь):
def доступ(self):
return "Доступ в режиме чтения"
пользователи = [Админ(), Гость()]
for пользователь in пользователи:
print(пользователь.доступ())
2. Работа с данными. Часто используется, когда нужно создать общий интерфейс для работы с разными источниками данных.
from abc import ABC, abstractmethod
class Репозиторий(ABC):
@abstractmethod
def получить_данные(self):
pass
class SQLРепозиторий(Репозиторий):
def получить_данные(self):
return "Данные из SQL базы данных"
class APIРепозиторий(Репозиторий):
def получить_данные(self):
return "Данные из API"
репозитории = [SQLРепозиторий(), APIРепозиторий()]
for репозиторий in репозитории:
print(репозиторий.получить_данные())
3. Системы оплаты. Можно создать абстракцию для различной обработки платежей — кредитными картами, PayPal, Bitcoin и т.д.
class Платеж(ABC):
@abstractmethod
def провести_платеж(self, сумма):
pass
class КредитнаяКарта(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} с кредитной карты")
class PayPal(Платеж):
def провести_платеж(self, сумма):
print(f"Платеж проведён на сумму {сумма} через PayPal")
платежи = [КредитнаяКарта(), PayPal()]
for платеж in платежи:
платеж.провести_платеж(100)
#простымисловами #ооп
❤7😁2
Бесплатный курс по основам программирования на Kotlin
Курс посвящён базовым понятиям программирования: типы данных, операторы, переменные, условия, циклы, массивы и функции. Он является вводным и подойдёт слушателям с небольшим опытом или вообще без опыта программирования.
На курсе вы научитесь:
— основным конструкциям языка программирования Kotlin;
— писать программный код;
— читать код и анализировать чужие программы;
— решать алгоритмические задачи.
Начать можно в любой момент по ссылке.
#курс #stepik #kotlin
Курс посвящён базовым понятиям программирования: типы данных, операторы, переменные, условия, циклы, массивы и функции. Он является вводным и подойдёт слушателям с небольшим опытом или вообще без опыта программирования.
На курсе вы научитесь:
— основным конструкциям языка программирования Kotlin;
— писать программный код;
— читать код и анализировать чужие программы;
— решать алгоритмические задачи.
Начать можно в любой момент по ссылке.
#курс #stepik #kotlin
😁3🎉1
Media is too big
VIEW IN TELEGRAM
Что такое сайт, CMS, БД, хостинг, домен?
Полезный ролик для тех, кто хочет лучше понимать суть терминов, которыми богата сфера IT. Как это все устроено и взаимодействует друг с другом?
Здесь простыми словами рассказывают для начинающих о самых важных понятиях в веб-разработке.
❤️ — наконец-то понятным языком
🥱 — слишком просто. Админ, давай что-то посложнее
#видео #веб
Полезный ролик для тех, кто хочет лучше понимать суть терминов, которыми богата сфера IT. Как это все устроено и взаимодействует друг с другом?
Здесь простыми словами рассказывают для начинающих о самых важных понятиях в веб-разработке.
❤️ — наконец-то понятным языком
🥱 — слишком просто. Админ, давай что-то посложнее
#видео #веб
❤9👎1🥱1
Forwarded from Метод утёнка
Media is too big
VIEW IN TELEGRAM
ASMR программирование: Вращающийся куб в терминале на языке Си
Немного залипательного контента вам в ленту. Автор видео написал небольшой проект, где с помощью математических формул моделируется куб из ASCII-символов.
#asmr #видео #clang
Немного залипательного контента вам в ленту. Автор видео написал небольшой проект, где с помощью математических формул моделируется куб из ASCII-символов.
#asmr #видео #clang
❤3🆒1
Что из следующего лучше всего описывает принцип абстракции в ООП?
Anonymous Quiz
41%
Скрытие внутренней реализации объекта и предоставление только нужных методов
33%
Возможность одного интерфейса быть реализованным несколькими классами
15%
Создание новых классов на основе существующих
11%
Объединение нескольких объектов в один класс
Media is too big
VIEW IN TELEGRAM
Подробный курс по вёрстке для начинающих с теорией и практикой
В этом курсе понятно разобраны все темы по HTML, актуальные в 2024. Вы изучите основы HTML, теги, семантику, СЕО, метатеги, списки, медиа элементы, структуру документа, таблицы и формы.
Сохраняем и смотрим.
#видео #курс #html
В этом курсе понятно разобраны все темы по HTML, актуальные в 2024. Вы изучите основы HTML, теги, семантику, СЕО, метатеги, списки, медиа элементы, структуру документа, таблицы и формы.
Сохраняем и смотрим.
#видео #курс #html
❤9
Не упустите всероссийский чемпионат по алгоритмическому и робототехническому программированию True Tech Champ 2024
Гостей мероприятия на площадке ждет целая серия «айтивностей»: различные мастер-классы, воркшопы, лектории от экспертов МТС и концерт, на котором выступят известные артисты.
Победители True Tech Champ получат призы и денежные награды. Финалисты алгоритмического трека: 1 млн рублей за первое место, по 500 тыс. рублей за два вторых места и по 250 тыс. рублей за три третьих места.
Прием заявок на True Tech Champ продлится с 9 сентября до 12 октября, регистрация доступна на официальном сайте.
Гостей мероприятия на площадке ждет целая серия «айтивностей»: различные мастер-классы, воркшопы, лектории от экспертов МТС и концерт, на котором выступят известные артисты.
Победители True Tech Champ получат призы и денежные награды. Финалисты алгоритмического трека: 1 млн рублей за первое место, по 500 тыс. рублей за два вторых места и по 250 тыс. рублей за три третьих места.
Прием заявок на True Tech Champ продлится с 9 сентября до 12 октября, регистрация доступна на официальном сайте.
👍1🔥1
Welcome to Флудильня!
Вы наверняка видели, что в наших телеграмм-каналах мы просили Андрея поделиться своим мнением, звали Егора в комменты и даже спрашивали у Игоря о его первом разе. И это было непросто так — мы запускаем Флудильню!
Флудильня — это наша разработка и аналог Твиттер (простите, Х), только для программистов, разработчиков и всех-всех IT-специалистов. Здесь можно задавать вопросы, писать треды о наболевшем или смешном, делиться задачами — можно все (в пределах разумного). А написать и опубликовать пост очень легко — достаточно регистрации на сайте, а, возможно, она у вас уже есть.
Но самое главное — здесь любой может стать популярным, учитывая, что другие соцсети заполнены по самый край. Здесь не нужна красивая картинка и овер много текста — просто будьте (типичными) настоящими программистами, и люди потянутся, а мы в этом только поможем, ведь Флудильня — от программистов для программистов.
Вот несколько постов, чтобы познакомиться с Флудильней:
— 7 экзистенциальных причин, ради которых можно пропустить работу
— Популярные мифы о программистах
— Самые подробные промпты в ChatGPT для работы с кодом Python
— Подборка полезных материалов по базам данных для начинающих разработчиков
— Это база: советы для новичков, как проходить первые собесы в IT
Вы наверняка видели, что в наших телеграмм-каналах мы просили Андрея поделиться своим мнением, звали Егора в комменты и даже спрашивали у Игоря о его первом разе. И это было непросто так — мы запускаем Флудильню!
Флудильня — это наша разработка и аналог Твиттер (простите, Х), только для программистов, разработчиков и всех-всех IT-специалистов. Здесь можно задавать вопросы, писать треды о наболевшем или смешном, делиться задачами — можно все (в пределах разумного). А написать и опубликовать пост очень легко — достаточно регистрации на сайте, а, возможно, она у вас уже есть.
Но самое главное — здесь любой может стать популярным, учитывая, что другие соцсети заполнены по самый край. Здесь не нужна красивая картинка и овер много текста — просто будьте (типичными) настоящими программистами, и люди потянутся, а мы в этом только поможем, ведь Флудильня — от программистов для программистов.
Вот несколько постов, чтобы познакомиться с Флудильней:
— 7 экзистенциальных причин, ради которых можно пропустить работу
— Популярные мифы о программистах
— Самые подробные промпты в ChatGPT для работы с кодом Python
— Подборка полезных материалов по базам данных для начинающих разработчиков
— Это база: советы для новичков, как проходить первые собесы в IT
👍4❤1
Простыми словами: Инкапсуляция в ООП
Мы с вами уже разобрали наследование и абстракцию. Пришло время третьей парадигмы. Инкапсуляция — это концепция ООП, которая скрывает внутренние детали объекта и предоставляет доступ только к нужным методам и свойствам. Это как капсула с лекарством: вы знаете, как её использовать, но не видите, что внутри.
Абстракция и инкапсуляция часто работают вместе. Абстракция скрывает сложные детали, выделяя только ключевые аспекты, а инкапсуляция обеспечивает безопасность этих деталей, предоставляя контролируемый доступ. Эти концепции делают ваш код более безопасным, структурированным и лёгким для поддержки.
Давайте рассмотрим несколько примеров:
В Python инкапсуляции часто достигают с помощью именования методов и атрибутов с одним или двумя подчёркиваниями.
В этом примере атрибут
Давайте рассмотрим пример из Java. Здесь инкапсуляция достигается с помощью модификаторов доступа (private, protected, public) и методов getter/setter.
В этом примере атрибут
Где применяется?
Инкапсуляция помогает скрыть детали внутренней структуры объекта, например, банковского счёта.
Также позволяет управлять доступом к критическим операциям.
Теперь вы знакомы с тремя составляющими ООП. Нам осталось разобраться в полиморфизме.
Если формат заходит — поставьте ❤️, я буду знать, что пишу не зря. А замечания можете написать в комментарии👇
#простымисловами #ооп #инкапсуляция
Мы с вами уже разобрали наследование и абстракцию. Пришло время третьей парадигмы. Инкапсуляция — это концепция ООП, которая скрывает внутренние детали объекта и предоставляет доступ только к нужным методам и свойствам. Это как капсула с лекарством: вы знаете, как её использовать, но не видите, что внутри.
Абстракция и инкапсуляция часто работают вместе. Абстракция скрывает сложные детали, выделяя только ключевые аспекты, а инкапсуляция обеспечивает безопасность этих деталей, предоставляя контролируемый доступ. Эти концепции делают ваш код более безопасным, структурированным и лёгким для поддержки.
Давайте рассмотрим несколько примеров:
В Python инкапсуляции часто достигают с помощью именования методов и атрибутов с одним или двумя подчёркиваниями.
class Кот:
def __init__(self, имя):
self.__имя = имя # Скрытый атрибут
def получить_имя(self):
return self.__имя # Метод для получения скрытого атрибута
def мяукать(self):
print(f"{self.__имя} говорит: Мяу!")
кот = Кот("Мурзик")
print(кот.получить_имя()) # Output: Мурзик
кот.мяукать() # Output: Мурзик говорит: Мяу!
# Попытка доступа к скрытому атрибуту напрямую
# print(кот.__имя) # Это вызовет ошибку
В этом примере атрибут
__имя
скрыт от внешнего доступа, и доступ к нему можно получить только через метод получить_имя
.Давайте рассмотрим пример из Java. Здесь инкапсуляция достигается с помощью модификаторов доступа (private, protected, public) и методов getter/setter.
public class Кот {
private String имя; // Скрытый атрибут
public Кот(String имя) {
this.имя = имя;
}
public String getИмя() { // Метод для получения скрытого атрибута
return имя;
}
public void мяукать() {
System.out.println(имя + " говорит: Мяу!");
}
public static void main(String[] args) {
Кот кот = new Кот("Мурзик");
System.out.println(кот.getИмя()); // Output: Мурзик
кот.мяукать(); // Output: Мурзик говорит: Мяу!
// Попытка доступа к скрытому атрибуту напрямую
// System.out.println(кот.имя); // Это вызовет ошибку
}
}
В этом примере атрибут
имя
объявлен как private
и доступен только через метод getИмя
.Где применяется?
Инкапсуляция помогает скрыть детали внутренней структуры объекта, например, банковского счёта.
class БанкСчет:
def __init__(self, баланс=0):
self.__баланс = баланс # Скрытый атрибут
def пополнить(self, сумма):
if сумма > 0:
self.__баланс += сумма
def вывести(self, сумма):
if сумма > 0 и self.__баланс >= сумма:
self.__баланс -= сумма
def получить_баланс(self):
return self.__баланс
счет = БанкСчет()
счет.пополнить(100)
счет.вывести(30)
print(счет.получить_баланс()) # Output: 70
Также позволяет управлять доступом к критическим операциям.
class Пользователь:
def __init__(self, имя, пароль):
self.__имя = имя
self.__пароль = пароль # Скрытый атрибут
def проверить_пароль(self, ввод):
return self.__пароль == ввод
пользователь = Пользователь("Иван", "12345")
print(пользователь.проверить_пароль("12345")) # Output: True
print(пользователь.проверить_пароль("54321")) # Output: False
Теперь вы знакомы с тремя составляющими ООП. Нам осталось разобраться в полиморфизме.
Если формат заходит — поставьте ❤️, я буду знать, что пишу не зря. А замечания можете написать в комментарии👇
#простымисловами #ооп #инкапсуляция
❤20👍6😁2👏1👾1
Большой каталог шпаргалок на все случаи жизни
Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.
Если вам чего-то не хватило, то вы можете предложить свою шпаргалку в качестве контрибьютора.
#шпаргалки
Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.
Если вам чего-то не хватило, то вы можете предложить свою шпаргалку в качестве контрибьютора.
#шпаргалки
🔥6👏1
Даже начинающий программист — это программист!
Поэтому мы с радостью поздравляем вас с главным профессиональным праздником. А чтобы он был ещё немного приятнее, мы с друзьями приготовили для вас небольшой сюрприз! Переходите по ссылке и забирайте свой подарок: https://tprg.ru/o8KN
Делитесь в комментариях, что вам выпало.
Поэтому мы с радостью поздравляем вас с главным профессиональным праздником. А чтобы он был ещё немного приятнее, мы с друзьями приготовили для вас небольшой сюрприз! Переходите по ссылке и забирайте свой подарок: https://tprg.ru/o8KN
Делитесь в комментариях, что вам выпало.
❤10👍1😈1
Где новичку отточить свои навыки работы с кодом
Хотите стать более уверенным и успешным разработчиком? Тогда вам точно стоит обратить внимание на эти платформы. Они могут стать для вас отличным инструментом по тренировке мозгов и оттачивания навыков:
1. CodinGame. Эта платформа позволяет оттачивать создание наиболее оптимальных алгоритмов в игровой форме. Здесь представлены различные игры, паззлы и соревновательные события. Играть можно как одному, так и с друзьями.
2. LeetCode. Здесь также можно потренировать знания алгоритмов и структур данных. Многие задачи отсюда используются компаниями на реальных собеседованиях. По сути, это сборник задач для олимпиадного программирования.
3. Codewars. Многим известный тренажёр, который предлагает задачи по различных темах на множестве языков программирования. Отличительной особенностью платформы является разделение задач на 8 уровней сложности — kyu.
4. CodeForces. Фишка этой платформы в том, что здесь регулярно проводятся онлайн-соревнования. Примерно раз в неделю стартуют раунды, которые длятся примерно 2 часа. За это время необходимо успеть решить несколько задач.
5. Kaggle. Здесь проводятся соревнования по анализу данных и машинному обучению. Тут нет алгоритмических задач, зато он отлично подходит для тех, кто стремится развиваться в области Data Science.
6. Project Euler. В основном предлагает задачами по математике, геометрии и информатике, которые нужно решить с помощью кода.
Лично я остановился на Codewars. Мне нравится интерфейс, качество задач и гибкость при выборе уровня сложности. Вы же можете выбрать то, что больше подойдёт вам. В любом случае надеемся, что эта подборка будет вам полезна. А если знаете ещё какие-то крутые платформы, то напишите их в комментарии.
#подборка #геймификация
Хотите стать более уверенным и успешным разработчиком? Тогда вам точно стоит обратить внимание на эти платформы. Они могут стать для вас отличным инструментом по тренировке мозгов и оттачивания навыков:
1. CodinGame. Эта платформа позволяет оттачивать создание наиболее оптимальных алгоритмов в игровой форме. Здесь представлены различные игры, паззлы и соревновательные события. Играть можно как одному, так и с друзьями.
2. LeetCode. Здесь также можно потренировать знания алгоритмов и структур данных. Многие задачи отсюда используются компаниями на реальных собеседованиях. По сути, это сборник задач для олимпиадного программирования.
3. Codewars. Многим известный тренажёр, который предлагает задачи по различных темах на множестве языков программирования. Отличительной особенностью платформы является разделение задач на 8 уровней сложности — kyu.
4. CodeForces. Фишка этой платформы в том, что здесь регулярно проводятся онлайн-соревнования. Примерно раз в неделю стартуют раунды, которые длятся примерно 2 часа. За это время необходимо успеть решить несколько задач.
5. Kaggle. Здесь проводятся соревнования по анализу данных и машинному обучению. Тут нет алгоритмических задач, зато он отлично подходит для тех, кто стремится развиваться в области Data Science.
6. Project Euler. В основном предлагает задачами по математике, геометрии и информатике, которые нужно решить с помощью кода.
Лично я остановился на Codewars. Мне нравится интерфейс, качество задач и гибкость при выборе уровня сложности. Вы же можете выбрать то, что больше подойдёт вам. В любом случае надеемся, что эта подборка будет вам полезна. А если знаете ещё какие-то крутые платформы, то напишите их в комментарии.
#подборка #геймификация
👍8