Java® Programming Interviews Exposed Published. Co-authored Professional Android Sensor Programming in 2012. Summary 300 ChAPtEr 19. Elements of Programming Interviews in Java: The Insiders' Guide by Adnan Aziz; Tsung-Hsien Lee; Amit Prakash; at AbeBooks.co.uk - ISBN 10: - ISBN 13: 806 - CreateSpace. The problems are illustrated with 200 figures, 300 tested programs, and 150 additional variants.

• Why do you want to join Google? • What do you know about Google’s product and technology? • If you are Product Manager for Google’s Adwords, how do you plan to market this? Download Naruto Vs Pain Full Fight Free.

• What would you say during an AdWords or AdSense product seminar? • Who are Google’s competitors, and how does Google compete with them? • Have you ever used Google’s products? • What’s a creative way of marketing Google’s brand name and product? • If you are the product marketing manager for Google’s Gmail product, how do you plan to market it so as to achieve 100 million customers in 6 months?

• How much money you think Google makes daily from Gmail ads? • Name a piece of technology you’ve read about recently. Now tell me your own creative execution for an ad for that product. • Say an advertiser makes $0.10 every time someone clicks on their ad. Only 20% of people who visit the site click on their ad. How many people need to visit the site for the advertiser to make $20? • Estimate the number of students who are college seniors, attend four-year schools, and graduate with a job in the United States every year.

• How would you boost the GMail subscription base? • What is the most efficient way to sort a million integers? • How would you re-position Google’s offerings to counteract competitive threats from Microsoft? • How many golf balls can fit in a school bus? • You are shrunk to the height of a nickel and your mass is proportionally reduced so as to maintain your original density. You are then thrown into an empty glass blender. The blades will start moving in 60 seconds.

What do you do? • How much should you charge to wash all the windows in Seattle? • How would you find out if a machine’s stack grows up or down in memory? • Explain a database in three sentences to your eight-year-old nephew. • How many times a day does a clock’s hands overlap? • You have to get from point A to point B.

You don’t know if you can get there. What would you do?

• Imagine you have a closet full of shirts. It’s very hard to find a shirt. So what can you do to organize your shirts for easy retrieval? • Every man in a village of 100 married couples has cheated on his wife. Every wife in the village instantly knows when a man other than her husband has cheated, but does not know when her own husband has.

The village has a law that does not allow for adultery. Any wife who can prove that her husband is unfaithful must kill him that very day.

The women of the village would never disobey this law. One day, the queen of the village visits and announces that at least one husband has been unfaithful. What happens? • In a country in which people only want boys, every family continues to have children until they have a boy. Buildwin Auto Mp3 Usb Device Driver. If they have a girl, they have another child. If they have a boy, they stop. What is the proportion of boys to girls in the country?

• If the probability of observing a car in 30 minutes on a highway is 0.95, what is the probability of observing a car in 10 minutes (assuming constant default probability)? • If you look at a clock and the time is 3:15, what is the angle between the hour and the minute hands? (The answer to this is not zero!) • Four people need to cross a rickety rope bridge to get back to their camp at night. Unfortunately, they only have one flashlight and it only has enough light left for seventeen minutes.

The bridge is too dangerous to cross without a flashlight, and it’s only strong enough to support two people at any given time. Each of the campers walks at a different speed.

One can cross the bridge in 1 minute, another in 2 minutes, the third in 5 minutes, and the slow poke takes 10 minutes to cross. How do the campers make it across in 17 minutes? • You are at a party with a friend and 10 people are present including you and the friend.

Your friend makes you a wager that for every person you find that has the same birthday as you, you get $1; for every person he finds that does not have the same birthday as you, he gets $2. Would you accept the wager? • How many piano tuners are there in the entire world? • You have eight balls all of the same size. 7 of them weigh the same, and one of them weighs slightly more.

How can you find the ball that is heavier by using a balance and only two weighings? • You have five pirates, ranked from 5 to 1 in descending order. The top pirate has the right to propose how 100 gold coins should be divided among them.

