Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Ноут периодически тушит подсветку экрана, закроешь — откроешь — снова разгорается. Что с ним?

Лучший ответ:
Похоже на неисправность, пропадает контакт и т.п.
Попробуйте войти в БИОС и оставить ноут в таком состоянии. Погаснет? Проблемы с железом. В сервис.
P.S. Глянул в Инете - лет "больному" больше 10, подсветка ламповая. Похоже, эта подсветка и вырубается периодически. Закрыли крышку - подсветка обесточилась, крышку открыли - снова включилась. Нести в сервис бессмысленно - ремонт будет стОит больше такого же, но живого ноута. 
Или в мусор/на органы его, или пользовать дальше со внешним монитором.

Худший ответ:
Похоже на помирающие конденсаторы в цепи подсветки монитора.
Вопрос: На каком движке создать онлайн кинотеатр?

Лучший ответ:
Судя по гитхабу CinemaPress работал на плеере moonwalk, которые недавно закончились, так что не будет у вас никакого самообновляемого сайта теперь с онлайн фильмами.
А вместе с ним скоро домрут 80-90% фильмо сайтов, типа того который вы хотите сделать, но опоздали слегка.Ведь мне нужен уникальный проект.
В чем он будет уникальный? В CinemaPress с плеером moonwalk который автоматически наполняется и таких сайтов сотни/тысячи с разным доменом?)
Как же хорошо что их убили наконец-то.
Так что теперь по старинке - хочешь сайт с пиратскими фильмами будь добр захости сам в нидерландах.
Либо перезаливай по мере забанивания на "бесплатные" видеохосты в виде ВК/одноклассников/гугл диска.
А то расслабились совсем "сделать онлайн кинотеатр" это поставить DLE с автозаполнением и всё.
Это вообще далеко не самая главная часть онлайн кинотеатров.
P.S. https://vc.ru/tribuna/63984-rasskaz-o-tom-kak-ya-s...
вас прям много таких уникальных

Худший ответ:
Ответ не по сути, но я бы не советовал делать такой онлайн кинотеатр как вы хотите) Как написали выше, скорое все такие сайты вымрут и будем мы все платить за контент как миленькие) Я например уже плачу за музыку. За фильмы иногда.
Вопрос: Vue 2 или Vue 3?

Лучший ответ:
имхо рано еще, как минимум пока официальный раздел vue сайта с доками по 3ей - на отдельном домене у них: https://v3.vuejs.org/ - т.е. создатели (Эван и команда) видимо сами понимают и намекают насколько 3я версия еще сыровата и мало кем поддерживается, чтобы юзеры не путались и попадали сразу на старые доки пока еще.

Худший ответ:
На вопрос нельзя дать точного ответа. Решать вам опираясь на знания, опыт и требования вашего проекта

Так например недавно я столкнулся что большинство мануалов  Vue.js на TypeScript написаны для 3 версии
С Nuxt все наоборот, пока только 2 версия. Но подучить стоит обе, ибо различий там не особо много, а в основе приложения будет лежать не версия фреймворка, а архитектура которой вы придерживаетесь. В любом случае у  вас будет Vue, VueRouter, Vuex и взаимодействие между ними
Вопрос: Можно ли так объявлять const?

Лучший ответ:
Вроде да, но если не работает то попробуй еще эти скобки {}

Худший ответ:
можно
Вопрос: Как заставить работать rdp через vpn l2tp+ipsec на mikrotik?

Лучший ответ:
Дело в маршрутизации, добавьте на втором роутере статический маршрут на 10.0.3.0/24, через 10.0.10.100.

