Какие задачи вы дали были бы начинающему angular разработчику?
Да и какие задачи вы делали когда только начинали?
Мне дали помниться в зубы ангуляр (1.0 еще), 2 недели на изучение оного и проект который надо сделать... и пришлось делать... было весело)
В целом помимо "подтянуть перед этим JS", сейчас я бы еще рекомендовал babel.js, без него уже не представляю как можно писать поддерживаемый JS код (можно конечно но его банально больше). Так же вам нужна удобная система сборки - рекомендую webpack, так как с ним проще стартовать и он форсит вас использовать модули. Рекомендую вот этот скелет проекта. Ну и приятный побочный эффект, у вас ваши сервисы не будут напрямую знать что они используются в контексте ангуляра.
Что до ангуляра - для начала я бы рекомендовал таки почитать документацию, angular styleguide и т.д. Хотя бы недельку. Так же рекомендую с ним использовать TDD (именно юнит тесты с моками всех зависимостей, если тесты писать тяжко - надо придумать как сделать так что бы было попроще, например мокать не http а сервис и т.д.), при обучении особенно хорошо. Очень упрощает поиск слабых мест вашей архитектуры приложения а так же позволяет проще его менять.
Если вы примите для себя пару простых правил, аля "стараться реже использовать все со знаком доллара напрямую", типа $scope в контроллеры не пихать, вообще поменьше зависимостей от ангуляра для ваших сервисов, стараться не юзать link у директив (ну или делать там только то для чего он нужен - для связывания директивы и DOM, мониторинг атрибутов и вызов контроллера директивы и т.д.), то жить станет чуть проще. Тогда ангуляр сам по себе станет чуточку проще. Ну и да, вообще не использовать независимые контроллеры (ни ng-controller ни контроллеры для маршрутов ngRoute ни для uiRouter, вообще посмотрите в сторону angular/router)
По задачам.... я бы рекомендовал побольше писать различных компонентов (директивки), которые могут вам понадобиться. Например, так как я по большей части делаю админки на ангуляре, то мне полезны различные UI компоненты, которые можно реюзать, например, фильтры для списков. Это хорошее упрожнение как по мне, так как... ваши компоненты ничего не должны знать о том, как у нас хранятся данные и что вообще мы с ними планируем делать. Там можно побаловаться и с трансклюдами, и с зависимостями между директивами и т.д.
Далее разобраться с модулями, сервисами, фабриками сервисов... как вообще ваши сервисы можно регистрировать в контейнере зависимостей ангуляра. Для этого могут подойти какие-нибудь задачи, аля... сервис для организации авторизации. Сначала реализовать оный, потом попробовать сделать его реюзабельным вынеся первоначальную конфигурацию в провайдер и передавая настройки в конструктор сервиса... ну как-то так словом.
А потом реализовать какую-нибудь апу. А лучше вместе, пописали директивки, попробовали их заюзать. Неудобно - пилим дальше.
Юнит-тесты писать.