But the others get to vote on his plan, and if fewer than half agree with him, he gets killed. How should he allocate the gold in order to maximize his share but live to enjoy it? (Hint: One pirate ends up with 98 percent of the gold.) • You are given 2 eggs. You have access to a 100-story building. Eggs can be very hard or very fragile means it may break if dropped from the first floor or may not even break if dropped from 100th floor. Both eggs are identical.

You need to figure out the highest floor of a 100-story building an egg can be dropped without breaking. The question is how many drops you need to make.

You are allowed to break 2 eggs in the process. • Describe a technical problem you had and how you solved it. • How would you design a simple search engine? • Design an evacuation plan for San Francisco. • There’s a latency problem in South Africa. • What are three long term challenges facing Google?

• Name three non-Google websites that you visit often and like. What do you like about the user interface and design? Choose one of the three sites and comment on what new feature or project you would work on. How would you design it? • If there is only one elevator in the building, how would you change the design?

How about if there are only two elevators in the building? • How many vacuum’s are made per year in USA?

• Why are manhole covers round? • What is the difference between a mutex and a semaphore? Which one would you use to protect access to an increment operation?

• A man pushed his car to a hotel and lost his fortune. What happened?

• Explain the significance of “dead beef”. • Write a C program which measures the the speed of a context switch on a UNIX/Linux system. • Given a function which produces a random integer in the range 1 to 5, write a function which produces a random integer in the range 1 to 7. • Describe the algorithm for a depth-first graph traversal. • Design a class library for writing card games.

• You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you. What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number?

• How are cookies passed in the HTTP protocol? • Design the SQL database tables for a car rental database. • Write a regular expression which matches a email address. • Write a function f(a, b) which takes two character string arguments and returns a string containing only the characters found in both strings in the order of a. Write a version which is order N-squared and one which is order N. • You are given a the source to a application which is crashing when run.

After running it 10 times in a debugger, you find it never crashes in the same place. The application is single threaded, and uses only the C standard library. What programming errors could be causing this crash? How would you test each one? • Explain how congestion control works in the TCP protocol.

• In Java, what is the difference between final, finally, and finalize? • What is multithreaded programming? What is a deadlock? • Write a function (with helper functions if needed) called to Excel that takes an excel column value (A,B,C,DAA,AB,AC, AAA.) and returns a corresponding integer value (A=1,B=2, AA=26.). • You have a stream of infinite queries (ie: real time Google search queries that people are entering).

Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it. • Tree search algorithms. Write BFS and DFS code, explain run time and space requirements. Modify the code to handle trees with weighted edges and loops with BFS and DFS, make the code print out path to goal state. • You are given a list of numbers. When you reach the end of the list you will come back to the beginning of the list (a circular list).

Write the most efficient algorithm to find the minimum # in this list. Find any given # in the list. The numbers in the list are always increasing but you don’t know where the circular list begins, ie: 38, 40, 55, 89, 6, 13, 20, 23, 36.

• Describe the data structure that is used to manage memory. (stack) • What’s the difference between local and global variables? • If you have 1 million integers, how would you sort them efficiently? (modify a specific sorting algorithm to solve this) • In Java, what is the difference between static, final, and const. (if you don’t know Java they will ask something similar for C or C++). • Talk about your class projects or work projects (pick something easy) then describe how you could make them more efficient (in terms of algorithms).

• Suppose you have an NxN matrix of positive and negative integers. Write some code that finds the sub-matrix with the maximum sum of its elements. • Write some code to reverse a string. • Implement division (without using the divide operator, obviously). • Write some code to find all permutations of the letters in a particular string.

• What method would you use to look up a word in a dictionary? • Imagine you have a closet full of shirts. It’s very hard to find a shirt.

So what can you do to organize your shirts for easy retrieval? • You have eight balls all of the same size. 7 of them weigh the same, and one of them weighs slightly more. How can you fine the ball that is heavier by using a balance and only two weighings? • What is the C-language command for opening a connection with a foreign host over the internet?

