С чего начать изучать программирование?
Опять путаница понятий....Программирование НЕ ЕСТЬ кодирование!Чтобы уметь проектировать - нужно знать функциональность блоков системы, интерфейсы этих блоков, время работы каждого блока для каждого типа обрабатываемой информации и количество передающейся информации между такими блоками, проходящей через интерфейсы между блоками, учитывать возможность параллельной обработки данных (синхронность/асинхронность).Чтобы уметь программировать - нужно учить логику и различные операции над объектами, алгоритмы, математику.Чтобы уметь кодировать - нужно учить язык(и) программирования.Чтобы верстать интерфейс - нужно учить язык разметки для конкретной технологии или продукта и поведение объектов разметки в зависимости от установленных свойств.
Ты не поверишь, с программирования! Выбирай направление, которое интересно и пиши код, это может быть:
1 веб разработка
1.1 фронтенд - html, css, js
1.2 бэкенд - какой-нибудь сервеный язык вроде php или python, базы данных, linux, etc 
2 мобильная разработка 
1.1 android - java
1.2 ios 
3 desktop приложения - C#(Winforms, WPF), C++(Qt) 
4 gamedev
4.1 если писать движки, то математика и C++
4.2 если делать игры на каком-нибудь unity, то C#
5 микроконтроллеры - C 
Естественно я перечислил не все возможные направления и не все возможные языки и технологии, а только основные. читал отзывы, что если знаешь JS, то можешь неплохо зарабатывать
Неплохо можно и в макдональдсе зарабатывать, для кого-то это вполне неплохо. А у программистов зарплаты конечно разнятся в зависимости от технологии, но больше всех получают специалисты, вне зависимости от области или языка программирования. 
Сначала определись, что хочешь разрабатывать и потом пробуй изучать языки программирования и технологии, вполне возможно, что сразу не найдёшь подходящую нишу. И да, кроме языка программирования придётся изучить ещё много всего. В качестве первого языка можешь попробовать хоть тот же python.