Как программист, могу много посоветовать книг, но вот проблема, я не знаю с какого языка Вам начать программировать, но хорошие книги которые легко читаются это: Лафорэ "ООП С++", так же "Современное программирование" с нуля Виталий Потопахин, "Совершенный код" Стива МакКоннелла - эта книга мне тоже очень понравилась.
Лично меня сначала заинтересовал язык разметки html. Ну это так - сайт-визитка без ни какой обратной связи кроме ссылки "Контакты", на то он и визитка. После дали более серьезную задачу на интернет-магазин. Там мне пришлось освоить минимальные азы PHP, а он практически бесполезен без взаимодействия с БД, я использовал MySQL, то же азы (а может и вовсе PHP бесполезен без БД, не проверял). Ну а для красоты нет равных, чем CSS. Ну я всяко будут очень полезны знания в области Photoshop.
А захочешь что-то посерьезнее, то там уже ООП (объектно-ориентированное программирование) надо знать, а то и более серьезные языки. Ну а для начала тебе и этого на год хватит.
Ну а в первую очередь знай знай синтаксис (прямые ручки везде нужны), нельзя использовать велосипед не зная что это такое, для чего нудно и как работает!
Научиться программированию дома можно, хотя на это уйдет больше времени по сравнению с обучением в реальных боевых условиях большой компании. При обучении программированию главным залогом успеха станет практика, решение как можно большего количества поставленных перед вами задач. Для начала это могут быть совсем легкие задачи, затем, по мере решения, уровень задач будет усложняться. Уже в начале своего пути как программиста следует присмотреться к тому направлению в котором Вы хотели бы развиваться: будь то веб-разработка, разработка мобильных приложений, написание игровых движков (например на С++), разработка консольных приложений.
Мой опыт заработка в программировании довольно скромный, но с уверенностью могу сказать о том, что я не заброшу данный вид деятельности. Это очень перспективное направление, выбор которого может предоставить огромные дивиденды в будущем. Больше склоняюсь к веб-разработке. У меня есть опыт стажировки в студии веб-программирования, где в течение трех месяцев я выполнял разнообразные задачи и сдавал работу реальным заказчикам, начиная от верстки и заканчивая работой над интернет-магазином под управлением CMS Bitrix. Этот труд был оплачиваемым. То есть можно сказать, что я занимался программированием профессионально.
В интернете можно найти огромное количество ресурсов для обучения программированию. Было бы желание и время. Профессиональные уроки без труда можно найти на youtube. Например, по запросу "программирование на PHP" я получил более 21 000 видео в поисковой раздаче. Могу порекомендовать два онлайн-ресурса для обучения программированию: Школа программирования и stepic.org. Там можно найти бесплатные уроки для новичков. Это не реклама, просто эти ресурсы, на мой взгляд, являются очень полезными для обучения.
Чтобы работать программистом в 80% случаев диплом ненужен, но при наличии знаний - получить его можно легко.
Я бы посоветовал пройти бесплатные курсы (такие есть) по основам программимрования, веб-программированию<wbr />, программированию мобильников, программированию баз данных (быть может еще чему-то). Чтобы понять что именно вам интересно. Пройти до конца в любом случае, конечно.
Потом стоит сходить на какие-то мероприятия по программированию. Типа митапов. Посотреть, пообщаться, предложить ребятам себя в качестве стажера. На такие штуки обычно ходят ребята с более-менее приличных контор, а не "рога и копыта"
Ну вот в случае успешного прохождения стажировки вам предожат работу.
Это как бы самый быстрый способ, которым можно пользоваться если у вас реально есть склонность к программированию.
С другой стороны можно пойти в техникум или ВУЗ. Разницы особой нет, но в техникуме у вас скорее всего будет больше свободного времени (хотя есть вузы типа синергии, которые тоже учат как-то странно). Тут преимущество лишь в системности подаваемых знаний, т.е. вам как программисту в любом случае нужно будет сильно расширять кругозор - научиться сеть настраивать, командной строкой пользоваться, виртуальные машины использовать, системы контроля версий и т.п. - это очень много и если вуз хороший - то 4 года учат "тому что надо" очень интенсивно. Лучше ничего быть не может. Бесплатно еще и стипендию платят. И можно в олимпиадах по тому же программированию участвовать.
Я бы лучше отказался от лишнего и использовал пару языков. Переключение действительно неоправданно затратно. Но, если необходимо, привык держать перед глазами CheatSheet.pdf по конкретному языку.