Самостоятельно научиться программированию как коммерческой деятельности конечно можно. Для этого не так уж много надо. Знаю многих программистов слабых в алгоритмике, но тем не менее успешно справляющихся с хорошо оплаченной работой (многое ведь реализовано в библиотеках).

Я не ставил себе цели быть именно программистом, тем не менее самостоятельно изучил программирование по ходу дела, и теперь зарабатываю на жизнь именно написанием програм.

На основе собственного опыта могу предложить приблизительный план:
1. Изучение основ с помощью BlackBox и книги Потопахина "Современное программирование с нуля", и дополнительный источник задач Абрамяна.
2.1 Написание собственного интересного достаточно большого проекта. Даже если в результате проект окажется слишком амбициозным для текущего уровня и не будет закончен. Главное опыт.
2.2 Параллельное изучение полезной литературы, например, Н.Вирт "Алгоритмы и структуры данных".
3. Изучение одного из коммерческих языков и  нужных технологий. Участие в относительно недорогих заказных проектах. Желательно там, где есть кому направить.
4. Высокооплачиваемая основная деятельность.