Если у тебя какие-то гениальные способности и весьма ранний опыт, участие в различных проектах и широкая известность в узких кругах - можешь выехать на этом.
Остальным же нужно фундаментальное образование (профильное/математика/физика) и готовность поначалу довольствоваться малым.
Зависит от того, какой именно работой ты собираешься заниматься.
Однотипные задачи на конвейере рутинных задач, решаемые бездумно воспроизводимым типовым кодом, высшего образования не требуют - достаточно дрессировки на "курсах программирования". Но и получать ты будешь, как любая другая малообразованная рабочая сила.
Если же ты хочешь уметь решать нетривиальные программистские задачи, то без высшего образования - прежде всего, математического - не обойтись. Это база, необходимая для нахождения эффективных решений программистских задач.