• Design and describe a system/application that will most efficiently produce a report of the top 1 million Google search requests. These are the particulars: 1) You are given 12 servers to work with. They are all dual-processor machines with 4Gb of RAM, 4x400GB hard drives and networked together.(Basically, nothing more than high-end PC’s) 2) The log data has already been cleaned for you. It consists of 100 Billion log lines, broken down into 12 320 GB files of 40-byte search terms per line. 3) You can use only custom written applications or available free open-source software. • There is an array A[N] of N numbers. You have to compose an array Output[N] such that Output[i] will be equal to multiplication of all the elements of A[N] except A[i].

For example Output[0] will be multiplication of A[1] to A[N-1] and Output[1] will be multiplication of A[0] and from A[2] to A[N-1]. Solve it without division operator and in O(n). • There is a linked list of numbers of length N. N is very large and you don’t know N.

You have to write a function that will return k random numbers from the list. Numbers should be completely random. Use random function rand() (returns a number between 0 and 1) and irand() (return either 0 or 1) 2.

It should be done in O(n). • Find or determine non existence of a number in a sorted list of N numbers where the numbers range over M, M>>N and N large enough to span multiple disks.

Algorithm to beat O(log n) bonus points for constant time algorithm. • You are given a game of Tic Tac Toe. You have to write a function in which you pass the whole game and name of a player.

The function will return whether the player has won the game or not. First you to decide which data structure you will use for the game. You need to tell the algorithm first and then need to write the code. Note: Some position may be blank in the game। So your data structure should consider this condition also. • You are given an array [a1 To an] and we have to construct another array [b1 To bn] where bi = a1*a2**an/ai. You are allowed to use only constant space and the time complexity is O(n). No divisions are allowed.

• How do you put a Binary Search Tree in an array in a efficient manner. Hint:: If the node is stored at the ith position and its children are at 2i and 2i+1(I mean level order wise)Its not the most efficient way. • How do you find out the fifth maximum element in an Binary Search Tree in efficient manner. Note: You should not use use any extra space. I.e sorting Binary Search Tree and storing the results in an array and listing out the fifth element. • Given a Data Structure having first n integers and next n chars. A = i1 i2 i3 iN c1 c2 c3 cN.Write an in-place algorithm to rearrange the elements of the array ass A = i1 c1 i2 c2 in cn • Given two sequences of items, find the items whose absolute number increases or decreases the most when comparing one sequence with the other by reading the sequence only once.

• Given That One of the strings is very very long, and the other one could be of various sizes. Windowing will result in O(N+M) solution but could it be better? May be NlogM or even better? • How many lines can be drawn in a 2D plane such that they are equidistant from 3 non-collinear points?

• Let’s say you have to construct Google maps from scratch and guide a person standing on Gateway of India (Mumbai) to India Gate(Delhi). How do you do the same? • Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one? • Given a binary tree, programmatically you need to prove it is a binary search tree. • You are given a small sorted list of numbers, and a very very long sorted list of numbers – so long that it had to be put on a disk in different blocks.

How would you find those short list numbers in the bigger one? • Suppose you have given N companies, and we want to eventually merge them into one big company. How many ways are theres to merge? • Given a file of 4 billion 32-bit integers, how to find one that appears at least twice?

• Write a program for displaying the ten most frequent words in a file such that your program should be efficient in all complexity measures. • Design a stack. We want to push, pop, and also, retrieve the minimum element in constant time. • Given a set of coin denominators, find the minimum number of coins to give a certain amount of change. • Given an array, i) find the longest continuous increasing subsequence. Ii) find the longest increasing subsequence.

• Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

