Exercises for Programmers: 57 Challenges to Develop Your Coding Skills