Всё зависит от набора необходимых навыков и умений. Как говорил мой товарищ, лучше работа программистом в офисе. Подумайте насколько вы готовы к работе в команде над одним большим проектом, где сотни людей могут сидеть и трудиться над одной кнопочкой в приложении.
Рекомендую начать изучение азов профессии и специальности в стенах высших учебных заведений. Т.к. там вы столкнётесь с такой штукой как стандартизация разработки.
Те, кто разрабатывали что-то до вас делали это по определённым стандартам. Затем, этим стандартам будете следовать вы. А затем, этим стандартам будут следовать те кто будут после вас. Это существует не как дань уважения поколений или что-то из этого рода. Просто так, всем проще друг друга понять. Мои рекомендации пойти получать высшее образование так же дополняются тем, что вы будете более совершенны академически, чем множество программистов самоучек, которые ни стандартов, ни этики разработки не знают.
Существуют различные учебные заведения, но лидирующие позиции занимают МГУ, МГТУ им. Баумана и другие ВУЗы. Рекомендую ознакомиться с этим в соответствующих образовательных рейтингах.
От себя, хочу добавить, что лучше всего, если вы будете работать программистом (in-house), чем фрилансером. Программистам на фрилансе достаточно сложно.
Удачи в постижении профессии)