• Write a function to find the middle node of a single link list. • Given two binary trees, write a compare function to check if they are equal or not. Being equal means that they have the same value and same structure. • Implement put/get methods of a fixed size cache with LRU replacement algorithm. • You are given with three sorted arrays ( in ascending order), you are required to find a triplet ( one element from each array) such that distance is minimum. • Distance is defined like this: If a[i], b[j] and c[k] are three elements then distance=max(abs(a[i]-b[j]),abs(a[i]-c[k]),abs(b[j]-c[k]))” Please give a solution in O(n) time complexity • How does C++ deal with constructors and deconstructors of a class and its child class? • Write a function that flips the bits inside a byte (either in C++ or Java).

Write an algorithm that take a list of n words, and an integer m, and retrieves the mth most frequent word in that list. • What’s 2 to the power of 64? • Given that you have one string of length N and M small strings of length L. How do you efficiently find the occurrence of each small string in the larger one? • How do you find out the fifth maximum element in an Binary Search Tree in efficient manner. • Suppose we have N companies, and we want to eventually merge them into one big company. How many ways are there to merge?

• There is linked list of millions of node and you do not know the length of it. Write a function which will return a random number from the list. • You need to check that your friend, Bob, has your correct phone number, but you cannot ask him directly. You must write a the question on a card which and give it to Eve who will take the card to Bob and return the answer to you.

What must you write on the card, besides the question, to ensure Bob can encode the message so that Eve cannot read your phone number? • How long it would take to sort 1 trillion numbers? Come up with a good estimate. • Order the functions in order of their asymptotic performance: 1) 2^n 2) n^100 3) n! 4) n^n • There are some data represented by(x,y,z). Now we want to find the Kth least data. We say (x1, y1, z1) >(x2, y2, z2) when value(x1, y1, z1) >value(x2, y2, z2) where value(x,y,z) = (2^x)*(3^y)*(5^z).

Now we can not get it by calculating value(x,y,z) or through other indirect calculations as lg(value(x,y,z)). How to solve it? • How many degrees are there in the angle between the hour and minute hands of a clock when the time is a quarter past three? • Given an array whose elements are sorted, return the index of a the first occurrence of a specific integer. Do this in sub-linear time. Do not just go through each element searching for that element. • Given two linked lists, return the intersection of the two lists: i.e.

Return a list containing only the elements that occur in both of the input lists. • What’s the difference between a hashtable and a hashmap? • If a person dials a sequence of numbers on the telephone, what possible words/strings can be formed from the letters associated with those numbers? • How would you reverse the image on an n by n matrix where each pixel is represented by a bit?

• Create a fast cached storage mechanism that, given a limitation on the amount of cache memory, will ensure that only the least recently used items are discarded when the cache memory is reached when inserting a new item. It supports 2 functions: String get(T t) and void put(String k, T t). • Create a cost model that allows Google to make purchasing decisions on to compare the cost of purchasing more RAM memory for their servers vs. Buying more disk space.

• Design an algorithm to play a game of Frogger and then code the solution. The object of the game is to direct a frog to avoid cars while crossing a busy road. You may represent a road lane via an array. Generalize the solution for an N-lane road. • What sort would you use if you had a large data set on disk and a small amount of ram to work with? • What sort would you use if you required tight max time bounds and wanted highly regular performance.

• How would you store 1 million phone numbers? • Design a 2D dungeon crawling game.

