I’m a computer science student about to start my second year.
I have a question that’s been on my mind all the time.
This summer, I spent most of my time solving data structures problems & alogrithms , and I’ve now reached linked lists.
I’d like to ask you: Given that you’re learning and solving problems every day, what parallel skill did you start learning—or would you recommend learning—that’s reasonable and allows you to balance your progress in data structures with this skill, which can help you track your progress?
Rather than a specific skill*, I would instead recommend working on a long-term project of your own design. Build something you find interesting, something so big, and with too many unknowns, that you have no idea how to make it real (yet).
Then start chipping away at it and use the points you get stuck at as places to go learn new things so you upskill. It is this meta-skill* that is among the most important to learn.
Another thing you might do, since you are at uni, is reach out to professors about their research. I did this early in my CS edu and I ended up staying for many years and earning a PhD
a project can be something you always wanted to see, or some application that already exists (build your own version from scratch)
the key is that it is big and related/applied to something you like, such as a hobby
my first was a stock picking system (fool's errand), my PhD work was a system to extract math formula from data, post PhD was a deterministic code generation engine (pre-dating LLM code gen)
Ah, I see what you mean now. By DSA, I mean Data Structures and Algorithms.
So basically, you recommend choosing something I’m genuinely interested in, even if a similar application already exists, and building my own version from scratch. Then whenever I encounter something I don’t know, I learn it as I go.
I have a question that’s been on my mind all the time.
This summer, I spent most of my time solving data structures problems & alogrithms , and I’ve now reached linked lists.
I’d like to ask you: Given that you’re learning and solving problems every day, what parallel skill did you start learning—or would you recommend learning—that’s reasonable and allows you to balance your progress in data structures with this skill, which can help you track your progress?
I hope I’ve expressed my thoughts clearly.
Rather than a specific skill*, I would instead recommend working on a long-term project of your own design. Build something you find interesting, something so big, and with too many unknowns, that you have no idea how to make it real (yet).
Then start chipping away at it and use the points you get stuck at as places to go learn new things so you upskill. It is this meta-skill* that is among the most important to learn.
Another thing you might do, since you are at uni, is reach out to professors about their research. I did this early in my CS edu and I ended up staying for many years and earning a PhD
Thanks for the advice. I think I understand the idea, but I’m still not sure how to apply it at my level.
Could you give me an example of what you mean by a “long-term project” for someone at my level, and how you would balance it with continuing DSA?
a project can be something you always wanted to see, or some application that already exists (build your own version from scratch)
the key is that it is big and related/applied to something you like, such as a hobby
my first was a stock picking system (fool's errand), my PhD work was a system to extract math formula from data, post PhD was a deterministic code generation engine (pre-dating LLM code gen)
unfamiliar with the DSA acronym
Ah, I see what you mean now. By DSA, I mean Data Structures and Algorithms.
So basically, you recommend choosing something I’m genuinely interested in, even if a similar application already exists, and building my own version from scratch. Then whenever I encounter something I don’t know, I learn it as I go.