Худший ответ:
Маршрут я прописал вот на первом роутере 
и вот на втором 
При попьіике подключиться по rdp у меня спрашивает пароль, если ввожу левьіе то иногда получаю сообщения о том что логин и пароль не подходят ввожу еще раз и после долго ожидания ошибка, а иногда просто ошибка и все. :( Можно как-то отследить пакетьі, что-бьі понять где накосячил?
Вот еще NAT на первом
и на втором
и firewall на первом
и на втором
Вопрос: Запросить один запрос или много?

Лучший ответ:
Три простых правила
1. Забыть про вопросы производительности. Ничего умного все равно не придумаешь, а глупости делать тем более не нужно
2. Не выдумывать несуществущие в природе явления как " Грузить проц. колекцией"
3. Вместо всех этих дурацких фантазий учить SQL.

Тогда вопросов "как получить данные для графика" вообще возникать не будет

Худший ответ:
Делать на каждый день новый запрос и заносить в график
Что это значит в Вашем случае?
У Вас на странице только за какой-то период отображение по дням идёт? Или как?

В любом случае из БД получать нужно только то, что Вам щас потребуется для отображения...
Если использовать "коллекции" запихнув туда все данные из БД, то когда транзакций будет "куча"...то с каждым увеличением этой "кучи" Ваши коллекции будут всё медленнее, а CPU и RAM всё больше страдать + время выполнения увеличиваться...

UPD:
...
Вопрос: Как открыть консоль в операционке линукс на стадии ввода пароля?

Лучший ответ:
Можно ли запустить консоль на стадии ввода пароля. Если да, то как?
Нажмите Alt+Ctrl+F1 - попадёте в консоль, на стадию ввода имени/пароля для входа.Можно ли загрузить консоль до биоса?
BIOS к консоли/OS отношения не имеет. И нет, сначала отрабатывает BIOS (дёргая всё оборудование компьютера), потом передаётся выполнение в OS, у которой есть консоль.Как зайти из консоли в файловую систему?
В файловую систему не нужно входить. Попав в консоль, вы сможете делать что угодно и с файловой системой, и с файлами/директориями на ней.Если нельзя войти в файловую систему, как открыть текстовый файл прямо в консоли?
Самое простое: запустить (если установлен) Midnight Commander командой mc. А там уже привычно...Где найти пароль от учетки?
В мозгу администратора(ов). Если туда доступа нет - тогда "взламывать" пароль: или через rescue mode, или загрузкой с USB/CD.

Худший ответ:
До ввода пароля к BIOS ничего вы на компьютере не запустите.
А вот сбросить этот пароль несложно. Достаточно погуглить, как это делается. Если, конечно, есть физический доступ к потрохам компьютера.
Вопрос: Как отключить регистрацию в Битрикс?

Лучший ответ:
Регистрация зашита в ядре битрикса, по этому, отправкой специальных get и post параметров можно, зарегистрироваться на любой странице сайта.

Отключается регистрация в админке:
Настройки -> Настройки модулей -> Главный модуль 
Далее на вкладке "Авторизация" снять галку с опции "Позволять ли пользователям регистрироваться самостоятельно?"



Худший ответ:
Что-то у меня эта "галочка" не отключается. Убираю. Жму сохранить, а она опять появляется.
Вопрос: Установить эмулятор невозможно?

Лучший ответ:
По идее, hyper-v не нужен.
Нужна только включённая виртуализация на процессоре.
https://stackoverflow.com/questions/48519347/using...
HAXM работает без hyper-v

Худший ответ:
https://stackoverflow.com/questions/47570489/how-t...

Ну например так можно.

Но лучше Винду на Линуса поменять ) там проблем с Андроид студио не видел пока.
Вопрос: Как из слова сформировать список всех возможных форм (в разном числе, роде, падеже)?

Лучший ответ:
В поиске гугл: pymorphy2 java и дальше по ссылкам.

Худший ответ:
Словарь Зализняка вам в помощь, если собираетесь копать ab ovo.
Вопрос: Как настроить БД при установке Zabbix на ubuntu?

Лучший ответ:
Вот в том месте где вы разворачивали zabbix - у вас командаmysql -h localhost -P3306 -u zabbix -p<пароль который вы вбили>  zabbix
успешно выполняется?

Худший ответ:
Очевидно вы не создали базу данных либо пользователя, либо ввели название не той бд, которую создавали. На офф. сайте есть мануалы как это делать и скрипт на создание таблиц. Написано конечно так себе - поэтому следовать надо достаточно внимательно. Некоторые вещи там не описаны пошагово. Можете подсмотреть в альтернативных манах из инторнета.
Вопрос: Зачем нужно ООП?

Лучший ответ:
Прочитайте "Чистый код" Роберта Мартина, там это доходчиво объясняется. Все существующие парадигмы программирования, паттерны проектирования и архитектурные принципы существуют ровно с одной целью - снизить сложность сопровождения и развития большой кодовой базы.

