Дружище, умение самому ставить себе задачи является основой работы программиста. Неважно, на каком языке вы пишете. Постановка задачи это сама по себе задача, которую надо научиться делать. Задача рассматривается со всех сторон в уме, прикидываются инструменты, фреймворки и т.д. Но сначала вам надо "увидеть" в уме какой результат должен быть на выходе, иначе, решая задачу, вы не сможете сказать, насколько ваши действия способствуют достижению конечного результата. А найти задачу несложно - посмотрие по сторонам, многие задачи просто валяются вокруг и только и ждут, чтобы вы их увидели и решили.