"Linux" é muito mais variado que o Windows. Temos muitos tipos diferentes de sistemas de desktop, sistemas de telefone, etc. O desenvolvimento para o Ubuntu é completamente diferente do desenvolvimento para o Android, por exemplo. Eu suponho que o Ubuntu é o alvo. :)
No Ubuntu, o desktop principal é chamado Gnome e fornece muitas ferramentas de desenvolvimento interessantes. Ele é baseado no kit de ferramentas GTK + para interfaces de usuário e é muito fácil de aprender. Você pode aprender mais sobre a plataforma aqui: link .
O próprio GTK é baseado em C, mas está disponível para todos os diferentes tipos de idiomas. Uma língua que eu recomendo que você dê uma olhada, é Vala. Essa é uma linguagem muito semelhante a C # e Java, mas em vez de compilar para bytecode e dependendo de uma VM e JIT, ela compila para C e depois para o código nativo. Ele usa Gnomes GLib e GObject extensivamente, e estas são ferramentas bastante confortáveis. Há um tutorial rápido aqui: link . Ele pressupõe conhecimento de programação e é muito útil saber C # ou Java e, portanto, não perde muito tempo com conceitos gerais de programação. Você vai pegá-lo muito rapidamente.
Outra linguagem que você pode querer explorar é o Python. Este é um nível muito mais alto, linguagem tipada com um pato, com uma sintaxe muito limpa e muito fácil de aprender. O Python é muito popular na comunidade Ubuntu. Você pode aprender mais sobre o Python aqui: link
Qual linguagem de programação você usa, é de pouca importância quando você está desenvolvendo para o Gnome e o Ubuntu. As ferramentas estarão disponíveis para a maioria dos idiomas que conheço. Então, primeiro escolha um idioma e depois leia na plataforma Gnome. O Ubuntu também tem um novo portal de desenvolvedores que descreve as coisas que são especiais para o Ubuntu, como a interface Unity. Ele também possui recomendações para ferramentas de desenvolvimento, como sistemas de controle de versão, construtores de GUI e editores. Você encontrará aqui: link .