Худший ответ:
Во-первых, стоит перестать бояться писать избыточный код.
Да, ООП вынуждает описывать классы, делать конструкторы, деструкторы. Но это все служит для более легкого понимания кода человеком. Не нужно экономить каждый байт в исходниках. Чем более ясно у вас описан код (например, переменные называются не i, j, k,  а value, count, capacity), тем лучше. Также и с классами, глаз привыкает к структуре, что вот описание данных, вот рядом функции, которые эти данные инициализируют, работают с ними и уничтожают их.
Когда вы пишете только процедуры, без ООП, то чем больше проект, тем сложнее понять какие функции с какими данными работают и в каком порядке.
Иногда бывает ООП головного мозга, когда действительно на каждый чих по объекту. Но никто вас не заставляет писать также. Используйте объекты по минимуму. Потом привыкните и поймете в чем тут фишка.
Вопрос: Где можно зарегистрировать регистрозависимый почовый ящик (EXAMPLE@domain.com)?

Лучший ответ:
В другой галактике. Где другие rfc https://tools.ietf.org/html/rfc5322

Худший ответ:
Регистрозависимых почтовых ящиков не бывает.

Что же до "эсцет" и умляутов - это Вам скорее всего к немецкоговорящему регистратору - наверняка есть зона, аналогичная .рф
Вопрос: Возможно ли обойти reCaptcha при парсинге поисковой выдачи Google?

Лучший ответ:
Фишка гугловской рекапчи, что она сидит в коде на требуемом вам сайте. При прохождении капчи отправляется форма вместе с секретным ключом, который проверяется у гугла, что секретный ключ правильный и после этого идет обычная работа сайта. 
Так что скорей всего у вас не получится "на изи", там все же специалисты не за 40к зп сидят. 
У меня получалось обойти проверку на Яндексе через правильно подставленные заголовки и подмена куков, может и здесь проканает. Самое главное это ведь максимально притвориться человеком.

Худший ответ:
Скорее всего секрет кей не при чем.
Возможно дело в домене, рекапча проверяет с какого домена пришел запрос и с какого домена конкретно эту капчу прошли.
Вопрос: Есть ли ресурс со скриптами быстрой установки различных Linux-серверов?

Лучший ответ:
есть, называется ansible , ролей для установки всего на свете написано людьми добрый - сколько угодно.

Худший ответ:
Если .deb-дистр, то можно так L.A.M.P. установить, через Tasksel:

sudo apt install tasksel; sudo tasksel install lamp-server

И...
Что мешает самому написать скрипт?!

Манов на просторах по установке любого сервака шквал!
Берёшь ман и по нему пишешь свой скрипт в 6 сек!
Вопрос: Как взять данные с другого сайта?

Лучший ответ:
Так вам нужно к API Яндекс.Карт. У них там отдельные API для расстояний.

Худший ответ:
Так вам нужно к API Яндекс.Карт. У них там отдельные API для расстояний.
Вопрос: Почему при подключении трейта в два класса, один из этих классов программа перестает видеть?

Лучший ответ:
Столкнулся с необходимостью применения трейтов PHP, и тут проблема.
Трейты действительно нужны в очень специфических кейсах, 146% что это не ваш кейс.
У вас код и так даже не комочками, не стоит его разводить до более жидкого состояния.

Конструктор в трейте - это, не нахожу подходящего цензурного слова, пусть будет табу.

Что касается непосредственно вашей ошибки - смотрите в сторону автолодинга.

https://github.com/index0h/php-conventions почитайте на досуге

Худший ответ:
А где объявлен класс MY_CLASS?

