1. Заработать, выставляя свои программы в интернет, можно только в очень специфических ситуациях. Не рассчитывайте на это. Сейчас не 90-е - практически невозможно написать что-то реально нужное другим (чтобы за это ещё и платили) в одиночку. Хотя если у вас есть связи с правильными людьми, как у Билла Гейтса в своё время - возможно всё :)
2. Типичный заработок программиста - работа в офисе.
3. Второй вариант - работа из дома (удалённо) на компанию (несколько моих знакомых такое практикуют). Профи при таком варианте может заработать больше, чем в офисе. Но - дома как-то скучнее :)
4. Фриланс - сам ищешь заказы - сам выполняешь. Здесь удача и способности (не только как программиста, но и как продажника) решают - кому-то удаётся неплохо зарабатывать, а кто-то получает копейки.