На каком уровне абстракции вы задаёте вопрос "как работает созданная программа внутри компьютера"? Ответ на мой вопрос напрямую покажет квалификацию разработчика ПО.
Нельзя взять и "освоить язык, ООП, кучу паттернов". Что вы имеете в виду, говоря "освоить"? Зазубрить книги
The C++ Programming Language,
Object-Oriented Analysis and Design,
Design Patterns, не вчитываясь в то, что там написано? Вы вообще открывали эти книги? Их
невозможно прочитать, не поняв, "как работает созданная программа внутри компьютера". Одной из первых глав любой документации по языкам программирования является описание того, как программа будет выполняться. Любая спецификация языка имеет гигантскую главу о семантике его выполнения.
Для "звания программиста" вообще ничего не нужно. Накопипастил по туториалу кода, не глядя, запустил - работает - программист! Профессия называется "разработчик ПО", а не "программист". Собственно программирование в ней - только один из элементов.