Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как в symfony secure проверить авторизованность пользователя?

Лучший ответ:
https://symfony.com/doc/current/components/securit...
/** @var AuthorizationCheckerInterface $authorizationChecker */
if (!$authorizationChecker->isGranted('ROLE_USER')) {
    throw new AccessDeniedException();
}

Если роль пользователя неважна (хотя хорошая практика все-таки всегда выдавать базовую роль)
https://symfony.com/doc/current/security.html#chec...
/** @var AuthorizationCheckerInterface $authorizationChecker */
if (!$authorizationChecker->isGranted('IS_AUTHENTICATED_REMEMBERED')) {
    throw new AccessDeniedException();
}

Худший ответ:
В Symfony есть так называемый фаервол.

В моём проекте это выглядит так:
security:
  encoders:
    App\Entity\User:
      algorithm: auto

  # https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
  providers:
    app_security_user_provider:
      id: App\Security\UserProvider

  #    registration:
  #        pattern:  ^/secure.registration
  #        stateless: true
  #        anonymous: true


  firewalls:
    dev:
      pattern: ^/(_(profiler|wdt)|css|images|js)/
      security: false

    authorization:
      pattern: ^/authorization
      security: false

    main:
      anonymous: ~
      stateless: true
      provider: app_security_user_provider
      guard:
        authenticators:
          - App\Security\Authenticator

        # activate different ways to authenticate
        # https://symfony.com/doc/current/security.html#firewalls-authentication

        # https://symfony.com/doc/current/security/impersonating_user.html
      # switch_user: true

  # Easy way to control access for large sections of your site
  # Note: Only the *first* access control that matches will be used
  access_control:
  # - { path: ^/profile, roles: ROLE_USER }

Это глобальная защита всех маршрутов.
Так же существует так называемая локальная защита чего-то, например каких то действий в экшене.
// throw exception
  $this->denyAccessUnlessGranted(UserVoter::READ["read"], User::class, "Вам запрещено просматривать пользователей.");
// or
// return boolean
$this->isGranted(UserVoter::READ["read"], User::class)
Вопрос: Есть ли возможность функцию которая принимает callback научить работать с async await?

Лучший ответ:
В Node.js - utils.promisify.

Худший ответ:
Как-то так (врапперы можно можно поискать в npm)

const addLocation = (city, coord) => new Promise((resolve, reject) => {
  geo.addLocation(city, coord, (err, reply) => {
    if (err) reject(err)
    else resolve(reply)
  })
})

try {
  const reply = await addLocation('Toronto', {latitude: 43.6667, longitude: -79.4167})
  console.log('added location:', reply)
} catch (err) {
  console.error(err)
}
Вопрос: Как запросить у пользователя желаемую фигуру посредством выбора из существующих функций для рисования объектов?

Лучший ответ:
Полагаю, вы имеете в виду нечто в виде

def func1():
    print('func1')

def func2():
    print('func2')

funcs = {1: func1, 2: func2}

funcs[1]()

Худший ответ:
def func1():
    print('func1')

def func2():
    print('func2')

funcs = {'1': func1, '2': func2}
func_nmbr = input('Введите, пожалуйста, номер фигуры с 1 - 4: ')
funcs[func_nmbr]()
Вопрос: Как организовать печать в холодном складе?

Лучший ответ:
Ну элементарно же!
У вас выбор из трех вариантов- Покупаете принтеры способные работать в температурных условиях вашего склада. Обеспечиваете обычным принтерам комфортный микроклимат. Бытовки, гермобоксы, системы обдува теплым воздухом, и.т.д.Просто ставите обычные принтеры и печатаете - авось будут работать. 

Худший ответ:
На принтер направить тепловентилятор, вокруг принтера сделать фанерный кожух, размером достаточным чтобы можно было менять бумагу картриджи и т.п.
Вопрос: Как бороться c memory leaks в pods на кластере Kubernetes?

Лучший ответ:

В конфиге kubelet выставляете нужное кол-во оперативы для системных и обычных подов
k8s при создании cgroup пода выставляет memory.limit_in_bytes соответственно лимиту
В подах, где возможны утечки, выставляете resources.requests.memory равное лимиту

