# Additional resources

## Additional resources for practicing in programmin.

1. <https://codingdojo.org/kata/> \[FREE]

The set of programming challenges on codingdojo.org/kata/ are programming challenges for practicing problem-solving skills. I'm not recommending it as a platform for initial learning. It would be better to get into Coding Dojo after you've learned a programming language and the first part of Data Structures and Algorithms (DSA). These challenges are interesting tasks that will allow you to practice with skills you've already gained. For example, I recommend solving Katas while practicing Test-Driven Development (TDD) and SOLID principles, if the task is big enough to apply Object-Oriented Programming (though most tasks are not).

2. <https://codecrafters.io/> \[PAID SUBSCRIPTION, BUT OCCASIONALLY HAS FREE TRACKS]

This is probably the best, or at least one of the best platforms for improving your skills in solving complex applied problems. It's excellent for learning new languages or polishing your skills after completing a self-study book. On Codecrafters, you'll build your own implementations of things like HTTP servers, Redis, SQLite, Git, and more! While I strongly discourage "learning by projects," especially copying and pasting basic web CRUD applications from free/paid courses and YouTube, Codecrafters is quite different. I believe that learning through this platform will teach you not just about your programming language, but also about popular technologies. However, remember to COMPLETE THE BOOK FIRST.


---

# 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/appendix/additional-resources.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.
