Язык всегда имеет смысл выбирать от задач. Об этом уже неоднократно писалось и будет писаться.
Насчет сложности тех или иных языков - все это ерунда. Не верьте никому. Если вам нужно решить какую-то задачу вы ее решите на том языке на котором можете, но лучше если это будет язык специально предназначенный для таких задач.
Что касается бэкенда — java и C# прекрасные языки, но только до тех пор пока стоящая перед вами задача в них решается. Первый кстати более предпочтителен, поскольку в нем сильно больше библиотека готового кода.
Как вариант советовал бы обратить внимание на python — у этого языка готового кода не меньше (а то и больше) чем у java, но он более популярен,а это значит что его информационная база (справки, форумы, обучающие материалы, документация и т.д) более обширна. А это в свою очередь значит что его проще изучить. Правда у него есть недостатки (читай - достоинства), которых нет в java… Поэтому я и говорю что выбирать язык «нужно от задач»!
PS: Учите и java и python - эти языки сильно дополняют друг друга и позволят при правильном владении инструменталом решать ЛЮБЫЕ задачи. При знании одного из этих языков вы уже сможете это делать достаточно профессионально, но работая с обоими — вы не будете иметь цены… естественно в рамках ЗАДАЧ решаемых на вашем предприятии…