Первое резервирует ресурсы для системных и кластерных сервисов, второе будет дёргать OOM при достижении лимита, третье убирает возможность оверпровижена.

Худший ответ:
Ммм, а разве ограничение ресурсов памяти не помогает в этом?
resources:
  limits:
    memory: "1024Mi"
Вопрос: Как сделать лицензионное соглашение и политику конфиденциальности?

Лучший ответ:
Если приложение коммерческое, то это область в которой можно легко попасть в неприятности, поэтому я бы заплатил юристу за разработку этих документов. А если некоммерческое, то надо где-нибудь написать "Коммерческую деятельность не осуществляю, ничего не собираю, ни за что не отвечаю, приложение предоставляется как есть и используется вами на свой страх и риск".

Худший ответ:
Как сделать лицензионное соглашение и политику конфиденциальности?Как и любой юридический документ.
Взять и написать.
Если есть соответствующие знания и умения.
Или обратится к юристу - он напишет.
Вопрос: Как перенести сайт html или mhtml на WordPress?

Лучший ответ:
С такой постановкой вопроса только на фриланс. 100% рабочий вариант.

Худший ответ:
Вам нужно прочитать о верстке под WP и изменить html файлы соответствующим образом.
Вопрос: Страница обходится роботом, но отсутствует в поиске — как добавить сайт в поиск Яндекса?

Лучший ответ:
Эх, вспомню, когда работал км/маркетологом :).
Перво-наперво рекомендую создать два файла:robots.txt sitemap.xml 
Первого у вас нет от слова совсем, второй составлен криво, в нем присутствует одна http://www.керчь-вода.рф/tel:+7(918)650-78-33 с 404 ответом.
Рекомендации яндекс по:robots.txt sitemap.xml 
Без них сайт, конечно тоже проиндексируется но значительно дольше будет это делать. Вдобавок в индекс может попасть "мусор" (который в последствии даст в вебмастере предупреждение "страница с малополезным контентом", я один раз забыл закрыть несколько директорий и схлопотал фильтр - выходил из под него 2-3 недели).
Проверить, что сейчас находиться в индексе можно набрав в поисковой системe site:{название сайта}:site:www.xn----8sbfic3a5an7d7b.xn--p1ai host:www.xn----8sbfic3a5an7d7b.xn--p1ai
P.S. что бы ещё ускорить индексацию, в яндекс.вебастер (в гугл консоле не помню есть такой раздел или нет):
1. После создания карты сайта - добавьте её в разделе: "Индексирование-Файлы sitemap" ссылку на карту
2. После создания robots.txt проверьте его: "Инструменты-Анализ robots.txt"
3. В разделе "индексирование" - "мониторинг важных страниц" добавьте те страницы, которые нужно увидеть в поиске.
Это самый базис, который надо делать сразу после снятия запрета на индексирование. Дальше уже можно смотреть в сторону турбо-страниц и amp, создание микроразметки (op, schema).

Худший ответ:
На данный момент страница в поиске есть. https://yandex.ru/search/?text=site%3A%D0%BA%D0%B5...
Вопрос: Как сделать, чтобы консольная команда Windows автоматически выполнялась при запуске ОС?

Лучший ответ:
Либо скрипт в папку автозагрузки, либо воспользуйтесь Планировщиком задач (триггер - вход пользователя в систему, запускаемый файл - node с параметрами).

Худший ответ:
Можно создать батник ( .bat файл ), в который записать вашу команду и поставить его на автозагрузку.
Вопрос: Эффективный алгоритм для двустороннего поиска?

Лучший ответ:
Зависит от того, сколько это "достаточно много" и сколько есть оперативной памяти под эту задачу (ПК, смартфон, эмбедед разработка?).
Если память позволяет, то самым быстрым будет два бинарных дерева (либо два сортированных массива-списка, но тогда после добавления элемента придётся пересортировывать или искать место вставки).
Если A и Value сами по себе большие и/или сложные объекты, которые нельзя продублировать, то можно сделать две индексных таблицы, ссылающихся на оригинальные данные. 
Самое быстрое - два отсортированных массива, в каждом из которых и А и Value.
Самое удобное, но чуточку менее быстрое - два бинарных дерева.

