Задачники - фигня оторванная от реальности. И не только в программировании. По задачникам в лучшем случае вы научитесь решать известную вам и четко сформулированную задачу и быстро утратите этот навык ввиду неактуальности.
В реальном мире разработки нет идеальных решений, иногда даже нет правильных и ваша задача - найти оптимальный компромисс.
Есть хорошие практики и вы не должны их изобретать, вы должны именно перенимать чужой опыт.
Если вы только что начали изучение программирование, задачи с которыми вы встречаетесь - мелкая рутина. Обучение на этом этапе заключается в изучении инструментов, понимании того, что происходит в коде. Даже если у вас есть собственные идеи по решению задач, вы всё равно сейчас должны сверять свои решения с решениями более продвинутых программистов.
В целом же, те самые продвинутые тоже не горят желанием столкнувшись с новой для них проблемой ломиться изобретать что то свое. В первую очередь всегда проводится исследование вопроса, какие есть наработки в этой области, готовые решения, что думают люди занимавшиеся подобным.
Так что расслабьтесь, гуглите почаще, быстрее впитаете в себя чужие знания. И да, больше практикуйтесь, реализуйте свои фановые проекты, переписывайте их, через несколько итераций заметите что желания погуглить появляется реже.
Для общего развития почитайте общую литературу по программированию. Начните с книги Совершенный код.