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

Sou formado em Engenharia da Computação e trabalho mais de 4 anos com desenvolvimento embarcado, geralmente em C ou C++, então vou dar meu pitaco nessa área.

C, como já disseram, é considerada a melhor linguagem para se aprender a programar. A maior diferença entre C e as outras, é que com C você precisa entender como funciona a memória do seu dispositivo, seja um computador com 16 GB de ram, ou um PIC com meros 8 KB. Linguagens de "alto" nível você sai alocando variáveis, objetos, recursos e não se importa com o tanto de ram necessária pra rodar, chegando até a gastar mais ram em prol da legibilidade do código (criando diversas variaveis com nomes diferentes só pra entender o que está acontecendo ao invés de reutilizar variável), coisa que em sistemas embarcados tudo é feito em prol da performance.

Eu não sei até onde vai o seu interesse e a profundidae em querer entender como realmente funcionam as coisas, mas não tem como você entender nada profundamente sem ao mesmo aprender Arquitetura de Computadores, essencial quando se programa em C.

Se você gosta de dispositivos, um pouco de eletrônica, e tem vontade de criar um projetinho maker seu, sugiro aproveitar o embalo do C e brincar um pouco com ESP32, um microcontrolador super barato com Bluetooth, Wi-Fi, acesso à Alexa, podendo automatizar qualquer coisa em sua casa. Você vai aprender C (ou C++), um pouco de hardware, alocação de memória, ponteiros, tarefas concorrentes (famoso threads, aliás, sistemas embarcados usam muito o FreeRTOS), e no fim, ainda vai ter um projeto físico seu funcionando.

Agora, se você não quer saber de hardware nem nada e pretende focar apenas em dispositivos desktop (raspberry é desktop), se atraca num linux da vida.

Boa sorte nos estudos e nunca desista.

Carregando publicação patrocinada...
1

O que você falou sobre ser a melhor linguagem para aprender programar também serve se a pessoa substituir por C++, ou o que disse está relacionado somente com C? Eu gosto do ambiente linux, customizar e automatizar pequenas coisas do SO e futuramente quero começar aprender mais sobre o kernel, mas estou na dúvida ferrenha se concentro em C ou C++ já que ambas podem me oferecer o que eu quero, e também quero ser um bom desenvolvedor.

1

Tudo o que você faz com C, faz também com C++. É a mesma sintaxe, mesma biblioteca, mesmo compilador. Mas o inverso não é verdadeiro. C não tem classe, como tem no C++.

Problema ao meu ver de você usar C++ é o nível de abstração que você pode ter com ele em relação ao C e você vai acabar caindo na facilidade do C++, nunca tendo que passar os perrengues super necessários ao trabalhar com C (não que não vá passar outros perrengues em C++).

Kernel até onde sei é tudo feito em C. Posso estar enganado.

Sugiro aprender a base do C e depois ir pra C++, até porque aprendendo C você automaticamente vai estar aprendendo a base do C++. Não será perda de tempo.

1

Oi, obrigado pela contribuição.

Tive o básico de Arquitetura de Computadores no curso de técnico em informática e sei que terei a matéria um pouco mais aprofundada na faculdade futuramente, então deixarei essa parte para o futuro. Agora a questão do ESP32 por coincidência eu adquiri um recentemente com o intuito de aprender eletrônica, só estou esperando chegar da china para "brincar" com ele.