Худший ответ:
если заточены именно на скорость, то хранить дубли, это нормально.
то есть хранить все комбинации значений:
Ключ-Значение
А - value1
value1 -А
Вопрос: Как вы планируете свой рабочий день, чтобы не выгорать?

Лучший ответ:
Интенсивной работы в день 5-6 часов максимум. Больше - только на ограниченное время, с обязательной компенсацией отдыхом. В офисе 9-18 работают в целом так же, кулер, поболтать, что-то обсудить 10 раз в день, почитать статьи. По моим личным ощущениям на удаленке работа интенсивнее, даже с учетом меньшего количества часов. Поэтому работаю по часам и на ставке больше чем в офисе на 8 часовом рабочем дне.
Пробовал помодоро - не зашло. 
Бывает что накапливается и какие-то дни работа вообще не идет - даю себе отдохнуть, могу поработать часа два-три. 
Что-то новое изучаю иногда в формате перерывов - поработал - почитал. Так как график и учет времени гибкий, это не считается рабочим временем, и совесть не мучает. Могу посередине дня отдохнуть пару часов если совсем не идет, или сходить прогуляться или еще что.
Свои проекты сначала пилил "по вечерам и выходным", особенно когда работал 9-18 потом понял что так не пойдет, на долгий срок это провальный подход, поэтому сейчас больше работаю как часть рабочего времени. Уменьшаю основную работу (при этом естественно уменьшается доход).
Самое главное - правильно оценить свои силы и исходя из этого решать сколько куда их потратить. Может у вас сил хватит и на работу и на проекты и на хобби и еще перед сном почитать - без проблем, делайте все это. А если их не хватает даже на 8 часовой рабочий день - стоит это признать и не пытаться себя нагрузить сверх меры, получите новый срыв. Или отказаться от чего-то или искать другие способы кроме как "работать больше". Тут главное быть честным с собой и не "добавлять себе очки".
В целом выгорание не зависит от объема работы - объем работы влияет на усталость, на выгорание влияет нервное напряжение и оно может быть и при 2 часах работы в день а может и не быть при 10. 
Если у вас реально начинается истощение - то определитесь это усталость или выгорание, если усталость - то организовать рабочее время и контролировать нагрузку, может даже в ущерб доходу, свое состояние очень важно. 
Если выгорание - то надо искать причины, если их не устранить - то ничего не поможет.
Если вы уже один раз проходили через все это - ищите общее, анализируйте и поймите что вы сейчас делаете так же как и тогда и что надо поменять.

Худший ответ:
Ксения, Я думал, думал... Я всё понял!
Оказывается, это - неправильные пчёлы!
Совсем неправильные!
И они, наверное, делают неправильный мёд!м/ф "Винни Пух и все, все, все."Вы и работодатель - находитесь в равных правах! ЗАПОМНИТЕ ЭТО!
Не забывайте корректировать со своей стороны условия договора так, чтобы не иметь проблем со здоровьем!
Они делают из Вас батарейку, а Вы - тратите своё здоровье, пытаясь быть честной!
Это - уже не просто работа, а нечто иное.
Оцените своё время так, чтобы не тратить более 4-х часов на непосредственную работу по разработке.
Учитесь работать и отдыхать от работы одинаково плодотворно не теряя в доходе.Научитесь себя ценить!
Вопрос: Xdebug может не работать после обновления phpstorm или php?

Лучший ответ:
Раз уж обновил xdebug - обнови конфиги на корректные.

https://xdebug.org/docs/upgrade_guide

Худший ответ:
Может кому пригодится. Заработало с такими конфигами файла etc/php/7.4/mods-available/xdebug.ini

zend_extension=xdebug.so
xdebug.mode=debug
xdebug.start_with_request = yes
Вопрос: Как резиново сверстать этот макет?

Лучший ответ:
Задаете всё в процентах, текст и картинки можно уменьшить пропорционально ширине окна браузера с помощью vw

Вопрос, не прибегая к медиа-запросам
Блоки которые не должны быть на мобильных тоже будете скрывать без медиа-запросов?)

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

Худший ответ:
Посмотрите, возможно, что вам очень зайдёт вот это видео. И другие, которые есть в описании.
Вопрос: Как обойти затраты на ПО?

