This course is about to get a bit harder. There's no way around it, if programming were a walk in the park everyone would be earning 6 figures as a software engineer. But it's not, and to succeed without getting stuck and frustrated, you need to learn how to learn.
Process for Solving Hard Coding Problems
Read the lesson first! Figure out the examples before writing your own code.
Read the assignment. Understand the goal of the assignment before you start writing code.
Start writing code.
Add print() statements. Don't wait until you've written a lot of code to start testing. Add print() statements and use the Run button to see if your code is doing what you expect at each step. It's easier to find issues in small bits of code than in large blocks of code.
Keep running, printing, and fixing until you're confident your code is working.
Submit your code. If the assignment you're working on has unit tests, no need to remove your debugging print() statements. If the assignment you're working on is testing console output, be sure to remove your print() statements before submitting.
Compare your code to the instructor's. You will not be penalized for looking at the solution after you have successfully completed the assignment.
Additional Tidbits
Try to use Boots before peeking at the solution. Boots is quite good at giving you pointed hints to help you solve the problem on your own.
It's okay to peek at the solution when you're completely stuck every once in a while, but don't make it a habit. If you find that you're always stuck, you should restart the chapter or course to make sure you understand the material.
You can reset your code for an assignment with the "reset" ↶ button. For example, maybe you forgot which modifications you made vs which code was left by the instructor.
You can reset all your cached code from the settings page. This is useful if you want to restart a course or chapter.