Начальные уровни в программировании (Intern, Junior)?
Интерн - это человек, проходящий летнюю практику, например. Нихрена не умеет, почти ничего не знает, пришёл учиться. Джун - это человек с первым-вторым рабочим местом, у которого полноценная теория, но практики не хватает для самостоятельной выдачи качественного продукта, нужен надзор старшего. Как правильно заметил DevMan критерии могут отличаться в разных компаниях. Так что на мой взгляд, стопроцентно считать себя мидлом можно, когда 10 оферов из 10 предлагают мидловую ставку и готовы платить зарплату, определённую для мидла рынком.
Ни в одной компании НЕТ в штатном расписании ни интернов, ни джунов, ни мидлов, не сеньеров.
Компании оперируют понятиями младший специалист, специалист, старший специалист, ведущий специалист.
Всё.
Все эти иностранные слова - не больше чем понты и игры с иностранными словами, притянутые за уши к нашим реалиям.

Уровень определяется СОБСЕДУЮЩИМ кандидата.
Если ищут старшего специалиста, то кандидат получает эту должность в случае успеха.
И как правильно сказал  Лентюй не существует ни одного объективного критерия определения уровня программиста.
это все относительно. и сениор из одной тимы легко может стать интерном в другой. 