Диванный программист от работающего (или обучающегося в универе либо на курсах) отличается, как я понимаю, тем, что перед первым не стоят конкретные задачи; он просто хочет научиться программированию, что бы это не значило.
Итак, Java как таковую отметаем сразу. На кой чёрт вам она, если вы не планируете зарабатывать программированием.
Си/С++. Достойный и серьёзный выбор, вообще говоря. Изучая Си/С++, вы заодно много узнаете о том, что происходит у компьютера внутре. В наше время именно Си изучают на первых курсах универов. Но опять же: нужен ли он диванному программисту?
Теперь об иных альтернативах.
1.
Python. Вот, что нужно диванному программисту. Низкий порог вхождения, разные парадигмы программирования, интеграция с разными прикладными пакетами... Попробуйте, вам понравится.
2.
Processing. А вот это вообще бомба для диванного программиста. Основанный на Java, с Си-подобным синтаксисом, он предоставляет безграничные возможности для программирования изображений и анимации (в том числе интерактивной). Зайдите на
openprocessing.org и узрите.