Лучший ответ:
Как то ставил Linux Mint - достаточно схож с виндой, а если темки поставить то вообще очень-очень.
Программы 3д моделинга и печати: Blender, статья
Для разработки это Eclipce
для C# есть Mono
Игровой движок: Panda3D
Про открытые популярные CMS типа Wordpress и Drupal вообще молчу.
Но чтобы совладать с Linux - нужен грамотный специалист, способный вбить описание задачи в "Гуглопоиске" - тут придется раскошелиться, умных людей мало(статистика с тостера).
А если отказаться от EV3 в пользу Arduino - то можно сэкономить еще "туеву хучу бабла" и научиться паять.
хотя и на EV3 можно найти https://marketplace.eclipse.org/content/lejos-ev3-plug www.lejos.org

Худший ответ:
программы для разработки и компиляции c, c++, +, c#, программы для разработки и компиляции JavaScript,
Eclipse. Скорее всего в нем это все есть. Это комбайн гигантских масштабов.конструктор Web-сайтов
Эт че? программы для программирования EV3.
Вы взялись за очень специализированную область :) Может быть леговские программы заработают в wine, но совсем даже не факт.
В качестве бесплатной оси у Вас единственный вариант - линух (ну или BSD, но там все заметно хуже :) )
Это как раз тот случай, когда переход на линух бессмысленен из-за чрезвычайно узкой специализации и работы с пропертиарщикми. Впрочем, если упарываться именно на предмет работы в линухе - я бы рассмотрел вариант договора с LEGO на предмет самостоятельной разработки программ для программирования EV3 - им конечно забашлять надо будет.
Вопрос: Какие есть облачные сервисы для хранения своей аудиоколлекции?

Лучший ответ:
У меня мое медиахранилище лежит на Plex, которое выставлено наружу. 5 лет полет нормальный.

Худший ответ:
Залейте на свой канал в телеграм и слушайте откуда хотите) и авторские права не страшны и бесплатно и плеер есть)
Вопрос: Как скомпилировать проект?

Лучший ответ:
Там есть файл *.sln. Открываете его в Visual Studio и собираете нужный проект.

Худший ответ:
Установите компилятор, например, GCC, скачайте архив с GitHub, измените то, что вам надо, затем скомпилируйте через командную строку, например так: g++ myprog.cpp, если есть заголовочные файлы, то добавите флаг -o. Подробнее обо всем этом здесь. Либо можете установить Visual Studio, изменить там и скомпилировать, вот пошаговая инструкция.
Вопрос: Как быть с медленными заказчиками?

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

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

Лучший ответ:
какие отклики можете дать?
Учите английский и не связывайтесь с русскими биржами.

Худший ответ:
Не пользовался, но как вариант youdo
И профи.ру  не совсем биржа, но рассмотреть можно. Правда мне там не нравится, что за отклик на задачу нужно отбашлять процент. И не факт что возьмешь задачу, а это не круто ....
Вопрос: Как сделать пазл на js?

Лучший ответ:
Крч грубо сделал, разбивает на квадратные части и колизия тож по квадратам,а не по контуру. Количество частей разбивки можно переменной настроить. Зато без всяких библиотек
snippet

Худший ответ:
Сначала нужно определиться, делать это растром или векторной графикой.
В перспективе, лучше делать это растром (то есть на canvas), и тут лучше выбрать библиотеку, которой это все будете рендерить.

Например, выберем Pixi.js

Создаем полотно, и добавляем на него спрайт с буквой N-е количество раз, и для каждой копии этого спрайта накладываем маску. Маску нужно предварительно сгенерировать на основе линий для разрезания (это уже отдельная тема обсуждения)
Вопрос: Asterisk. Организация конференц связи. Готовые решения?

Лучший ответ:
А чем сам Астериск-то не устраивает? Там это есть, настраивается через FreePBX.

Худший ответ:
openmcu-ru - свободная реализация MCU. При наличии прямых рук и видеокарты с аппаратным кодером, может работать очень шустро.
Вопрос: Как обойти фильтрацию провайдера по MAC-адресам?

