задачки по js это хорошо, но только практика на реальном проекте продвинет дальше. начиная изучать новый фреймворк я беру типичные задачи из старых проектов и реализовываю на нем. вот это и будет отправная точка. типичные требования: получил данные с сервера, показал, обработал фильтрами(например отобразить список данных по убываню даты и тд). усложняя можно добавить авторизацию / логин, редактирование данных и посыл обратно на сервер. сервер разумеется не нужен. все это моками делать, отсыл на сервер достаточно выплевывать в консоль данные. ну и на последок то что будет кочевать из проекта в проект(приставку angular можно в расчет не брать):
"angular-cookies": "~1.5.0",
"satellizer": "~0.14.0",(это авторизация)
"ngstorage": "~0.3.10",
"angular-youtube-mb": "latest",
"angular-ui-router": "^0.4.0",(это ток для SPA)
"angular-rangeslider": "^0.0.14",
"angular-ui-select": "^0.18.1"
"angular-bootstrap-lightbox": "^0.12.0",
"ng-videosharing-embed": "^0.3.4",
"angular-recaptcha": "^3.0.4",
"ng-file-upload": "^12.2.5",
"oclazyload": "^1.0.9",
"ng-img-crop-full-extended": "ngImgCropFullExtended#^6.0.1",
"ngToast": "ngtoast#^2.0.0",
"ng-directive-lazy-image": "afkl-lazy-image#^0.3.2",
"owl.carousel": "^2.2.0",
"angulargrid": "^0.6.3"
"bootstrap": "xxx"
на закуску можно подучить фреймворк. писать на чистом js или jq уже не модно и на самом деле геморно. если это не сайт визитка. вебпак можно ещё.