Beginner Guide to learn and practice programming skill