How much time did you spend preparing for Google's interviews? Is everyone who got into Facebook, Google, etc. really that good to solve or understand every classic algorithm or problem?

Google is very transparent about what they look for in candidates. The greater your understanding of Google's process and company culture, the better are your chances of success.

Google technical interview differs from other job interviews, it is a demanding, specialized process that assesses your personality, problem-solving abilities, and coding skills. Even though interviewing for a tech job at Google can be intimidating (with whiteboard challenges, remote coding challenges, and occasionally even full days of onsite interviews), it goes much more smoothly if you are prepared for the interview and have put some effort into your preparation.

Fortunately, Google is very transparent about what they look for in candidates. The greater your understanding of Google's process and company culture, the better are your chances of success.

Overview of Google interviews

2 to 2.5 months are needed to complete the interview process. A total of 5 to 7 interviews are conducted during the Google software developer hiring process. This entails a preliminary phone interview with a Google recruiter, followed by 4 to 6 in-person interviews with various Google employees. All coding challenges are done on a whiteboard, Google Docs, or a Chromebook.

Google prefers the following programming languages: Java, C++, C Go, and Python.

There are three types of coding problems you can expect to see in a Google interview.

How much time do you need to prepare?

The answers ranged from 2 weeks to a year, with 6 months being the most popular response.

The answer to this question varies depending on whether you have a foundation in Computer Science knowledge – either through a university degree, online courses or some form of self-study. Without such a foundation, you’d really struggle and the time spent on prep work would be really unproductive and demotivating.

If you can dedicate yourself to full-time preparation and working through sample problems like it’s your job, then 2-3 months should suffice. If, however, you’re only able to work part-time on your coding prep, which let's be real here, is most people, then you should aim for 1 year. It’s important to be realistic about the time and effort that you need to invest in preparation and upskilling in order to land these kinds of roles.

It may take 3-6 months for a new bootcamp grad with zero exposure to data structures and algorithms to get fully ramped. On the other hand, it could take 1-2 weeks for a low-level Senior Systems Engineer.

To your second part of the question, whether everyone in Google or Facebook is really that good at solving algorithms – I will say some people may be there who grasp algorithm logic very fast, but they will be very few in numbers. Most of them had reached there through extraordinary efforts they had made. Just a fact for you 14% of googlers haven't gone to college. Keep in mind it's not where you start but where you end up.

You just need to follow a schedule, solve problems on a daily basis and have seasoned guidance.

Coding Interview Preparation

An interview in programming requires a lot of preparation. Preparing for a technical interview entails more than just thinking of clever responses. It might take some time to learn how to prepare for technical interview questions, but it will be well worth it.

First, when preparing for a software engineer interview, don't overwhelm yourself by trying to learn everything at once. Instead, focus on the data structures and algorithms that you don't already understand, and solve lots of practice problems.

Big O Notation: You must get this part, as it forms the foundation for understanding algorithmic performance and how to choose a data structure.

Linear Data Structure

· Arrays

· Linked Lists

· Stacks

· Queues

· Hash Tables

Non-linear data structures

· Binary Trees

· AVL Trees

· Heaps

· Tries

Advanced Data Structure

· Graphs

· Backtracking and Recursion

· Dynamic Programming

System design questions are not asked of much advance level for an entry level position at Google. Although you should cover few of the topics which are asked more often –

· Scoping/User Cases/Constraints

· Component Design

· OOP Design

· Database Schema Design

· Vertical Scaling

· Horizontal Scaling

· Caching

· Load Balancing

· Database Replication

· Database Partitioning

· Map-Reduce

· Microservices

· Concurrency

· Networking

· Abstraction

· Estimation

Resources:

You can cover these in a much more efficient way through available online courses which include Logicmojo, Coursera, GFG and many more. Self-preparation can also be done but seasoned guidance before jumping into advanced level such as attempting contest and FAANG interview preparation can be done in a much concise way through these structured courses. You can also refer to books also such as – Cracking the coding interview and Algorithms made easy.