Всё начинается с малого. У меня была отличная задача - добавить одно поле, в базу, в класс, вывести на страницу, в класс веб-сервиса. Так я прошелся по всем слоям системы и познакомился с ней, с базой, с SOAP, с web-слоем. Считаю одной из лучших задач для джуна, позволяющей познакомиться со всеми слоями проекта. Вообще задания строятся на терминалогии предметной области, затем она обсуждается с наставником - как будешь делать, какие есть варианты, в результате чего определяется в общих словах реализация, ну а потом вперед, пишишь код, пишишь тест, показываешь, что всё работает, если ок, то коммитишь, потом наставник делает код-ревью и если проходит, то пойдет в прод, если нет, то исправляешь и по новой. Чем дальше в лес, тем дальше уходят от наставлений "Напишешь такой класс, используй такие интрефейсы " и т.п. в сторону самостоятельности и общения на языке предметной области, а потом уже и попроектировать дадут, а потом уже и не заметил как сам начал джунов наставлять.