Начинать нужно с того, что научиться составлять алгоритмы программ.
То есть взять какую-то задачу (например, сварить борщ) и научиться делить ее на маленькие задачки, каждую из которых можно сделать одним действием.
1) Нарезать мясо и овощи. (объявление переменных)
2) Сложить все в кастрюлю. (ввод начальных данных)
3) Залить водой. (действие)
4) Если газ уже горит, то поставить кастрюлю на газ. Иначе - зажечь газ и поставить кастрюлю. (вот мы выучили ветвление).
5) Насыпать специй, проверяя, не слишком ли их много (пересолил, переперчил и т.д.)
6) Варить, пока не будет готово (вот мы выучили цикл ПОКА)
7) Снять готовую кастрюлю с газа.
8) Налить борщ в тарелку.(вывод результата)
9) Съесть. (конец работы программы)
По сути я написал алгоритм решения задачи. С компьютерными задачами все примерно также.
Алгоритмы учишься описывать словами, как я сейчас, или рисовать схемы. Параллельно учишь язык.
Начинать лучше с Бейсика или Паскаля, они специально были придуманы для обучения принципам программирования для новичков.
Потом переходишь на более серьезные языки - Delphi, С, С++, C# - если хочешь делать программы для компьютера, или Java, PHP, Python, Ruby - если хочешь делать сайты в Интернете.