HTML и CSS - это вообще НЕ языки программирования. PHP и JavaScript - да, это языки, содержащие механизмы ООП. Но если PHP имеет вполне стандартные, С++-образные классы, то ООП JavaScript построен на более мощном механизме прототипов (в новом стандарте в качестве синтаксического сахара добавили более привычные классы). Но для обучения программированию эти языки - наихудший их возможных вариантов. Надо понимать, то в основе ООП-модели С++ лежит узкоспециализированный язык моделирования Simula-67. Потому результат получился сильно переусложнённым. Для обучения куда больше подходит более простая ООП-модель языков Oberon и Go, в которой данные явно отделены от кода, а не свалены в одну кучу, как в C++ / Java / C# / PHP / JavaScript.