Профессионал — тот, кто зарабатывает программированием на жизнь. Человек с одним годом опыта вполне себе профессионал.
Дилетант — тот, кто знает обо всем по чуть-чуть, то есть знания вширь. Специалист — тот, кто знает много о малом, то есть знания вглубь. Специалист и профессионал не синонимы, а вообще ортогональные понятия.
Конторе нужен тот, кто обладает _достаточными_ знаниями в области X, и будет стоит Y денег. Умение решить задачу разными способами или способность переходить с ABC на XYZ никому не нужна (ок, нужна достаточно редко). Проще не рисковать и нанять нового человека, который является специалистом в XYZ.
Мастера на все руки, которые могут за месяц во всем разобраться, всю жизнь сидят без денег.
SD>Профессионалов, увы, мало
Мы поняли, настоящий профессионал — это вы. Хватит вздыхать.