It must allow for various items in the maze – walls, objects, and computer-controlled characters. (The focus was on the class structures, and how to optimize the experience for the user as s/he travels through the dungeon.) • What is the size of the C structure below on a 32-bit system? Struct foo {. • Efficiently implement 3 stacks in a single array.

• Given an array of integers which is circularly sorted, how do you find a given integer. • Write a program to find depth of binary search tree without using recursion. • Find the maximum rectangle (in terms of area) under a histogram in linear time.

• Most phones now have full keyboards. Before there there three letters mapped to a number button.

Describe how you would go about implementing spelling and word suggestions as people type. • Describe recursive mergesort and its runtime. Write an iterative version in C++/Java/Python. • How would you determine if someone has won a game of tic-tac-toe on a board of any size?

• Given an array of numbers, replace each number with the product of all the numbers in the array except the number itself *without* using division. • Create a cache with fast look up that only stores the N most recently accessed items. • How to design a search engine?

If each document contains a set of keywords, and is associated with a numeric attribute, how to build indices? • Given two files that has list of words (one per line), write a program to show the intersection. • What kind of data structure would you use to index annagrams of words? If there exists the word “top” in the database, the query for “pot” should list that. October 11, 2012 at 2:04 pm, Joe said: I definitely got some questions like these when I screened for an engineering position very recently. (Very recently: Still don’t know if I got the job) I didn’t get silly brain teasers, but I did get questions about sort algorithm runtimes, and had to write some example code for them.

It was not excessively hard, but unlike most of my interviews where I tell them what I know, they actually make you demonstrate it. This is the one time where you can answer the question “Where where I ever use this bit of knowledge when I couldn’t look it up online?” Answer: In a Google interview. November 19, 2009 at 10:44 am, BillR said: They don't have some of the happiest employees. Average software engineer is only there for a few years before they move on. In fact, if you've been there for a while and NOT been headhunted, it sort of looks weird. In any case, it's long hours, and working on weekends is not at all uncommon (I once worked 11 weeks straight without a day off, and many of those were 14-16 hour days). They give you breakfast, lunch and dinner for a reason, you know.

They also aren't the best paid. Google is famous for underpaying their employees. They make up for it with their very generous benefits package. But in terms of straight salary, they're about 20% below other valley tech companies.

By the way, I interviewed a few hundred people for SWE positions while I was at Google. Many of your example questions not only aren't asked, they're explicitly forbidden. You are not allowed to ask frivolous brainteaser crap about manhole covers (there are actually two shapes which won't fall back into the hole, in case you were curious) or why 0xDEADBEEF is in decimal. You don't ask that nonsense because the questions are crap and tell you absolutely nothing about the candidate. You're supposed to ask open-ended questions that test problem solving and general knowledge, then get into specifics. Once answered, you pick a topic in the answer and you dive in deeper. The goal to to find out where the candidates run out of ideas.

Typically you want to test general knowledge, and find an area that you two can really dig deep into. At that point, you send the candidate to the whiteboard and have them start writing code. So you don't bother with asking questions with simple factoid answers.

For example, you aren't going to ask what a mutex is, you're going to talk about them when the candidate's code on the whiteboard has a race condition or whatever. Similarly, you don't ask 'How would you store a million phone numbers?' , you ask 'How would you sort a million phone numbers on a machine that only had 256KB of memory?' You want to see if they can figure out how to solve the problem creatively given your constraints. And when they write it out, you ask 'OK, so that solution is O(n log n) how can you make it more efficient?' And if they don't know about Big O notation, well then you immediately know you're not hiring that person.

My favorite question was to ask them to write a little program that solved a rubik's cube. It's got a bunch of possible answers and some that I saw were actually quite creative. (The best way, again in case you're curious, is to 'open the cube up' and treat it as an asymmetrical grid. You go through it row and column and match up the six colors.) Some real advice: When given open-ended questions, immediately ask questions in return that would help define the constraints. They want you to sort something, ask if it's a list of INTs, that sort of thing. But the best advice I can give anyone interviewing there is to sharpen your ability to understand engineers for whom English is a second language.

Chances are very good that you'll be interviewing with someone who is difficult to understand. Sad, but true. June 28, 2014 at 12:08 pm, Billy WM said: Well now it’s 2014 and we know why so many Google employees weren’t headhunted – Google is an evil company (just like Apple and others) that engaged in collusion (“no poach” agreements). So much for “don’t be evil”.

I can’t even count the number of times Google has shown to be just as slimy as any other corporation. This cult of personality surrounding Google needs to die. It’s fiction, and it’s always been fiction. Google is not the savior of the tech world. They’re just another corporate giant with selfish interests. Business as usual. Oh and as far as offering amazing “perks” and having “happy” employees: people are so naive.

Paying in “perks” lets you pay less in wages. People stay in their jobs for other factors besides money. If you can buy them off with food, massages, and gym memberships you can pay a lot less in salary (and, again, you can reduce their salary further by screwing them over by engaging in illegal collusion) •. November 24, 2011 at 9:40 pm, notimpressed said: Yeah, agreed, they probably want you to agree to the microchip implantation out in the parking lot, as a condition for parking your car and getting into the building. Step one: sell your soul permanently for a chance to even possibly get to kiss one g-ass. The problem with something that is this much of a ‘gotcha’ is twofold. Superman syndrome – if they DO get someone who answers all of the stupidity in the right way, it just means they are ok or well-prepped for specific questions like this.

It doesn’t necessarily even mean they are a good coder or whatever else there is to do at google, like a) code b) write code c) code some more on your birthday d) code all night and weekend 2. This shows me that google is still really a playboy type company in which the founders/leaders have a culture that they permeate, which promotes and condones intimidation of employees. As a potential employee, you are naturally intimidated by some or all of these questions.

Even if you are not, it also shows they have a ‘protected club’ type mentality, which will STILL stink up the place once you are inside their prison wall of well fed prisoners. If anyone at ANY company EVER EVER EVER EVER asks me something like ‘why is a manhole cover round’ or the ‘golf ball school bus’ question, I will say ‘GIVE ME MY GODDAMN RESUME BACK’. Make them HAND you the hardcopy and WALK OUT.

Your personal integrity is worth FAR MORE than your salary, or getting to ‘sleep’ (for 5 minutes) in the office while you ‘recharge’ your new-age batteries for 4 more hours after a 12 hour day. And they can KEEP their swag and shit, too. And I don’t give a FUCK about the food either. November 14, 2010 at 12:15 pm, foxorrabbit said: Regarding the Google-Berkshire comparison: when Berkshire was $500 per share, the value of all the shares was less than $1 billion, less than 0.1% of the value of all companies at that time. Over 30 or so years, Berkshire's share price increased by 200x and the company is now valued around $200 billion. Google, at $600 per share, with 320 million shares outstanding, is already worth about $200 billion. This valuation represents somewhere in the area of 1% of the aggregate value of all public companies in the United States.

So for Google to increase by even 10x — without a 10x increase in the stock market overall — its value would need to increase to near 10% of the value of all U.S. Companies combined. The law of large numbers makes that almost impossible. March 31, 2011 at 8:29 am, Sean said: I recently went for a Google interview at their Singapore office. Their were a panel of 4 interviewers all interviews were back to back. I am still waiting to hear as they said after this the results go to a panel I must say I am not sure if I really want to join them as I was not really impressed because: 1.

Average tenure of someone in thier staff in existing role is 6 mo. All good for googling but what do you accomplish in this timespan and move on so soon to new projects. I was a bit disgusted because the second interviewer started asking me personal questions as to where I am from.

I am a Canadian of Indian origin and I guess he was looking for some Indian accent, then the one that took the cake is when he asked whether I am married to a Chinese. Also wheer do my parents live. He keept bragging he is from Manhattan and trying to get used to Singapore.

I could see they are a smart bunch and will be fun to work with. They are a happy lot with some cool perks but I fealt they were becoming very inward looking. This got confirmed recently with the amazon marketplace just announced.

Also lot of revenue is still very much tied to search. I am still waiting but a bit confused if this is the place. October 14, 2011 at 4:06 am, said: 1. You have a stream of infinite queries (ie: real time Google search queries that people are entering). Describe how you would go about finding a good estimate of 1000 samples from this never ending set of data and then write code for it. And There is a linked list of numbers of length N.

N is very large and you don’t know N. You have to write a function that will return k random numbers from the list. Numbers should be completely random. Use random function rand() (returns a number between 0 and 1) and irand() (return either 0 or 1) 2. It should be done in O(n). Solution: reservoir sampling: 2. Write a function (with helper functions if needed) called to Excel that takes an excel column value (A,B,C,DAA,AB,AC, AAA.) and returns a corresponding integer value (A=1,B=2, AA=26.).

You are given a list of numbers. When you reach the end of the list you will come back to the beginning of the list (a circular list). Write the most efficient algorithm to find the minimum number in this list. Find any given number in the list. The numbers in the list are always increasing but you don’t know where the circular list begins, i.e.: 38, 40, 55, 89, 6, 13, 20, 23, 36. Solution: O(log(n)) considering that you can randomly access the elements of the list: 4. Maximum sub-sequence, maximum sub-matrix, LCS, LIS: Solutions: 5.

There is an array A[N] of N numbers. You have to compose an array Output[N] such that Output[i] will be equal to multiplication of all the elements of A[N] except A[i].

For example Output[ 0 ] will be multiplication of A[ 1 ] to A[N-1] and Output[ 1 ] will be multiplication of A[ 0 ] and from A[ 2 ] to A[N – 1]. Solve it without division operator and in O(n). November 04, 2011 at 6:02 pm, Zoltan said: 1. There are dogs.

Each dog have two parents and some number of children, they have their own cubs, etc. Design a function which checks if two dogs are related in some way (marriage is not counted). Effectievly this means finding a common ancestor in a tree which is not arranged in any way. There are two _sorted_ arrays A and B. Write a function which produces two other arrays X=A-B and Z=B-A where A-B means elements which exist in A but not in B and B-A is vice versa.

Complexity is linear to A and B lengths. November 22, 2011 at 6:05 am, Steve said: What a load of crap. If Google continues down this path to select new employees they will end up hurting themselves in the long term. Right now the bet and brightest are fighting to get into the company so they will tolerate this type of treatment. They would be hardpresed to hire a “wrong” person because they a fishing from a well stocked, highly qualified pool. Like shooting fish in a barrell. However, bad news travels fast – they are insulting some very qualified people who are going to tell their friends and colleagues about their experience.

Pretty soon no one will want to work with a bunch of lunatics and they will have a less rich pool to draw from. They will then have to learn how to actually interview and properly qualify a candidate to select a good one. Where is the bloody management team there – have they never heard of behavioural based interviewing techniques – do they understand the importance of balance of IQ and EQ. I guess if you are hiring a bunch of straight coders who can be kept in a room and you throw food in once in a while their methods are ok. For any role in the organization desinged to increase business and move the company forward this type of interviewing is a recipe for disaster. May 02, 2012 at 2:47 pm, said: These questions are really awesome. I feel that they really help sharpen the programmer’s mind.

I plan on doing about 5 or more a day. I would love to work for google one day. I mean it’s google. I believe that if they really put their minds to it and enhanced and properly marketed some of their deprecated ideas, they could really be a lot bigger and better than apple. Google prides itself on their search engine and google collaboration however they could do much more. Hope a googler sees this and says “hey, we want you!” Google can one day rule the world!!!!

March 23, 2013 at 10:37 am, Doug said: Apart from CLR and Skiena’s algorithms book, I would recommend the following books focussed on real coding interviews questions which contains great details(real questions with real answers as expected by the google/amazon interviewer): *Top 10 coding interview problems asked in Google with solutions: Algorithmic Approach By Dr Lin Quan *Elements of Programming Interviews: 300 Questions and Solutions By Adnan et al. *Programming Pearls By Dr Bentley *More Programming Pearls By Dr Bentley These books helped me greatly in my Amazon’s onsite interview recently. Practicing topcoders questions can be an additional help if it suits individual interest. April 06, 2013 at 12:25 pm, David said: I have been on zero job interviews since I graduated college 12 years ago – I have worked at that same company all this time. So I have no earthly idea what other companies do, but when I interview engineers, I want really don’t care about seeing them answer some “gotcha” mind games nor even seeing that they can implement some obscure algorithm from memory. Chances are, if you have written a b-tree or any such rudimentary algorithm in your professional life, you’re doing something wrong.

For the overwhelming majority of software engineers, you’re using a language that has these structures built in. You need to be able to use the object model or library or whatever it is that you have in your environment, but getting someone to regurgitate how to build tree structure XYZ from college is not a meaningful exercise. In the off chance that you need to write a b-tree in your professional life because for whatever reason the one built in to your language doesn’t meet your needs, you aren’t going to be doing it from scratch – you can have a textbook or Wikipedia article or whatever sitting right next to you. You still don’t need to do it from scratch. I also hate making someone write something up on a white board while I watch unless it’s something very brief and it’s easier for them to write it rather than say it. It’s a waste of my valuable time to sit there while you write a program on a whiteboard – I’d rather either (a) give you a computer to do it or (b) just sit you in a conference room with a written test and say come get me when you’re done and ready to talk. June 28, 2013 at 1:31 pm, Noogle said: Ah yes, and the world will never be “normal” again, for the worse unfortunately.

How about hiring someone who will apply themselves, be dependable, and hard working? That’s a novel idea.

And then you have these pompous arrogant smarty pant types who think they know it all. They may know it all literally, but they don’t have an ounce of common sense or social skills to get them through what has built human societies for hundreds of thousands of years. Google can go pound sand.

In 10-15 years, it will be that era’s equivalent of GM, Ford, GE, etc. Karma always comes knocking on your door. Are you ready to answer the door? Oh, and I was offered a job at Google, and turned it down when they showed this ugly side, and their sub-culture.

July 09, 2014 at 8:56 pm, peep1000 said: For seemingly ridiculous questions like these, they usually want to assess your thought process on how you would solve the problem. It’s not necessarily important to get the right answer, but it’s the process they’re looking for. For example, for the “how many balls will fit in a school bus” what kind of school bus? Some of them have flat roofs, some have rounded. What’s the size of the ball? As long as you give them the measurements and your logic behind it, that’s what they want to judge.

October 25, 2014 at 2:01 am, Rubik said: The rubik’s cube problem is stupid. 99% of the people can’t even solve a rubik’s cube, let alone write a program to solve it? This has nothing to do with problem solving. That’s like asking someone to play a Beethoven score, when the person doesn’t even know how to play a piano. And how does problem solving have anything to do with it. When you ask BS question, you will get BS answer.

If the interviewer asked me how many tennis balls are in france. I bet you even if i gave a number, he/she won’t know its the correct answer or not. Because a BS question will get a BS answer.

November 17, 2014 at 7:42 pm, Sam in SV said: Even years later, it’s interesting that this post doesn’t address the single-most important dimension in an interview: “Who, exactly, is asking the question?” Who is asking the question is at least as important as the question being asked, because how they are evaluating your response is filtered through their own personal lens; which, in turn, determines what response is going to move them; and in which direction. Just something to consider in an interview.

Have you ever. Wanted to work at an exciting futuristic company? Struggled with an interview problem that could have been solved in 15 minutes? Wished you could study real-world computing problems? If so, you need to read Elements of Programming Interviews (EPI).

The core of EPI is a collection of 300 problems with detailed solutions, including over 100 figures and 200 tested programs. The problems are challenging, well-motivated, and accessible. They are representative of the questions asked at interviews at the most exciting companies. The book begins with a summary of patterns for data structure, algorithms, and problem solving that will help you solve the most challenging interview problems. This is followed by chapters on basic and advanced data structures, algorithm design, concurrency, system design, probability and discrete mathematics. Each chapter starts with a brief review of key concepts and results followed by a deep and wide set of questions.

EPI concludes with a summary of the nontechnical aspects of interviewing, including common mistakes, strategies for a great interview, perspectives from across the table, negotiating the best offer, and much more. 'This book is the best compilation of programming related problems I have seen.

It is a great resource for a diverse set of topics when preparing for technical interviews, as a quick refresher in a subject area or when you are just looking for a brain teaser to challenge yourself.' Shashank Gupta / Scaligent, formerly Engineering Manager,Senior Engineering Manager, Yahoo!, Manager of Software Development, Cisco Systems.