Freshman Rejected from Google STEP Program – Feeling Frustrated

For anyone reading this now - I am starting to think it was something else, as my friend did amazing in his interview but still go rejected.

I wanted to share my recent experience interviewing for the Google STEP program as a freshman and get some perspective since I just received a rejection email. Honestly, I’m feeling pretty frustrated and confused about why it happened, so I thought this community might help me make sense of it all.

I would like to say, I did manage to give solutions that deemed correct by the interviewers.

Preparation Struggles:

As a freshman who hasn’t taken a data structures and algorithms (DSA) class yet, I had to rush my LeetCode preparation right after exams. Google didn’t provide specific resources for STEP freshmen applicants—just a generic Google Slides presentation about internships. The slides covered a wide range of topics, including concurrency and operating systems, which felt out of place for someone who had just finished their first semester.

Overly Broad Scope:

The preparation guide included advanced topics like NP-complete problems, AVL trees, and concurrency concepts. These are unlikely to appear in STEP interviews for freshmen and are more suited for second-year students applying to the acc SWE intern program. With such a broad scope, there was no way to know which topics would actually come up, making the guide not very helpful for my preparation.

Most other STEP candidates I’ve heard about were expecting questions on strings, arrays, and basic data structures like hash maps and hash sets—which is what I focused on. Instead, I ended up facing much tougher and unexpected questions that seemed more appropriate for higher-level applicants.

The Interviews:

First Interview:

The first question was on recursive backtracking or DP, a topic I hadn’t prepared for. I started with a brute-force recursive solution and mentioned that recursion was really inefficient and wanted to consider a different approach. However, I got stuck and couldn’t find a better solution during the interview. I didn’t consider backtracking or dynamic programming (DP) with memoization at the time (because big shocker 1 semester into university typically doesn't cover these topics- in my case we havent even done dsa nor will we ever) —that realisation only hit me after I Googled some solutions later on. Despite this, I managed to work through the problem with the interviewer’s guidance and hints, and got the solution correct and my interviewer verified this. I messed up the time and space complexities.

I did spend 10 mins ish clarifying the question after misreading and misunderstanding the question.

Second Interview:

The second question was about binary trees, which was completely new territory for me. I was upfront about my lack of experience in that area. To tackle the problem, I used BFS-like thinking to break it down, even though the question wasn’t directly related to BFS. I had only recently learned about BFS to cover more grounds just in case. We solved the problem, but ran out of time for optimisations and deeper complexity analysis. I mentioned complexities at the end, but it felt rushed. Once again got the solution correct.

Why I’m Feeling So Down:

What’s really frustrating is that while other candidates reportedly got simpler questions on strings and arrays—problems you can handle after solving about 20 LeetCode questions, I mean basic two pointers sliding window, i could've done those questions in 2 mins—I was given more advanced topics like recursive backtracking and binary trees. It felt like the questions I received were the same ones given to second-year students applying to the ACC SWE intern program, not for freshmen like me. I spent 2–3 weeks ramping up my Python skills and tackled around 50 LeetCode problems, focusing on the basics. Yet, I still faced unexpected and tougher questions. For the record they asked the question they gave the me to sophomores who applied to the SWE intern.

Final Thoughts:

The most frustrating part was that the interviews didn’t seem to test my abilities fairly. Instead of sticking to the expected basics, the interviewers chose unexpected and advanced questions. If it had been clear that topics like DP and binary trees would be covered, I might have prepared differently. I covered the basics thoroughly, only to be hit with these curveballs and still got rejected despite solving the problems correctly with some guidance.

It feels like the technical guidance provided was too generic and didn’t align with what was actually tested in the interviews. As a freshman, I was prepared for basic CS fundamentals like strings and arrays, but ended up facing much more complex topics. There was no way to know which advanced topics would come up, making the preparation guide not very useful for someone at my level.

Despite All the Complaining:

Even with all the frustration and complaints, I still managed to solve the questions. I won’t lie—I had a ton of help on the second interview, not with the actual coding, but with understanding how binary trees work. I kinda realised the concepts during the process, but I still needed help to piece everything together. It’s hard not to feel a bit let down when you’ve put in the effort and still needed so much assistance, especially as a freshman.

Like I was told my solution was correct to seem tricky questions at least give me a 3rd interview instead of just out right rejecting me.

I do want to clarify that the interviewers them selves were lovely and that it was unexpectedly calming, my recruiter was also super nice.

pardon if I came off as whining I spent a long time hoping i would get in to interviews and sacrificed my whole winter break to prepare after a pretty rough first semester, in the end i could've done 1000 problems on what was supposed to come up but it would not have matter.

This was typed using chatgpt, did a draft on my phone and chat gpt just kinda enhances it so i stuck with the more readable and better version.