У любого языка программирования одна цель - написание алгоритмов для последующего их выполнения и получения результата. Однако особенности и сфера применения у них разная. Разработка программ делится на множество сфер, к которым применим тот или иной язык. Также языки отличаются синтаксисом, набором функций, парадигмами и способом выполнения кода.
Есть компилируемые и интерпретируемые языки программирования.
Компиляция - это перевод инструкций программы с понятного человеку языка в машинный код. Затем компилятор выдает готовый файл в формате "exe" в Windows или "app" в MacOS. При запуске этого файла, процессор начинает выполнять все команды, переведенные в нем в машинный язык. Для компилирования кода нужен компилятор или интегрированная среда разработки типа платформы NET, Visual Studio, Android Studio, Eclipse и другие.
Интерпретатор - программа, которая не переводит код в машинный язык, а исполняет его сразу построчно. Суть языков интерпретируемых языков сводится к тому, что они работают не с операционной системой, а с программой, которая и исполняет код. Интерпретаторы пишутся как на компилируемых, так и интерпретируемых языках.
Компиляторы же пишутся на низкоуровневых языках - чаще всего это Ассемблер. Интерпретатор это код, который является частью программы и исполняет скрипт написанный на языке. Среди таких программ - вэб-браузер, встроенный в вэб-сервер модуль PHP, виртуальная машина (не процессор, а программа), которая исполняет код.
Любой язык программирования можно адаптировать под компилятор и интерпретатор. Однако по умолчанию они работают с предназначенной для конкретного языка технологией.
Существует огромное количество языков программирование. При этом, существует не много направлений разработки, для которой предназначен тот или иной язык.
Стоит также понимать, что определенный язык подчиняется той или иной концепции программирования: ООП, процедурному, прототипно-ориентированному программированию, функциональному и многим другим.
Самое важное, это определиться с направлением разработки - игры, сайты, софт. Затем осуществить выбор языка.
Нет такого понятия как самый простой язык. Все они сложные и не существует определенного порога вхождения. Основы везде аналогичны, а расширенное изучение уже имеет свои особенности. Придется вникнуть в огромный пласт теоретической информации и провести сотни часов, оттачивая мастерство.
Углубленное изучение технологии и расширение знаний - это уже самостоятельное изучение. Бесплатное изучение дома требует терпения. Однако такой подход дает хороший результат. Правда этот метод для самых терпеливых и дисциплинированных программистов.
Огромным недостатком определенного языка является то, что они состоят из огромного количества деталей, которые должен знать любой разработчик. Среди таких C++ (множество недоработок, заставляющие программиста думать о внутренних процессах компилятора), C# (огромная гибкость языка, но требующая больше времени для изучения), PHP (тысячи встроенных функций).
Из достоинств стоит выделить то, что концепции разработки идентичны. Другими словами - изучив один язык, легко буде адаптироваться к другому, если это конечно тот язык, который подчиняется той же концепции разработки.
Это самые востребованные языки на рынке труда. Большинство работодателей, при поиске разработчика требуют знание именно этих технологий.
Самое главное - определиться со сферой разработки, а затем уже подбирать язык для изучения. Стоит помнить, что программирование изучать не просто, ведь языки сами по себе обладают огромными способностями для разработки. Поэтому, не стоит наделяться, что через месяц вы будете способны писать сложные программы с графической составляющей. Изучение программирования - это кропотливый труд, требующий внимания к деталям и самодисциплины.