As I’ve been tackling online assessments for SWE internships in the US, I’ve noticed a peculiar trend. Most questions seem to revolve around array and string manipulation. Think two pointers, prefix sums, counting, and simulating processes. Rarely do I see trees, graphs, or classic binary search patterns.
Is this the new normal for internship OAs, or am I just limited by my sample size? If this is indeed the trend, should I focus my prep on arrays, strings, hash maps, and sliding windows, rather than trees, graphs, and dynamic programming?
I’ve seen examples like:
* “Process a log of events and output metrics” → counting + maps
* “Merge/clean intervals with business rules” → sorting + sweeps
* “Decode/transform a string stream” → stack + two pointers
It’s clear that companies are looking for skills that can be applied to real-world problems. Arrays and strings are ubiquitous in software development, and being able to manipulate them efficiently is crucial.
Perhaps the shift away from more abstract data structures is a reflection of the industry’s need for practical skills. After all, most SWE internships involve working on existing projects, where arrays and strings are the bread and butter.
So, what does this mean for your prep? Focus on building a strong foundation in arrays, strings, and hash tables. Practice solving problems that involve manipulating and processing these data structures. It’s still important to have a basic understanding of trees, graphs, and other data structures, but it seems that arrays and strings are the way to go for SWE internship OAs.