Basic Learning Concepts For Programming