Подойдет любой проект, который будет интересен именно вам. Можно самому придумать простой проект, допустим калькулятор, а затем постепенно усложнять до желаемого уровня, постепенно повышая сложность. Или, как я слышал (но сам не пробовал), можно смотреть заказы на фрилансах, там порой сразу заказчики показывают задачи. Любой проект берется и делается.
Можно в интернете поискать практические задачи по Java - легко находятся, разной сложности. Главное тут даже не сложность задач, думаю, а именно факт того, что программы доводятся до конца.
Ну и, конечно, стоит найти человека, который уже достаточно опытный, а еще лучше, если имеет опыт в преподавании, чтобы проверял программы и давал практические советы по написанию программ - это самое важное. Если не боитесь, можно даже выкладывать в сообщества или на форумах по программированию с просьбой критиковать)
Можно бесконечно учить программирование в теории, но целостная картина появится только после практики с критикой профессионалов)