Программу, которая поместится в поле ввода текста на этом ресурсе, может написать, кто угодно (другой вопрос, как она будет работать, и будет ли вообще, но для примера сгодится). Если говорить о профессиональной разработке софта, то единицей деплоя является не программка в одном файлике, а проект, состоящий из сотен файлов, как минимум. Здесь это никак не опубликуешь. Можно только озвучить основные тезисы.
Вкратце, чем отличается код дилетанта от кода серьёзного разработчика: дилентант решает задачи неэффективным способом и быстро теряет контроль над своим проектом. Код раздувается, становится хрупким, неустойчивым, время доработок экспоненциально растёт, как и количество ошибок в коде. В частности:
1) Код дилетанта изобилует повторениями на всех уровнях: модели данных, бизнес-логики, описаний точек входа, сервисов, утилит, юнит-тестов и др. Например, они могут завести 3 разных модели данных на одно и то же и потом кодить тысячи строк маппингов-перемаппингов между ними.
2) Дилетанты со стажем не умеют проектировать решения, планировать работу и отличать важное от неважного. Они, не глядя, заимствуют структуру проекта и готовые решения, лишь бы было хоть что-то. Проект обрастает ненужными слоями и "чёрными ящиками", между которыми им приходится лавировать на прикладном уровне.
3) Структура проекта может содержать больше слоёв, чем праздничная лазанья на 100 чел, но дилетанты всё равно размазывают логику между слоями и не соблюдают направление вызовов. Поэтому все компоненты в их проектах тесно переплетены взаимными зависимостями. Почему, думаете, все современные компании дружно ударились в микросервисную архитектуру? Потому что они пытаются вытащить межкомпонентные зависимости на тот уровень, где их мог бы контролировать архитектор, а не дилетанты-кодеры.
4) Иногда дилетанты пытаются бороться со своей внутренней энтропией, разваливающей их проекты. Они вводят обязательные комментарии на каждый чих, ограничения на размер функций и другие бессмысленные правила. Это сдерживает саморазрушение проекта примерно в той же мере, как птичий помёт спасает дом, построенный на слабом фундаменте, то есть - никак. Может только замаскировать пару трещин в стене.
Несколько слов о классификации "джуниор", "миддл", "сеньор".
Её выдумали бодишопы, чтобы классифицировать своих дилетантов.
Джуниор - выпускник ВУЗа или ПТУ.
Миддл - дилетант со стажем 1-3 года.
Сеньор - дилетант со стажем больше 3-х лет.
В бодишопах не принято держать сотрудников долго: в покраске травы в зелёный цвет экспертиза не требуется, а о методах кидалова сотрудников и обмана заказчика они начинают слишком много знать, а то ещё о схемах откатов догадаются. И производительность бодишопных сеньоров, как и джунов, измеряется количеством закрытых задачек в багтрекере, а этот фактор невозможно наращивать бесконечно. Поэтому шкала короткая. После 5-7 лет - или менеджер, который сам повязан в кидалове, или на выход.
И естественно, никакой сеньор из бодишопа неспособен самостоятельно не только построить, но и просто поддерживать нормальное решение проблемы предметной области.
Использование данной классификации в серьёзной работе не имеет смысла, как в боевой армии бесполезно деление на духов, дедов и черпаков. Это издержки отсутствия реальных задач.
Способность принимать осмысленные решения появляется у человека в среднем после 10 лет стажа в отрасли, и то если у него есть образование, а стаж не сводился к покраске травы. Его производительность измеряется не количеством закрытых задачек и не количеством строк кода, а качеством принимаемых решений, из-за которых большую часть этих задачек вообще не приходится заводить, а строчки кода - писать. И применяется этот скилл на уровне проектирования приложений или ландшафтов, а не на уровне написания маленьких фрагментов кода.