# Algorithms and Data Structures 1/2

<figure><img src="/files/N2fqROJvG7PLyYyD7VLh" alt=""><figcaption></figcaption></figure>

Now you need to study algorithms and data structures, again with increasing complexity, specifically from Data Structures and Algorithms (DSA) courses.

Two main groups to focus on:

* Basic data structures – lists, stacks, queues, sets, hash tables, dictionaries
* Trees and graphs (we'll get back to these later)

There's a huge amount of paid and free materials, and many video lessons online.

Again - it's up to you, you can learn however you want, especially if you'll do it through thinking-through-writing - good luck and have fun cracking your brain!

If you want to save your time, here's an excellent and rock-solid plan.

Buy two books:

* "Cracking the Coding Interview" by McDowell (latest edition)
* "Programming Interviews Exposed" by Mongan

Study algorithm:

1. Study a topic from the book
2. Go practice it on Codewars:
   * Select relevant tags (Linked Lists, Binary Trees, Sets, etc.)
   * Focus on 5-6 kyu difficulty
   * Solve all available problems in each category

Also upload solutions to GitHub, in the same or separate repository. If you write notes through thinking-through-writing or maintain a blog about covered materials - you'll be amazed at how quickly you progress in understanding data structures and programming.

⚠️ Attention! When you've studied basic data structures, continue following the learning plan, we'll return to trees and more complex algorithms later. ⚠️

***

Answer to a possible question:

> Hey Ivan, what about leetcode/neetcode?

Oh you are a nerd aren't you? What are you doing here?

<div align="left"><figure><img src="/files/GfNuPbTAVcbXRgsdRktW" alt="" width="375"><figcaption></figcaption></figure></div>

LeetCode and NeetCode are good for practicing algorithms and data structures - you can definitely use them instead of Codewars. You may use any platform, just follow the book and solve problems to study each topic well.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guide.ivanzakutnii.com/the-hard-way-to-swe-excellence/learning-path/algorithms-and-data-structures-1-2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
