У меня похожая ситуация, только в программисты я пришёл из строителей. Образование строительное, стаж работы на стройке 4 года после стройтеха. Пока работал на стройке вечерами изучал Pascal, как мог, без Интернета (конец прошлого века), благо приятель иногда приносил текстовики с какой-то инфой, ну, и конечно help самого Паскаля. За пару лет убедился в том, что мне это по душе, и что-то получается, решил как-то перебираться с улицы (стройки) в офис. Удалось устроиться на должность "бухгалтер-оператор", главное здесь было то, что это была первая работа в офисе и за компьютером. Нашел там себе возможность программировать, но слабую. После пары лет просиживания штанов там, стал смотреть вакансии (тогда это делалось путем просмотра местных газет). Вакансий было мало, но меня пригласили на собеседование, на котором я рассказал как писал игру на Паскале, работая с видеокартой на ассемблере, и том как к строчкам кода на машинном языке писал комментарии на ассемблере. Дали тестовое задание по аналитике (нужны были и аналитики и программисты, видимо дали то, что проще дать), связанное с таможней. Купил таможенный кодекс, что-то написал, принес - удивились (- откуда такие знания? - из книжек!), взяли на испытательный срок.
Что такое СУБД и сервер приложений я тогда не знал, и первое время "горел" на работе - пахал как мог весь день, вечерами шел к тете и читал интернет (дома интернета не было). В общем взяли меня программистом, насколько помню толи $300 толи $400 начальный оклад был. Ну а потом втянулся, разобрался, стал одним из лучших, довелось и отделом разработки руководить, а сейчас нарасхват - работа меня сама находит... Одно большое НО - семьи не было. И даже при отсутствии семьи искал работу программистом не бросая текущую рутину.
Итого: каменщик 4 года->завскладом 1 год -> оператором 2 года -> программистом стал в 27 лет