Fala aí Nicholas blz?
Então para fazer a parte do servidor, você pode optar por aprender sobre Java, Python, .Net ou PHP.
Seu dispositivo (seja um Arduino, Raspberry, Galileo etc...) terá que enviar requisições para um backend. Essa requisição pode ser feito via HTTP, MQTT ou qualquer outro protocolo aberto. Em geral todas as linguagens dão suporte aos protocolos abertos (seja de forma nativa ou utilizando alguma biblioteca).
Dentre essas linguagens que mencionei, a que mais tenho domínio é o Java e por esse motivo a recomendo fortemente. Mas sugiro que você teste outras linguagens e veja qual você se adequa ou cria maior afinidade.
Creio que para raspberry Python tem uma integração um pouco mais "transparente".
Antes de estudar essas linguagens para montagem dos servidores. Sugiro que você consolide bem o conhecimento sobre orientação a objetos que pode te facilitar na hora de utilizar essas linguagens.
Abaixo tem os links de algumas carreiras disponíveis na Alura por você pode começar para criação do back-end.
https://cursos.alura.com.br/career/desenvolvedor-java-junior-web
https://cursos.alura.com.br/career/desenvolvedor-php-junior
https://cursos.alura.com.br/career/desenvolvedor-python
Espero ter ajudado e bons estudos.