Executando verificação de segurança...
2

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:

  1. Computers Systems: A programmer's perspective
  2. Structure and Interpretation of Computer Programs

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":

  1. O que é, tecnicamente falando, um ponteiro?
  2. Como C, Rust ou outras linguagem implementam ponteiros e por que algumas não possuem?
  3. Como arrays funcionam?
  4. O que são bits, bytes e seguintes?
  5. 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).

Carregando publicação patrocinada...
1

Vamos lá para o meu entendimento sobre estes assuntos:

  1. Ponteiros são como indicadores para endereço de memória, é como se fosse um "CEP" de referência para indicar ao processador aonde está a informação que deve ser processada, independente do seu tamanho.
  2. A forma como o C ou Rust usam ponteiros é mais manual, entretanto, isso não significa que as outras linguagens não possuem. Por exemplo, toda linguagem lida com vetores (arrays) e vetores são automaticamente uma forma de lidar com ponteiros. O que muda de uma linguagem para outra é que isso está numa camada de abstração tão alta que é quase imperceptível.
  3. Arrays são basicamente uma série de valores que possuem um índice ou chave que servem como ponteiro para eles. São extremamente mais intuitivos ao modo humano de lidar com linguagens por encapsular uma série de valores referentes ao mesmo contexto.
  4. Bits, bytes, são as unidades de medida na computação, tanto de velocidade quanto de espaço utilizado no armazenamento.
  5. Através de números binários, sendo a ausência ou a existência de "tics" elétricos a nível de hardware para sinalizar 1 ou 0. Se não me engano, os char seguem a tabela ASCII e Strings o modelo Unicode.

Se estas minhas concepções estão certas ou não é outros quinhentos. E não, não faço faculdade, cheguei a começar duas já, uma delas na área de programação, mas tranquei, entretanto, fiz prova da Fatec fim de semana passado e estou esperando os resultados (sem expectativas, já que não estudei).

Por fim, obrigado por tudo, inclusive os questionamentos que me ajudaram a refletir e nivelar meu conhecimento. Destas, tive que pesquisar apenas a 2, pois queria saber se alguma linguagem não tinha ponteiros e como era possível isso já que conflitava com a minha perspectiva.