class MY_CLASS_2 extends MY_CLASS_1{

должно быть так

Ну и да, про кодстайл уже сказали.
Вопрос: Почему не могу снять права на исполнение директории?

Лучший ответ:
Это какая-то виндовая ФС, что ли? Тогда надо смотреть на опции монтирования и работает ли линуксовое изменение прав вообще с ней.

Худший ответ:
В NTFS нет rwxrwxrwx прав, там идет виндовые ACL, и они в линукс не работают.
chmod работает только с POSIX правами доступа.
Вопрос: Как прописать мой скрипт в автозагрузку Raspbian?

Лучший ответ:
Для начала положи zmp в opt как это рекомендуется.
Далее учи systemd.
Создай файл /etc/systemd/system/zmp-tv.service
С содержимым:
[Unit]
Description=ZMediaProxy tv
After=network.target

[Service]
Type=simple
NonBlocking=true
WorkingDirectory=/opt
ExecStart=/opt/zmp-linux-arm7 --host "192.168.88.99" --best http://immo.date/ero.m3u
ExecStop=/usr/bin/killall -w zmp-linux-arm7
Restart=on-failure
RestartSec=10s
TimeoutSec=120s

[Install]
WantedBy=multi-user.target

Дальше обновляешь 
systemctl daemon-reload
Добавляешь автозапуск
systemctl enable zmp-tv.service
Запускаешь
systemctl start zmp-tv.service
Посмотреть состояние
systemctl status zmp-tv.service
Посмотреть логи
journalctl -eu zmp-tv.service

Худший ответ:
Вот сюда: immo.date на момент запуска достучаться не может.
Вопрос: Полезное задание на освоение ELK?

Лучший ответ:
Настройте на ELK алерты, которые срабатывают на различные события в логе. Например, если некий процесс в лог написал, что он выполнился дольше, чем за 30 секунд.
Настройте логирование нескольких лог файлов с разными тегами (prod, test), и настройте для них разные индексы.

Худший ответ:
Настройте на ELK алерты, которые срабатывают на различные события в логе. Например, если некий процесс в лог написал, что он выполнился дольше, чем за 30 секунд.
Настройте логирование нескольких лог файлов с разными тегами (prod, test), и настройте для них разные индексы.
Вопрос: Какие есть курсы\книги по Python для ребенка 10лет?

Лучший ответ:
Он сам смышленый, но боюсь что книги для "больших дядей" могут быть слишком сложными для него. 
Нет.
Смышленый ребенок вполне должен справиться с обычной документацией. Это очень важно научить ребенка читать документацию, а не книги.

Сейчас для него важнее изучить программирование в том виде, в котором он может писать что-либо рабочее, а не работу в команде или чистый код или кучи всякого другого.

Ведь 10 лет это еще математика 3-4 класса, для него будет в принципе открытием работа с массивами, списками, кортежами, понимание как работает http, банально понимание байтов, битов, кодировка, стек - вот это все.
Сейчас главное не книги ддя детей, а его мотивация что-либо делать и доводить до конца, чтобы он видел результаты своих попыток.
Будьте с ним чаще. Интересуйтесь и радуйтесь достижениям. Подсказывайте какие-то вещи.
А главное научите пользоваться поиском, правильными ресурсами и нетэтикету

Худший ответ:
https://habr.com/ru/company/piter/blog/426769/

Но буду откровенен, я даже не открывал книгу, но иногда натыкаюсь в либах.
Вопрос: В linux есть файл locale.gen. и строки типа en_US.UTF-8 UTF-8. Каким образом я могу разделить строку на 2 переменные до пробела и после?

Лучший ответ:
Вариант 1
читаем файл построчно в цикле(while) ридом(read), а уже в цикле каждую строку преобразуем в переменные примерно так:
$ LINE="zh_SG GB2312"
$ eval $(echo "$LINE" | awk '{print "var1="$1";var2="$2}')получим:
$ echo "$var1 $var2"
zh_SG GB2312
Вариант 2
Другой вариант это просто загнать в массив.
например есть файл lines.txt содержащий:
ru_RU.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_SG GB2312
преобразовываем в массив:
$ lines=(`cat lines.txt`)
в итоге получим что в парных элементах массива будет находиться значения из первого столбца, а в непарных из второго, например для первой строки это:
$ echo ${lines[0]}
ru_RU.UTF-8
$ echo ${lines[1]}
UTF-8

Худший ответ:
через read
$ LINE="zh_SG GB2312"
$ IFS=' '; read var1 var2<<<$LINE
$ echo $var1
zh_SG
$ echo $var2
GB2312

через variable expansion
$ LINE="zh_SG GB2312"
$ echo ${LINE% *}
zh_SG
$ echo ${LINE#* }
GB2312
Вопрос: Как идентифицировать соседей по дому в мобильном приложении?

Лучший ответ:
Распечатайте уникальные коды - к примеру QR-коды,  либо пин-коды,  да разбросайте в почтовые ящики квартир.
По ним в приложении свяжите реальных жителей.

Худший ответ:
В подъезде публикуете объявление что приложение вышло в свет + там же код доступа.
В доме скорее всего будет 200-300 квартир, жуликов найдется от силы человека 2-3 (да. я верю в людей -). 
Заходите в гости в проблемные квартиры и лично выясняете номер телефона. Наверняка есть совет дома, они могут этим заняться.
Вопрос: Как отсортировать объекты в монго?

Лучший ответ:
Вам нужно проверять на наличие значений.
https://docs.mongodb.com/manual/reference/operator...
Выполнить 2 запроса и объединить результаты, но идея не очень.

Как альтернатива - использовать агрегирование и заполнять пустые поля нулем, а затем сортировать.

В целом, что-то не так с логикой приложения. Самое наличие проблемы подобной сортировки намекает на проблему в другом месте.

Худший ответ:
а может https://proselyte.net/tutorials/mongodb/indexing/ ?
Вопрос: Pixel perfect VS Типографика?

Лучший ответ:
Вэб-дизайнер должен понимать как типографика работает в вэбе. Есди он что-то там нашаманил левого в своём фотошопе - это его косяк, пусть переделывает. Вот и всё, собственно.
Это если разница велика. Если разница полупиксельная - то это нормально, шрифты по разному рендерятся как в разных браузерах, так и в разных OS.

Худший ответ:
1. Смещение в пределах разумных допусков
2. Для межбуквенного — https://developer.mozilla.org/ru/docs/Web/CSS/lett..., да, я видел это в вопросе.
3. Если это макет без пользовательского ввода, можно вгонку и выгонку осуществлять вложенными span-ами и загонять разнообразные шпации, кастомные переносы и т.д.
Вопрос: Использование virtualenv в разных ОС, как организовать?

Лучший ответ:
Виртуальные окружения не предназначены для переноса. Выгружайте список зависимостей с помощью pip freeze в файл requirements.txt, а потом устанавливайте их в новое виртуальное окружение с помощью pip install -r requirements.txt

Худший ответ:
Наиболее правильно - разрабатывать на том же, на чем будет эксплуатироваться.
Но, если очень хочется, то на исходном окруженииpip freeze > requirements.txt.
а, после входа в новое окружениеpip install -r requirements.txt.
Вопрос: Как сделать вывод данных с текущего аккаунта через MySQL и PHP?

Лучший ответ:
Смотри внимательно.
1. Надо стартовать сессию
2. Надо правильно соединиться с БД
3. Надо не хранить пароль в открытом виде
4. Надо не пихать переменные прямо в запрос, а всегда передавать отдельно

session_start();
$login = $_POST['login'];
$password = $_POST['password'];

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysql = new mysqli ('localhost','root','root','register-bg');
$mysqli->set_charset($charset);

$stmt = $mysql->prepare("SELECT * FROM `users` WHERE `login` = ?");
$stmt->bind_param("s", $login);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

if($user && password_verify($password, $user['password'])) {
    $_SESSION['user_id'] = $user['id'];
}

про password_verify прочтешь самостоятельно

потом на другой странице
1. стартовать сессию
2. получить из неё id
3. по id получить из базы юзера

session_start();

include 'mysqli.php';

$stmt = $mysql->prepare("SELECT * FROM `users` WHERE `id` = ?");
$stmt->bind_param("s", $_SESSION['user_id']);
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();

echo $user['money'];

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

если будут вылезать ошибки, их надо гуглить

Худший ответ:
Как я понял, человек заходит на сайт, какой-то другой скрипт обновляет данные в базе. После обновления данных в базе, человек, который зашел в свой аккаунт, должен видеть то, что произошло изменение баланса. Для этого вам поможет AJAX. То есть, на стороне PHP должен быть API, который отдаёт баланс пользователя, а на Front-end должен быть JavaScript, который получает по API значения. Что бы API не был доступен кому угодно, API должен проверять TOKEN, который должен быть в запросе. В заголовке.
Успехов!
Вопрос: Выбор ноутбука для ubuntu?

Лучший ответ:
Покупайте  годовалые модели. Где люди уже набили шишки. 
Вообще посмотрите в список поддерживаемых систем. 

No  OS - лотерея
Windows  - чуть  лучше
Linux - вообще хорошо

Но понимайте что часто производитель делает на отвали и через пол года вы остаетесь без поддержки

Худший ответ:
Та без разницы, единственно видео карты Nvidia тут могут быть нюансы))))
ЗЫ да и убунту начала жрать ресурсов много, по сравненю с остальными.
Вопрос: Какой PDF reader использовать в 2020?

