So cosa è il Java, ma proprio per questo non lo trovo adatto ad iniziare.
Credo che per uno che affronta per la prima volta la programmazione sia meglio non tralasciare cose come la gestione della memoria, e che sia meglio saperlo per poi non usarlo in altri linguaggi che non saperlo e non usarlo.
Ma infatti Java non è adatto ai novellini. Così come non lo è il C++.
Sulla gestione della memoria, ecc... vale sempre il criterio che più se ne sa e meglio è. Però ogni cosa a suo tempo. Personalmente iniziai da ragazzino con Basic, quindi figurati se avevo nozioni relative al modello di programmazione della cpu. Il passaggio successivo fu Pascal e poi scrissi quache problema direttamente in linguaggio macchina ( senza assembler ), aiutandomi con un libro che riportava la mappatura tra codici mnemonici e stringhe di bit nel linguaggio macchina.
Chiaramente è stato necessario acquisire quelle informazioni, senza le quali si è parecchio mancanti. Però lo si può posticipare ad un'ipotetica fase 2.
Piuttosto il problema dell'op è che se comincia ad impelagarsi nella programmazione Android ( già sui build tool è guerra tra Gradle, Maven, ecc... ), finisce per rimanere intrappolato in una ragnatela di concetti che lo portano fuori strada. Per questo dicevo che è più opportuno programmare su PC e usando ambienti REPL e possibilmente linguaggi che non siano fusi in complessi framework, cioè linguaggi che offrono immediatezza. Lo è C e lo è Python. A livelli di espressività diversi ovviamente, ma almeno i loro costrutti mappano direttamente in azioni tangibili, il cui risultato si può vedere. Non è che devi mischiare file Xml con codice Java, il tutto messo assieme da istruzioni di script Gradle, ecc...