How to Study

Coding Challenges

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.

How to look up solutions:

Leetcode

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.

Cracking the Coding Interview (book)

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.

Hackerrank

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

Google the question you're trying to find the solution to. Here's an example.

Conceptual Topics

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.