Como construir um futuro na programação: comunidade, esforço e liberdade