Не знаю. Никогда не рассматривал язык программирования как детский стишок, чтобы его "выучивать". Сколько надо времени, чтобы выучить дрель или молоток? Тут сам вопрос поставлен неправильно. Бери учебные задания по программированию, читай документацию и решай их на языке, что ещё надо?
А вот дискретную математику действительно надо изучать как отдельную дисциплину, иначе от твоего "выученного" языка толку не будет никакого. Без математического аппарата ты даже не поймёшь, что попытка "выучить" язык - бессмысленная трата времени. Если, скажем, калькулятор имеет 20-30 кнопок, то можно их последовательно выучить одну за одной. А язык программирования - это набор ортогональных друг к другу средств, которые могут комбинироваться в такое количество программ, которое ты даже количественно оценить не сможешь, не говоря уже о том, чтобы их "выучить". Владение языком программирования оценивают с точки зрения умения решить на нём определённые задачи.
И вообще, неплохо бы хоть приблизительно определиться, чему ты хочешь учиться: программист,
юрист и
художник - сильно разные профессии.