Проще говоря, программирование — это приказ машине сделать что-то для вас. Машины основаны на логике, поэтому нам нужно мыслить таким образом, когда пишем код, понятный машине.

Программирование чего угодно можно разбить на два уровня. Программирование высокого уровня и низкоуровневое программирование.
Низкоуровневое программирование — это когда вы пишете код, который напрямую инструктирует компьютер, используя его архитектуру. Его также часто называют машинным кодом или языком ассемблера.
Программирование высокого уровня — это когда вы пишете код, который ближе к разговорному языку. Затем этот код обрабатывает передачу вашей инструкции архитектуре машины.

Вы можете представить разницу между кодом высокого и низкого уровня, а также то, как мы приказываем кому-то поднять руку. В коде высокого уровня мы можем сказать человеку на нашем разговорном языке поднять руку над головой. В низкоуровневом коде мы бы инструктировали каждую мышцу, которая должна сокращаться, как и когда им нужно двигаться для достижения той же цели.

Эти языки затем разбиваются еще на две категории: скомпилированные и интерпретируемые.
Компилируемый язык – это язык, который принимает написанный вами код, а затем обрабатывает его. С помощью компилятора код преобразуется в машинный код, написанный специально для целевой машины. Поскольку этот скомпилированный код преобразуется в машинный код специально для целевой машины, он часто работает быстрее, чем интерпретируемые языки.
Интерпретируемые языки — действительно интересный способ решить проблему необходимости писать на конкретной машине. Для интерпретируемых языков вы должны написать код, а затем отдельная программа будет читать и выполнять каждую строку. Интерпретируемые языки могут ускорить работу разработчика, поскольку ему не нужно ждать компилятора, однако сам код будет работать немного медленнее.

Интересный факт:
При компиляции скомпилированных языков могут возникать ошибки, из-за которых код даже не компилируется. Интерпретируемые языки позволят вам запустить код даже при наличии серьезных ошибок.

C# — это компилируемый язык высокого уровня, но даже несмотря на то, что это язык высокого уровня, программисты все равно…