Шаг 1: оценить свои способности и активно развивать мышление — базовые знания в математике, геометрии, алгебре, теории вероятности и т. д. Другими словами, пройти все круги Ада нашего высшего образования будет не лишним.
Шаг 2: изучить английский, т. к. большая часть актуальной информации именно на английском языке.
Шаг 3: получить базовое представление о программировании, алгоритмах структурах данных и прочем. Несколько полезных ссылок:
Coursera — Computer Science 101
Шаг 4: изучить первый язык программирования. У меня это были Pascal и BASIC, но сейчас более рационально выглядит начать с Python. В нём есть глубокие и сложные моменты, но новичку нет необходимости в них разбираться. Полезная ссылочка:
Шаг 5: изучать второй язык программирования. Переходите к более сложным языкам программирования, вроде Java или C++.
Шаг 6: рассмотрите новую парадигму программирования, что будет полезно лично для вас — иметь несколько взглядов на решение одной и той же проблемы.
Шаг 7: поучаствовать в Open Source проектах, что углубить свои знания на практике. На самом деле, для этого не требуется больших знаний и опыта, т.к. в любом проекте есть много задач, которые способны решить и вы.
Подробней «как стать программистом?»
Вы можете здесь https://geekbrains.ru/ пройти бесплатные курсы по верстке веб-страниц и программированию на PHP (начать лучше с верстки). Просто пощупать, это вообще ваша тема или не ваша. Это не так скучно, как читать учебник, и довольно быстро можно будет увидеть пусть кривоватые, но плоды трудов своих.
Обходите стороной Geekbrains.ru, отвратительные курсы за большие деньги.