Recently I got a chance to give an interview to Google for Front-End Software Engineer. It was a nice experience and I learned a lot specially related to what they ask and what skills they seek in a person. This interview makes me realized the weaknesses in my problem solving abilities.
Google’s Interview Process
Initially an engineering recruiter contacts and asks for some additional personal info. He may send you a questionnaire containing questions like rate the programming languages with which you are comfortable with and second important question in it was the area of interests like Advance Algorithm, Operating Systems, Front-End, etc. Then they arrange 45min phone interview. If you succeed in it, they call you to Google campus (Mountain View, California) for a full day interview in which you have to stay with the technical team with whom you will work if you are selected. This team take about 4 to 5 interviews in a single day. The travel expenses and hotel stay is paid by Google.
What Google Asks?
They don’t need a particular technology skillset like LAMP, .NET, Java. They even don’t care about the programming language you use during the interview to solve the problems. What they require is problem solving ability. Person must be able to solve data structure and algorithm problems. They take deep notice on how person thinks to solve a particular problem or in other way how he/she approaches to the solution. Also they look for high performance solutions. For example they may give a problem whose obvious solution may require O(n) running time. But they will always ask you to optimize it more to get let’s say O(log n) running time. They focus too much on performance. They also observe the coding style of interviewee. Clean code with proper indentation is must.
In short you must have strong algorithm skills and you must have knowledge of algorithm analysis. If you don’t understand terms like big O notation and running time of algorithm, you can never pass their interview. In short you must have Computer Science degree.
Why Algorithm Skills?
The answer is simple. A person with good algorithmic knowledge has better problem solving skills and he/she can write efficient code.
How Can You Prepare?
Try reviewing your data structure and algorithms and improve your problem solving skills by solving as much problems as you can. I recommend following books to fully understand the interview process in companies like Google and Microsoft.
Some useful links
- Technical Interview Process
- Technical interview questions, brain teasers, puzzles, quizzles
- 140 Google Interview Questions
Why I Failed?
Google don’t tell any reason for rejecting the interviewee but as far as my case is concerned, I think need to polish my algorithm skills more. In the interview I gave them the correct solution to almost every problem but they require the most efficient solution with less running time. This is where I lacked.
Better luck next time Fawad ! and thanks again for sharing such useful information.
i know you will be able to clear it next time.!
Thankzz for sharing….
Thanks for sharing Fawad….. Hope you get a one more chance
Next time u will get a gud opportunity.. Thanks 4 sharing ths
Thanks for sharing. Better luck next time.
Thanks for featuring our list of 140 Google interview questions on your website. If you (or your readers) need a refresher on tackling software engineering interview questions, I’d highly recommend our How to Ace the Software engineering interview class: http://www.impactinterview.com/service/how-to-ace-the-software-engineering-interview-classes/
It would cover many of the topics you encountered at the Google interview including data structures and algorithms.
- Impact Interview
The one who never gave such interview won’t appreciate the amount of learning. At least you attended the interview. Some people would make excuse in the interview and leave as they feel ashamed of being not able to answer questions.
Thanks all of you for your kind support
hey,
I too was recently intrviewed by them. And I must say that it is NOT true that they don’t care about technologies/languages. I can’t tell too many details obviously but I can assure you that you need to know the technical aspects of the languages you mentioned in your CV (be it Java, Python or anything else) and they can ask you questions about them.
Also you don’t need a CS degree you just need to be smart and get things done
Better luck next time, I know I’m applying next year again!
@Matt:
I think you didn’t got my point. They don’t care about languages you use. They give free hand to choose whatever language you want to use in interview.
I mentioned CS degree is important because most of the developers who don’t have CS background don’t have good knowledge of data structures and algorithm analysis.
It is not completely true what you are saying about programming languages. Even most of their job offers say that you need to have a very strong background in (at least) one language (be it Python, C++, Java, whatever). Yes, you can choose which one you’ll use during the interview. BUT if you say in your CV that you’re mainly a Java developer then they might (and some times they do) ask you a very language specyfic question. As I said I can’t really say anything detailed but during my interview I was asked such question. Also some times there’s one more stage before the technical phone interview – an online test where you code. And from what I remember there’s only a limited number of languages you an use, so it’s only a “free hand” you have
Also I know a lot of people without a CS degree (because they either have some other technical degree or they don’t have a degree at all) who are very good with algorithms/data structures and I also know a lot of CS grads that don’t know squat about them
I know it’s just wording but in this case I think it makes a difference.
Yes I agree with you. Free hand is only for language but we must have good knowledge of the language which we choose
I’d rather use “In short you need a good math background to grasp algorithms” instead of “In short you must have Computer Science degree.” since somebody with solid math background can really master algorithms without going with full CS education…
Yes you are right. Math background is important as well. Also leadership skills are also very important.
A very good saying, “Defeat is not the worst of failures. Not to have tried is the true failure. ”
I know you will make a way next time, InshAllah.
Good luck, bro.
Great writeup, thank for the info.
Congrats on getting to the interview level, it is an accomplishment on it’s own.
Computer Science degree is indeed very helpful in getting an interview. Both the founders of Google had Masters degree in computer science and were doing Phd when they founded Google. Lots of interesting job posts actually require a minimum of Masters in Computer Science (Electronics, Maths, Statistics etc). So it’s in the company DNA. I can assure you that if we have two equally competent people for a job and one has a degree in the required field the other has not, then the former would be preferred.
I have had same issue of problem solving in interviews at other places where the required core competence that I thought was of Software Engineering, Integration, Communication skills and getting the job done attitude. At places like Google getting the job done for a large scale is a big consideration, hence all the algorithms/performance. But lots of small shops try to “imitate” big guys like Google and jam performance issues in every thing as their determining factor.
I think it is important to find your core competence and work upon it. There are many excellent work opportunities which don’t require the same level of competence. We already know that the highest paid programmers work in Finance industry and all they do is squeeze out milliseconds from computations (their algorithms are based on economic rules etc which are done with the help of financial analysts). I don’t mind the high salary, but that kind of work is mindless for me. http://developers.slashdot.org/story/11/07/31/003239/How-and-Why-Wall-Street-Programmers-Earn-Top-Salaries
Thanks for sharing your views in detail and specially thanks for the link of that “Wall Street Programmers” article.
Pardon me for asking but what gives the Google the right to be asking all kinds of technical programming questions in the first place?
If you look at their repertoire, aside from search and ads, most of their products and technologies have failed miserably. For example wave, buzz, orkut, labs, lively, video, knol and many, many more. Other products which are successful like android, earth and maps have in fact been bought from other companies and cannot be credited to Google.
I just don’t see the point in being interviewed by a Google engineer and possibly be considered ‘not good enough’ to work at Google when statistics tell me that Google engineer most likely worked on some failed Google technology or on some technology that Google bought because its own engineers were not smart enough to design to themselves.
Software Testing Interview
MicroSoft.NET Framework Interview
ASP.NET Interview
ASP.NET Web Service Interview
MicroSoft SQL Server Interview
visit here for interview questions and answers
http://www.questionanswerhub.com/
Hi my friend! I want to say that this article is amazing, nice written and come with almost all important infos. I’d like to peer more posts like this .
Thank you, I have just been searching for info about this topic for a long time and yours is the best I have came upon so far. But, what in regards to the conclusion? Are you positive concerning the supply?|What i do not realize is in truth how you’re not really much more neatly-liked than you might be now. You’re so intelligent.