Для каждого человека любое обучение - индивидуально. Профессия программиста предполагает много мыслительных усилий и прямое взаимодействие с терминалом (компьютером). На мой взгляд, начальным (без взаимодействия с командой других программистов) навыкам программирования возможно научиться прямо в домашних условиях.
Для начала придётся читать много литературы (постоянно пробуя примеры непосредственно на компьютере), и составить для себя план обучения. Далеко не лишним будет прочитать "скучную" историю возникновения компьютеров и и их развития. Нужно запастись терпением, т.к. эти знания пригодятся: они лягут в основу всех будущих знаний о данной профессии.
Затем, следуя плану, придётся читать ещё больше. По мере набора знаний возможно начинать составлять простые программы, пробуя разные языки программирования.
В качестве, своего рода, "дипломной работы" возможно написать сложную программу. Чаще всего программисты выбирают наиболее востребованный, у пользователей, и доступный, для начинающих программистов, жанр - "игры".
Своего рода "местом" для обучения станет среда разработки (IDE), которую вы выберете для себя. Для кого-то это "Vim" с плагинами, для кого-то "Sublime Text", для кого-то что-нибудь ещё - по вкусу и характеру, по назначению и по возможностям для выбранного языка и базовой системы.
Хорошим следующим шагом, в профессиональном развитии, будет присоединиться к свободным открытым проектам, и учиться составлять и править код в большой команде разработчиков.
И, "на стороне", продолжать писать свои проекты. И осваивать новые языки и приёмы программирования.
Однажды можно прийти к мысли, что учиться программированию нужно бесконечно. Нет пределов совершенству. Удачи, будущий коллега!