Es que como te hemos comentado todos, sale mejor empezar con algo más simple para empezar.
Java es un lenguaje orientado a objetos mientras que javascript, python y otros son estructurados (tambien tienen orientacion a objetos, pero no es obligatorio implementarlo).
El tema mátematico no va a ser ningún problema y de hecho, yo creo que para aprender a programar con saber leer y escribir es suficiente. Ahora bien, empezar por tu cuenta supone otros problemas que no tienen nada que ver con matematicas.
Lo primero es que hay que entender las cosas. Casi todo es fácil y con un par de ejercicios o tres se le pilla el truco a muchas cosas; el problema de hacerlo tu solo es que es muy muy facil que lo malinterpretes o mezcles cosas. La primera regla que te tienes que grabar a fuego es "que algo funcione, no significa que este bien hecho". Una tabla en dos piedras funciona como mesa, pero es una mierda de mesa; yo creo que se me entiende.
Segundo que empezar por java desde cero no es lo más recomendable. Con un profesor o alguien que te guie si, no es tanto problema; pero por tu cuenta vas a tener que lidiar desde el minuto 1 con la jvm, la orientacion a objetos, compilar y empaquetar librerías o externalizarlas, y mil cosas más que solo van a servir para volverte loco. Insisto que no son dificiles, pero te complican la vida y tu solo se van a hacer cuesta arriba.
Como ya te han dicho, mi recomendación también va a ser python o javascript; con el extra de que ambos tienen aplicaciones reales y se utilizan de una manera u otra en producción, no va a ser tiempo "perdido" como ponerse con fortran, pascal, delphi o algún dinosaurio parecido. Además, si tienes costumbre de trabajar con linux/unix mejor y, en ese caso, mejor que con los anteriores, empieza con shell scripting. Que es una chorrada, te va quitar un mogollon de trabajo absurdo en el futuro y para entender las bases te sirve.
Como extra, puntos interesantes que vas a necesitar saber y entender (yo creo que además va a ser un buen orden):
1- Variables - Mínimo que es y como utilizarlas. Dependen un poco del lenguaje que uses, pero la base es la misma siempre.
2- Condiciones - If, elseif, else... lo mismo, depende un poco del lenguaje, pero las condiciones hay que usar si o si y hay que entender bien como funcionan.
3- Bucles - while, for... hay que entenderlos tambien, como usarlos, como funcionan, limites de un bucle, escapatorias.
4- Ambitos de variable, vida de variable... depende un poco del lenguaje y quien lo explique; creo que lo más general es llamarlo "ambito de variable" pero lo mismo me estoy equivocando.
5- Funciones, metodos... lo mismo, depende del lenguaje se llama de una manera u otra; son agrupaciones de codigo por funcionalidad para poder reutilizarse sin escribir lo mismo todo el rato.
6- Recursividad. Esto es un poco más dificil de pillar y es lo más olvidado, pero es una de las claves de programar bien, rapido y eficientemente. Primero las cuatro anteriores, luego esto si eso.
Y como consejo es que programes tonterías matemáticas de niño de 6 años, tipo sumar, restar, multiplicar y dividir usando y teniendo claro los 6 puntos anteriores. Y huye de los frameworks, librerias graficas, IDEs que generen codigo; van a ser muletas que a la larga te van a lastrar, notepad++ para programar es más que suficiente y te va a generar fallos que hay que cometer al principio para entender las cosas. Si no el día que te cambien el programa o el entorno (y te lo van a cambiar, eso te lo aseguro) vas a llorar sangre.
Un saludo.
1