Лучший ответ:
Для книг использую pocketbook. К нему есть пару претензий. Во-первых это PocketBook... то есть в нём будет россыпь багов которые не столько мешают использованию программы, сколько отвлекают своими "забавностями". Ну и во-вторых интерфейс настроек настолько сложный, что придется потратить немало времени разобраться в них (например повыключать все свайпы) и больше туда не соваться.
Но даже несмотря на это ридер понравилось мне гораздо больше чем платные. Хотя это скорее не плюс PocketBook сколько минус остальным.

Для PDF документов использую Xodo. Использовал не только для чтения. Например с помощью него ставил роспись на документе.

Худший ответ:
Может ответ немного не в тему, но я поделюсь личным опытом :) 

Если PDF содержит главным образом текстовую информацию, то на телефоне его лучше не читать глазами, а слушать ушами, дабы не портить и не утомлять зрение.  ReadAloud есть бесплатная программа в Play Market.

Конечно, поначалу это будет непривычно- механический голос, неправильные ударения... Но попробуйте это неделю и возможно ваше мнение поменяется.
Вопрос: Как вылезти из «грязи»?

Лучший ответ:
Идти в офис. Можно хоть сколько сидеть дома, но таких результатов как в офисе не будет. Необходима работа в команде и тот, кто будет курировать.

