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

Для связи со мной:
@IvanReshet
Download Telegram
⚪️ 6 принципов ООП

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

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

Композиция это частный случай агрегирования (более строгий). При удалении объекта содержащего ссылку на другой объект, тот объект, который является вложенным, тоже удаляется.
Например: журнал и запись в журнале.
#ООП #статьи
👍12🔥2🥰1
Сегодня вторник. А это значит, что мы поговорим про базы данных и SQL.
В комментариях пишите интересующие вас темы и задавайте вопросы. На следующей неделе мы разберем самые интересные.
Сегодня вас ждет интересная статья и тестовое задание для проверки ваших знаний.
#SQL
🔥4👌3👍2
Составные индексы

Индексы ускоряют поиск по таблицам. Их можно создавать сразу по нескольким столбцам. Разберем пример:

CREATE TABLE product (
name varchar,
category int,
position int
);


Допустим, что мы имеем n-е количество товаров и часто приходится совершать запросы по типу:

SELECT name FROM product WHERE category=constant AND position=constant;

В таком случае будет целесообразно ввести составной индекс на столбцы category и position:

CREATE INDEX product_cp_i ON product (category, position);

Теперь сложность алгоритма поиска по подобному запросу будет O(log n), а не O(n).
Важно не злоупотреблять индексами! Индексы требуют дополнительно выделенной памяти в вашей базе данных. И существенно замедляют работу системы, если данные в строках часто обновляются (индексы заново пересчитываются).
#SQL
4👍1
Сегодня среда. Мы поговорим про С++.
В комментариях пишите интересующие вас темы и задавайте вопросы. На следующей неделе мы разберем самые интересные.
Сегодня мы поговорим про актуальность языка С++ и выполним тестовое задание.
#Cpp
💘6
Насколько актуален С++ в 2023-м году?📈

Для анализа актуальности языка можно обратиться к рейтингу TIOBE (индекс, оценивающий популярность языков программирования, на основе подсчёта результатов поисковых запросов, содержащих название языка).
В данном рейтинге на сегодняшний день С++ находится на 3-м месте.
https://www.techrepublic.com/article/tiobe-index-language-rankings/
Если ориентироваться на количество пул-реквестов GITHUB, то С++ на 4-м месте.
https://madnight.github.io/githut/#/pull_requests/2022/1
П результатам опроса jetbrains, основанному на востребованности языка у работодателя, С++ находится на 8-м (при этом не уменьшая объем охватываемого рынка)

Для получения полной картины, в каких проектах и в каком процентном соотношении используется язык, рекомендую ознакомится с ресурсом.
https://www.jetbrains.com/lp/devecosystem-2021/

#статьи #Cpp
🔥7
Какое ключевое слово используется в С++ для указания компилятору , что переменная может изменяться вне полседовательности кода и должна быть загружена из памяти каждый раз, когда к ней обращаются?
Anonymous Quiz
9%
mutable
43%
volatile
21%
static
23%
dynamic
4%
hash
В этот четверг мы поговорим про HTML и CSS.
В комментариях пишите интересующие вас темы и задавайте вопросы. На следующей неделе мы разберем самые интересные.
Сегодня вас ждут три поста! Интересная статья, тест и задание на верстку.

#HTML #CSS
👍6🔥1
В эту пятницу мы поговорим про алгоритмы и структуры данных.
В комментариях пишите интересующие вас темы и задавайте вопросы. На следующей неделе мы разберем самые интересные.

#алгоритмы
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Графы являются одной из основных структур данных в программировании и информатике. Они представляют собой абстрактную модель, которая состоит из вершин (узлов) и ребер (связей) между этими вершинами. Графы широко применяются для моделирования различных сценариев, таких как сети связи, социальные сети, дорожные карты, графики и многое другое.

В программировании графы используются для решения различных задач, таких как поиск кратчайшего пути, обход графа, поиск циклов, топологическая сортировка и многое другое. Существует множество алгоритмов, которые позволяют работать с графами, таких как алгоритм Дейкстры, алгоритм Прима, алгоритм Краскала и многие другие.

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

Нужно записать видео по графам? Ставим 🔥

#алгоритмы
🔥13👍2
Сегодня понедельник. Мы поговорим про нюансы проектирования и затронем тему SOLID.

#ООП
👍5
Принципы SOLID - это пять принципов, помогающие разработчикам писать более устойчивый и легко поддерживаемый код.

1. Принцип единственной ответственности (Single Responsibility Principle) - каждый класс должен быть ответственен только за одну конкретную задачу.

2. Принцип открытости/закрытости (Open/Closed Principle) - классы должны быть открыты для расширения, но закрыты для модификации.

3. Принцип подстановки Барбары Лисков (Liskov Substitution Principle) - подклассы должны быть взаимозаменяемы с их суперклассами без изменения ожидаемого поведения программы.

4. Принцип разделения интерфейса (Interface Segregation Principle) - интерфейсы должны быть маленькими и специфичными, чтобы классы не вынуждены были реализовывать методы, которые им не нужны.

5. Принцип инверсии зависимостей (Dependency Inversion Principle) - модули верхнего уровня не должны зависеть от модулей нижнего уровня. Оба уровня должны зависеть от абстракций.

#ООП #статьи
6👍2🔥1

class Animal:
def eat(self):
pass

def sleep(self):
pass

class Dog(Animal):
def eat(self):
print("Dog is eating")

def sleep(self):
print("Dog is sleeping")

class Cat(Animal):
def eat(self):
print("Cat is eating")

def sleep(self):
print("Cat is sleeping")

class Bird(Animal):
def fly(self):
print("Bird is flying")

def make_animal_sleep(animal):
animal.sleep()

dog = Dog()
cat = Cat()
bird = Bird()

make_animal_sleep(dog)
make_animal_sleep(cat)
make_animal_sleep(bird)
Коллеги, всем добрый вечер.
Голосуем за тему следующего дня.
Anonymous Poll
17%
день Java
54%
день Python
29%
день JS