Не трогайте пока бекенд, алгоритмы и прочее. Не стоит распыляться по куче областей, на каждую из них потом сможете выделить время и целенаправленно проработать.
На тему джуниорства: когда будете устраиваться узнайте как будет происходить рабочий процесс. Понятно что хочется броситься зарабатывать первые деньги, работать поскорее и все в таком духе, но имеет смысл спокойно выбрать, чтобы максимально продуктивно стартануть.
Сто процентов должен быть наставник, который целиком продумает архитектуру приложения и будет выдавать небольшие задачи. Знаю, что такое частенько бывает: на джуниора спихивают недописанное особо никому не нужное приложение, и ему приходится потом ковыряться по колено в чужом коде. Потому не в коем случае это должна быть не поддержка существующего приложения, а если поддержка, то работа должна заключаться в написании отдельных модулей. Надо самостоятельно писать взаимодествие между частями приложения.
Идеальный вариант: наличие наставника, который продумывает приложение, но не вытирает сопли по любому поводу, в совсем сложных вопросах готов все объяснить. Работа заключается в написании кучи небольших приложений разной тематики.