Como já pontuaram nas respostas aqui, definir uma linguagem em níveis não é algo intuitivo.
Então, eu acredito que a resposta correta para sua pergunta seria a forma "correta" de aprender como as coisas funcionam "under the hood". Infelizmente, para essa pergunta não tem uma resposta simples, principalmente se teu conhecimento em inglês for limitado. De toda forma, quando eu me perguntei a mesma coisa, eu encontrei as respostas em conteúdos acadêmicos, como os seguintes livros:
Caso a parte teórica não seja tua praia, tu pode referenciar esse repositório e ter um contato direto com a implementação do código.
Bom, eu falei tudo isso porque para mim, o importante não é, necessariamente, aprender uma linguagem que vai te dar liberdade pra alocar memória ou mexer com ponteiros, mas sim aprender como as coisas funcionam "de verdade":
- O que é, tecnicamente falando, um ponteiro?
- Como C, Rust ou outras linguagem implementam ponteiros e por que algumas não possuem?
- Como arrays funcionam?
- O que são bits, bytes e seguintes?
- Como inteiros, char (e por que não strings) e outros tipos primitivos são representados no nível processador?
Quando tu souber responder essas perguntas, níveis de linguagens não vão mais importar, e sim o quanto elas pagam.
Só uma nota: se tu faz faculdade, vale a pena dar uma fuçada na biblioteca dela, sempre tem um material ótimo (e provavelmente em português).