q&a how to start and construct a program ...