«
Программа = алгоритмы + структуры данных» - выражение Никлауса Вирта.
Иными словами, ключевыми непосредственными задачами программирования являются - создание и использование алгоритмов и структур данных.
Программирование - это строгость рассуждений и преобразований (Логика).
Из вышесказанного становится ясно, что начинать следует с изучения Алгоритмов !
Но что бы изучать алгоритмы и их практическое применение нужен инструмент для работы с ними язык - ЯП (язык программирования).
Языки программирования часто классифицируют по уровню...
(более подробнее см. тут:
bourabai.ru/alg/a13.htm )
Первым ЯП для изучения желательно выбрать - функциональный !
Почему функциональный ? Потому что функциональный яп не содержит "ничего лишнего" и тем самым поможет
освоить суть алгоритмов и выработать соответствующее мышление, т.е. научит мыслить Логически.
Подводя итог вышесказанному начинающим программистам лучше начать с изучения одного из функциональных яп - Haskell или Scala, Lisp...
А уже после можно переходить на яп С (Си), который поможет понять многие другие очень важные детали...
И уже освоив на достаточном уровне яп С можно переходить на другие яп (С++, Java, С#... )
Если же вас интересует Web-программирование, то следует освоить:
HTML5 ➤ CSS3 ➤ JavaScript ➤ JS + jQuery ➤ MySQL ➤ PHP и/или Python...
Да, и ещё желательно (обязательно) освоить англ.яз и параллельно освоить дискретную математику.
Вся информатика - это, по сути, дискретная математика. Мозги ставит великолепно.
Если есть сомнения по этому поводу советую см. тут:
https://habrahabr.ru/post/252077/
Книги: