Не важно какой язык программирования будете вы изучать (JS, PHP, JAVA, С, C++, Python, C# и пр.), для программиста желательно:
С компьютером должен быть на ты;
Хорошо знать английский язык;
Математика школьный курс;
Дискретная математика, алгоритмы;
Знать хорошо свой редактор или среду разработки(IDE);
Конкретные знания по языку программирования:
Синтаксис языка - Переменные, массивы, условные конструкции, циклы, функции, объекты(ООП), арифметические и логические операторы и т. д.
Базовые решения, т.е шаблоны проектирования: MVC, одиночка, фабрика, итератор, декоратор и пр.
Стандартную библиотеку языка программирования.
По желанию фреймворк языка.
P.S Нужно побольше читать чужой код, а также нужно самому начинать создавать программы на уже полученных знаниях в теории.
Я думаю, чтобы утверждать это, необходимо знать синтаксис языка, его правила и отличия от других, и уметь этими отличиями выгодно пользоваться, а также быстро и уверенно ориентироваться в своем/чужом коде.
Остальное - мелочи. Методы гуглятся, стиль приходит с опытом.
Далек от программирования. Но понравилось слышать слово "стиль" применительно к этой области) Что под этим подразумевается?)