1. Учите английский. Он должен быть не на уровне школы или института, а на уровне разговорного общения. Не поленитесь на отлично сдать и школьно/институтскую программу и отдельно учиться при помощи разных материалов, а потом и курсов с разговорными носителями.
2. плохая математика говорит не о том, что у вас плохо с математикой, а о том, что у вас плохо с самоорганизацией и целеустремленностью. Неужели школьную программу так сложно изучить, если любую непонятную тему сейчас можно подсмотреть в гугле, в ютубе, поискать старшеклассников-репетиторов, договориться с преподавателем.
Это очень важно - научиться изучать сложные, непонятные и неприятные вещи. В программировании такого полно, и когда говорят что в школе важно научиться учиться - это не просто слова. К сожалению до многих это доходит слишком поздно, когда уже невозможно выделять нужное время на учебу.
Поэтому добейтесь того, чтобы все предметы в школе были выучены на хорошие отметки. Нет смысла бежать за идеальными, но 5 из 12 это ниже среднего.
А программирование - неважно какой язык. Главное больше практики. Присоединяйтесь к каким-нибудь общим разработкам, в мире их много.