Лучший ответ:
Роутер настроен точкой доступа (кабель от провайдера подключается не в WAN-порт) - то есть это просто wi-fi-свич? Ну так поставь раутер, навесь ему на внешний порт мак из разрешенных, включи NAT и наслаждайся.

Худший ответ:
В лоб - никак. Только поставить роутер роутером, на тот порт, что идет к прову - мак из списка разрешенных, на самом роутере нат в нужный IP и вуаля.
Вопрос: Как правильно назначить seo url?

Лучший ответ:
Если это УРЛ для категории, т.е. по нему будет подборка материалов на соответствующую тему, то я не вижу ничего плохого в site.ru/ethereum-eth/, вполне нормальный УРЛ. 

В погоне за трафиком и не такое вытворяют. Я не удивился бы, увидев что-то наподобие ethereum-eth-efirium или ethereum-eth-efir.

Если всё-таки решите, что нужен УРЛ из одного слова, то конечно, нужно выбирать ethereum.

Худший ответ:
Не имеет значения как Вы сгенерируете URL - это не даст никакого профита в ранжировании.
Вопрос: Совместен ли БП bi quiet 700w и видеокарта rtx 2070 super?

Лучший ответ:
в поиск
rtx 2070 потребляемая мощность
+100вт. на всё остальное (если не гонишь проц)
700вт  = хватит за глаза (пусть он даже китайские 700вт. =его хватит
и нет смысла переплачивать
бери лучше тот,на который дают большую гарантию

Худший ответ:
Конечно совместим, да у тебя ещё и остаток будет
Вопрос: Как вы запоминаете термины языка?

Лучший ответ:
Это вы себя накручиваете.

Никто специально не сидит и не учит все термины. Тут как с другим языком — чем больше общаешься, тем лучше запоминаешь. Тут тоже самое: чем больше используешь определённые технологии, тем больше будешь знать терминов из этой области. А что не используешь, то конечно же забываешь. Не бери в голову. Если собес не проходит только из-за :not, то оно и к лучшему

Худший ответ:
никак. зачем помнить то что не используете?
я с успехом забыл уже штук 10 языков со всеми их терминами, но если надо будет, быстро найду все что нужно. Это будет медленнее чем у того человека кто ими активно занимается, конечно, но по определению это для меня какая-то побочная разовая задача.
А то что используется постоянно - вы и так будете помнить.
Можно иногда освежать какие-то нюансы по текущей вашей технологии и читать чейнджлоги чтобы знать что там нового появилось.
Раз в два-три года устраивать себе более серьезное обновление знаний.

этого достаточно.

ПС. собеседования - это отдельный дивный мир, в 90% случаев к ним надо просто зазубрить кучу бесполезной информации, которую вас спросят и которую вы забудете как только приступите к своим обязанностям в этой компании.
Вопрос: Ошибка при нажатии на кнопку, что делать?

Лучший ответ:
if (mail("@yandex.ru",
     "Новое письмо с сайта",
     "Номер телефона: ".$tel,
     "From: no-reply@mydomain.ru \r\n"));  <--------- ОШИБКА(;)?
{
  echo ('Письмо успешно отправлено!');
}

if (mail("@yandex.ru",
     "Новое письмо с сайта",
     "Номер телефона: ".$tel,
     "From: no-reply@mydomain.ru \r\n"))
{
  echo ('Письмо успешно отправлено!');
}

Худший ответ:
Точки с запятыми для лохов?
<?php
$tel = $_POST['tel'];
$tel = htmlspecialchars($tel);
$tel = trim($tel);
$tel = urldecode($tel);
if( isset( $_POST['my_button'] ) )
    echo 'Сообщение отправлено!';
if (mail("@yandex.ru",
     "Новое письмо с сайта",
     "Номер телефона: ".$tel,
     "From: no-reply@mydomain.ru \r\n"))
{
  echo ('Письмо успешно отправлено!');
}
  else{
      echo ('Есть ошибка! Проверьте данные...');
    }		
?>
Вопрос: Какие модули/библиотеки должен знать каждый python-ист?

Лучший ответ:
Когда я только начинал изучать python, начинал со следующих библиотек: обработка изображений (pillow)(узнаешь про транспонирования, матрицы и т.д), в качестве GUI для начала порекомендую tkinter, для чуть более продвинутого уровня PyQt (ткинтер легче по многим причинам, но не очень поворотлив), в качестве научных библиотек numpy, scipy, matplotlib (неплохое комбо, но это уже чуть более продвинутый уровень), для веба: requests, bs, для регулярных выражений re (в сочетание с вебом подходит). Впринципе всё, конечно можно ещё назвать xslxwriter, wawy, но они имеют довольно узкую специализацию. Для тебя могу посоветовать начать с встроенных библиотек (можешь порыться в Python\Scripts), а потом уже переходить на другие. Удачи тебе в изучении!
P.S. Как писали выше, нет каких-то определенных библиотек, необходимых для каждого, мой ответ - лишь список того, с чего начинал я, изучать их или нет - выбор твой

Худший ответ:
socket хотя бы синхронный tcp/udp
Вопрос: Как настроить VPN на Windows до упора?

Лучший ответ:
Что бы гарантированно никакой трафик не ходил без ВПН просто не выставляйте шлюз по умолчанию на компе.
При этом маршрут до ВПН сервера нужно прописать статически, ну и настроить автоподключение к ВПН. 
Таким образом ВПН соединение может быть установлено (благодаря статическому маршруту), при подключении ВПН пропишется шлюз по умолчанию и только после этого другой трафик сможет начать ходить, но уже через ВПН.
Если будет обрыв соединения в ВПН, то маршрут по умолчанию станет не действительным и трафик перестанет ходить автоматически до переподключения ВПН.

Худший ответ:
Могу ответить исходя из используемых нами разработок для Windows. В настройках программы, на вкладке "Общее", есть опция "Отключать основной шлюз" она же Kill-Switch. Если там выбрать "При запуске программы", то сразу же после запуска программы, интернет без VPN не будет работать.
Можно поставить программу в автозапуск первой в очереди, чтобы "отключать" интернет на компьютере, пока соединение с VPN не будет установлено. Эта схема должна решить вашу задачу.
Вопрос: Какой удостоверяющий центр сертификации выбрать?

Лучший ответ:
Мне неизвестны ни OSS решения, ни коммерческие. CA - это не решение. CA - это авторитет :) Если у Вас сеть на винде - есть оснастка "Служба сертификатов" - служба ставится (на AD сервер), запускается, генерится корневой сертификат - и вперед, выпускать. Но предварительно естественно всем, кто будет пользоваться Вашими сертификатами - нужно поставить Ваш корневой в доверенные.
Вот это и есть самая большая проблема. Потому что если Вы планируете корпоративный CA - Вы это запросто сделаете. А если общедоступный - он будет никому не нужен, потому что никто его не знает.
Вообще Вы слишком мало написали для ответа. Сертификаты - тема серьезная, мало кому понятная. Если что - мыло в профиле, могу поделиться набором скриптов (которые собственно и есть CA :)), которыми рулю конторским CA. Но скрипты для линуха (к сожалению, нормально вести CA для выпуска почтовых сертификатов, то есть сертификатов для использования в MS Outlook и прочих почтовых клиентах, без стороннего софта нельзя)

Худший ответ:
Есть задача организовать УЦ для некоммерческой корпоративной организации в России.Отлично, но в чем проблема?Подскажите, пожалуйста, какие есть open source решения или коммерческиеЧего решения? Сертификат и подпись сформировать? Так это делается встроенными системными утилитами в любой современной ОС.но не с выпуском подписи в 500 рублей за ЭЦП.??? Выпуск сертификата абсолютно бесплатен, я могу прям сейчас сгенерировать пару тысячь сертификатов, и это не обойдется мне ни копейки.
Вопрос: Как прокачать логику?

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

Худший ответ:
только обучением

разбирайте больше решений задач и мозг освоит приемы, их не так много на самом деле - например, самый известный - доказательство от противного
Вопрос: Как сделать простое web-приложение по записи на прием?

Лучший ответ:
Присмотритесь к Google формам. Также есть аналог от конкурента: Яндекс формы. Просто забейте в поиск и легко их найдете.

Худший ответ:
Все придумали за нас https://www.yclients.com/