You can build real things now. The remaining gap between you and an offer is interview skills โ and the first of those is the coding whiteboard.
What to expect
In most interviews you'll be asked to solve a problem with an algorithm โ often on a physical whiteboard, talking out loud as you go. This is a learnable, practiceable skill. It is not a measure of whether you can do the actual job; it's a game with rules, and you can get good at it.
Learn your data structures โ all of them
Data structures and algorithms are vital both to answering interview questions and to surviving your first job. Make sure you know all the core data structures:
- Trees โ traversing nodes; the different ways to search (breadth-first vs depth-first); finding siblings, parent nodes, and leaf nodes.
- Linked Lists vs Arrays vs Hash Tables โ quintessential. Know how each stores data and the trade-offs between them.
- For loops in every way possible โ nested loops, iterating backwards, two pointers. A surprising number of problems come down to looping cleverly.
Resources
- Data Structures โ JavaScript (YouTube) โ a solid video walkthrough of the fundamentals.
- Implement Trie (Prefix Tree) โ LeetCode 208 โ a great representative problem once you've learned trees.
- Women Who Code โ study resource โ a curated practice list.
- AlgoExpert โ structured DS&A practice with video explanations.
- "Algorithms & Data Structures โ Learn Algorithms with TypeScript for Interviews" โ if you're learning in TypeScript.
Practice, deliberately
Once you know the structures, drill problems:
- LeetCode โ the standard for interview practice.
- HackerRank โ another big problem bank.
For each problem, learn to give two answers: the brute-force solution first (usually just for loops), then something more elegant and efficient. Interviewers love watching you go from "it works" to "it works well."
You must know Big-O
Know your time and space complexity โ Big-O notation โ cold. For any solution you write, you should be able to say how its runtime and memory grow as the input grows, and why. This comes up in nearly every technical interview.
Don't forget testing
You need to mention testing. Be ready to either write a test or verbally walk through the different test cases you'd write โ edge cases, empty inputs, large inputs. Bringing up testing unprompted signals maturity.
Do this now
Pick one data structure (start with arrays + hash tables) and solve five LeetCode "Easy" problems on it. For each, write the brute-force version, then improve it, and state the Big-O of both. Tomorrow, do the next structure.