how to improve programming skills and logic