В современном мире каждый из нас пользуется решениями созданными в прошлом не нами.
Даже язык на котором вы сейчас слушаете создан не Вами.
Если не использовать достижений предков и современников, то посмотрите на котика или пёсселя, он ито пользуется опытом своих предков, да ещё и не плохо так устроился паразитом к достижениям людей и не важно домашний ли это питомец, иждивенец.
Языки программирования - это есть способ упрощения.
Картинка показывает как примерно бы программисты объясняли процессору, что делать.
На самом деле фактически раньше так и было. Но однотипные решения приводят к созданию шаблонов, трафаретов - инструментов. Всё вокруг создано по образу и подобию чего-либо.
Вот к примеру чтобы современному человеку построили дом он обращается к строительной компании. Этот человек фактически не знает как строить, он лишь поставщик ресурсов и пожеланий. В программировании, да и вообще в мире вычислительных машин подобные строительные компании именуются модулями, плагинами, драйверами, программами, расширениями, поисковик.. Много можно перечислять, причем зачастую одно и тоже в разных местах называется по разному.
Когда в языке программирования можно с помощью одной строчки кода описать чуть ли не весь мир, я утрирую, то такой язык программирования является высокоуровневым. Его преимущество и есть его недостаток. То есть тот человек не знает насколько хорошо строительная компания построит дом, но ресурсов как правило запросит много. Как говорится хочешь чтобы было хорошо- сделай сам. Более низкоуровневые языки позволяют поработать самому, но сами понимаете это и время и возможные ошибки, но вроде по ресурсам менее затратно и по реализации как душе угодно. А если ещё приплести сюда безопасность, то тайную комнату можно сделать только самому, в то же время строительная компания может заложить потайной вход в дом и использовать по своему усмотрению.