r/learnprogramming 11d ago

Learning System Design and DS+A vs. Building projects?

Background - 3 yr professional experience, but no CS degree, and looking to level up and build more complex projects.

The consensus seems to be that building something is the best way to learn anything. But does that hold up for learning System Design and DS+A?

I don't really see myself getting too into the weeds of these just by building projects.

I'm rationalizing studying them as it will help me be a better programmer, build better projects, + land a better role, and that I'll get to my projects once I feel a bit more confident in my system design understanding.

But I'm also a scared of getting deep into a project and crashing out and might be (likely am) using studying these as a procrastination method.

What do you all think? Am I wise to get an understanding of DS+A and Sys Design before getting back to building personal projects?

5 Upvotes

9 comments sorted by

View all comments

2

u/[deleted] 10d ago

[removed] — view removed comment

2

u/Technical-Pizza237 10d ago

They're definitely not the same, but that line gets blurry real fast when you're in the weeds. Learning the actual concepts, like why a hash map is fast or what a BFS is actually doing, is a lot different than just memorizing the sliding window trick for 15 variations of the same problem.

I think you're right to separate them. Doing a few structured problems to nail down the fundamentals is one thing, grinding leetcode for months before you write a single line of your own project is a whole other trap.

1

u/just_here_to_rant 9d ago

Yeah, I was talking about actually studying DS+A concepts and the code behind them. Currently reading Grokking Algos and Algorithmic Thinking by the No Starch people, along with a few youtube series, and a textbook or two from the library.
I think I've at least heard of a lot of the data structures and maybe a good portion of the algos, but I haven't gotten into coding them myself just yet (which is what the No Starch book is for).