🪓
The Hard Way to SWE Excellence v1.2
  • Hello Friend, Start here!
  • Basic Undestanding
    • Good-to-have in your mind
    • What exactly is a programmer's job?
    • Choosing first language and thinking about potential career path
  • Learning Path
    • Learning Programming Basics
    • Getting Basic Understanding of Core Programming Technologies
    • Version Control System
    • Developing Sustainable Programming Skills
    • Algorithms and Data Structures 1/2
    • Clear code. Beautiful code.
    • DBMS & SQL!
    • Algorithms and Data Structures 2/2
    • 12 - Finally, the Framework and the rest of applied stuff!
  • Appendix
    • Read it.
    • Additional resources
Powered by GitBook
On this page
  1. Learning Path

Algorithms and Data Structures 1/2

PreviousDeveloping Sustainable Programming SkillsNextClear code. Beautiful code.

Last updated 6 months ago

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?

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.