Худший ответ:
Вот вам ещё одно мнение: отложите пока книги и теорию. Чтение всего подряд "про запас" — это трата времени на вашем этапе. Начните какой-нибудь проект, который пригодится лично вам. Какой-нибудь каталогизатор, планировщик, менеджер расходов. Если уже более или менее знакомы с языком, можно сразу попробовать создать собственный блог на джанго. Берёте туториал из официальной доки и повторяете за ними. Потом меняете его под свои нужды.
Как только встречаете трудности — решаете эти конкретные трудности. Нужно как-то по-особому преобразовать список? Берёте книжку Лутца и читаете раздел про списки. Нужно организовать хранение данных в БД? Читаете раздел про БД и туториал по sqlite. Какая-то проблема, связанная с джанго? Открываете документацию джанго и ищете нам нужный раздел. Всё равно не понятно? Идёте в гугл и вбиваете ваш вопрос. Так, пока не решите проблему, затем двигаетесь дальше.
В итоге у вас получится ваш первый большой проект, за который вам скорее всего будет стыдно впоследствии, но это не страшно.  Вы набрались бесценного опыта. Теперь можно почитать книжку с теорией, и слова в ней приобретут для вас новый смысл. Уже в процессе чтения у вас будут появляться мысли, как можно улучшить ваш проект, а где вообще переписать его заново. Вот и займитесь этим.
Иногда будет ощущение, что вы ничерта не понимаете. Можете остановиться здесь и глубже закопаться в вопрос. А можете просто пойти дальше. Возможно, вам просто не хватает опыта, и ответ придёт позже сам собой. В любом случае, не бойтесь этого чувства, это не конец света, его переживает каждый программист без исключения.
Потом вы встретите задачу, где вам реально понадобится рекурсия. Вот вы начали писать привычный цикл for, как ни в чём ни бывало, но вдруг понимаете, что вам его уже не хватает. Вы снова прочтёте этот жуткий непонятный раздел про рекурсию в книге со сложными непонятными примерами, но прочтёте как детективный рассказ, потому что у вас есть задача, которую нужно решить.
Потом вы доберётесь до классов и перепишете ваш проект в парадигме ООП. Вы поразитесь, насколько код стал более читаемым, насколько проще стало добавлять новые функции. Только так вы поймёте ООП, а не читая определения терминов "инкапсуляция, полиморфизм, наследование".
В общем, практикуйтесь и не бойтесь трудностей : )
Вопрос: Актуально ли это изучать в 2020 году?

Лучший ответ:
Не стоит, многое из этого уже мертво, многое почти мертво. Это план 10 летней давности. Если программа с тех пор не менялась, зачем вам такие учителя?

Худший ответ:
изучите это и уже будете в целом разбираться, а дальше - специализируйтесь в интересующей области