Give yourself 20 minutes to solve a coding challenge (Leetcode, CTCI, Hackerrank, etc.). Set a timer. Don't look up the solution online or ask for help. If all you can think of is brute force, solve it in brute force. Once 20-30 minutes pass, look up the solution online and compare it with yours. Remember, shallow work doesn't count. Think deeply about the problem.
After every study session, make sure to record time spent & number of questions answered on your log sheet. Revisit questions every Sundays.
Many questions have a "Solution" page. If they didn't put up a solution for your question, click on the "Discuss" tab. Once you're in the discussion page, click "Sort By" (right side of the page) and click "Most Votes". You will not always have the solution in your favorite language. It's ok. Train yourself to look at solutions on different programming languages.
Almost all questions have hint numbers that you can look up at the back of the book. Questions also have the page number where you can look up the solution.
Some questions have the solutions in the "Editorial" tab. If your question doesn't have the solution, go to the discussion page. If you can't find the solution there, Google up the question.
Google the question you're trying to find the solution to. Here's an example.
Use index cards to write down interesting things. For example, suppose you are reading about Deadlocks. You might want to write "How do you prevent a deadlock" on the front side of the index card, and the answer to that question on the back side. Review these index cards on every Sundays.