Как вариант, абстрагироваться для начала от самого языка и придумать алгоритм решения задачи в голове. А уже потом думать как алгоритм реализовать. Можешь даже на листочке выписывать словами или блок-схемы рисовать. Со временем научишься думать кодом.
Недавно Павел Дуров сказал хорошую вещь
Я также узнал, что в этом мире нет сложных задач – только множество маленьких, которые выглядят страшно, когда их объединяют. Разделите большую задачу на более мелкие части, организуйте их в правильной последовательности – и вы справитесь.
Умение разделять задачу на подзадачи очень важно.
Давай предположим у тебя задача парсить вопросы и ответы с данного сайта. Вначале поставь задачу получить вообще данные с этого сайта. Потом поставь задачу вычленить вопросы, потом получить ответы, потом всё это куда-нибудь сохранить.
Если ты занимаешься каким-то олимпиадным или спортивным программированием, надо изучать структуры данных и теорию алгоритмов и т.д. Вот тут например -
https://ru.algorithmica.org/