Это очень широкий вопрос, и он зависит от многих элементов, таких как: каков ваш опыт программирования и, что более важно, - что вы хотите развивать.
Общими языками, очевидно, являются C \ C ++, использующие в основном компилятор GNU. Существует много доступных сред IDE, таких как Eclipse CDT (возможно, наиболее используемый), CodeBlocks и другие. Если вы пришли из мира Windows, я думаю, вы не захотите использовать текстовые редакторы для кодирования, хотя многие разработчики Linux используют их (VI \ Emacs ...)
Для разработки графического интерфейса вы можете использовать Qt - это чудесно, легко начать с инфраструктуры (которая поддерживает также многопоточность, сетевое взаимодействие и многое другое). Qt также является C ++.
C # до сих пор широко не используется в Linux, так как Mono еще недостаточно зрел. Этот язык является любимым для разработчиков .Net, но он не дает вам особого опыта работы с Linux.
И, конечно же, в конце концов у вас есть Java - где JVM обеспечивает совместимость для вас за кулисами ...