• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Way to Google

 
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Google is my dream company to work for not only for me but for all the People who like to work on a Hi tech Technology. As i understand Google expects the Employee to be expert in Algorithms & Compilers and other respective technologies... Can you please provide some areas where we need to be focused to get into the Dream Company..

I believe we can discuses the company names until we are not comparing with the other companies. Please let me also know if i was violating the forum policy.
 
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You are correct, as long as the discussion isn't opinions about Google this discussion is welcome here.

(Personally, I don't think everyone in high tech views Google as a dream company. It's not my dream company, and I know others who don't want to work there either.)

[And just to clarify, I'm not giving my opinions of Google, but rather my knowledge of what developers think of as their dream company. ;-) ]


--Mark
 
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have them as one of my dream companies, but what makes a company great to work for from you guys. Is it the salary, culture or perks or innovation. [Thoughts on a company removed.] My company that I would love to work for is Accenture.

[Removed specific opinions about a company names as per our policy listed here. --MH]
[ June 10, 2008: Message edited by: Mark Herschberg ]
 
Author
Posts: 3473
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The experience at a brand name company like google can also put a weight on your resume and consequently your future career prospects.
 
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I had an interview with Google before. [Comments about the company removed.] Can I post their algorithm question here and talk about that?

[Removed details about company as per our policy listed here. --MH]
[ June 10, 2008: Message edited by: Mark Herschberg ]
 
Mohammed Yousuff
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ya sure, as mark said we are not saying any bad thing about the company and we are not comparing... So i think we are not overriding any policy...

Please feel free to discuses the areas which is very important for Computer Science Engineer..... with respect to Google....
[ June 10, 2008: Message edited by: Mohammed Yousuff ]
 
Ranch Hand
Posts: 1907
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
[Removed details about interview at a given company]

[Removed company information as per our policy listed here. --MH]
[ June 10, 2008: Message edited by: Mark Herschberg ]
 
Mohammed Yousuff
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks a lot Arjun, i do agree with your comments.. I have a plan of 4 Years to get into Google..

Even though i am computer Engineer, i can't remember what i studied in my colleges after 4 years (because i not yet used any algorithms in my work)...

So i am planning to learn back all the subjects which i studied in college days and planning to contribute to open source community.....

Please share some good books to Start on towards my Dream Company...
 
Ranch Hand
Posts: 108
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hey Wilson could you post the algorithm question that you were asked?I am sure a lot of ranchers would be interested in knowing this and discussing about it.
 
Ranch Hand
Posts: 628
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There are two league of companies...
1.The first league consist of niche companies like [company list] etc...The interview pattern in these companies will test you primarily on computer science basics,data structures,algorithms,puzzles and operating systems...They wouldn't emphasis too much on j2ee technology..

2.The second league consist of rest of the other companies which would primarily test your strength in different technologies...

So do decide where you want to go to and prepare accordingly....


[Removed company names as per our policy listed here. --MH]
[ June 10, 2008: Message edited by: Mark Herschberg ]
 
Mark Herschberg
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mohammed Yousuff:
Ya sure, as mark said we are not saying any bad thing about the company and we are not comparing...



That is not what I said.

The policy is that we don't discuss companies, this includes opinions, good or bad, or information about them (because it becomes a very slippery slope to go from facts to opinions). If you say "I want to work for X" that's fine as long as people don't start debating the merrits of X.

I left this thread up after seeing the original post because I don't want to be a heavy handed moderator. That said after reviewing the policy I did have to modify a number of posts in this thread (which I really don't like to do).

Let me be clear, discussion about a company is not permitted. Saying "I want to work for X" is right up against the line (and clearly leads to issues) but in and of itself isn't a problem. Saying "I think X is great" is not allowed. A subtle but important difference.

--Mark
[ June 10, 2008: Message edited by: Mark Herschberg ]
 
Wilson Oak
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Nikhil Sun:
Hey Wilson could you post the algorithm question that you were asked?I am sure a lot of ranchers would be interested in knowing this and discussing about it.



Sure!

There are two lists of name. List A contains all Google's customer. List B contains Google's customer who get their refunds. The interviewer didn't say those list are sorted nor the name on the list is unique.

Now your task is to find a list of customer didn't get refunds. (Namely, you need to find a list with element [A]-[B]).

I was so nervous at that time and gave a stupid answer to them. After the interview, I figure it is so easy. Let's discuss the best solution here as I am not sure how my algorithm is.

PS: I have some other questions too.. Let's me post them all later.

[ June 10, 2008: Message edited by: Wilson Oak ]
[ June 10, 2008: Message edited by: Wilson Oak ]
 
Ranch Hand
Posts: 80
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
heres the answer :

public void getUsers(){

//Display List
Iterator it = listA.iterator();
Iterator it1 = listB.iterator();
//Works if both ArrayList has equal Size
/*while (it.hasNext() && it1.hasNext()) {
if(!it.next().equals(it1.next())){
listC.add(it.next());
}


}*/
//For ArrayList of different Size
while (it.hasNext()) {
s = (String) it.next();
if(!listB.contains(s))
listC.add(s);
}
System.out.println(" All Users : " + listA);
System.out.println(" Paid Users : " + listB);
System.out.println(" UnPaid Users : " + listC);
}


Assuming both ListA has ListB has values
 
Mark Herschberg
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Normally discussing what questions a company asks is prohibited (since it becomes a discussion of the company), but since I didn't quite catch it in time I'm letting it go this time. (But discussing interview questions in general is fine.)

--Mark
 
Mark Herschberg
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
My answer, btw....

How big are the lists? Where are they stored? Are they sorted or organized in any way? How frequently will this operation need to be done, just once or regularly? If more than once, how often will the lists change? What is the customer's/user's preference between time and space for trade-offs? How will the results be used?

I would then give an answer based on the responses to those questions.

--Mark
 
Mohammed Yousuff
Ranch Hand
Posts: 198
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
i apologies Mark for letting this thread which is against javaranch policy .
 
Mark Herschberg
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mohammed Yousuff:
i apologies Mark for letting this thread which is against javaranch policy .



This thread is not against JavaRanch policy as indicated earlier. Certain replies to it are. Most have been modified but I didn't get to one fast enough so I let it slide.

--Mark
 
Ranch Hand
Posts: 1374
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mark Herschberg:
My answer, btw....

How big are the lists? Where are they stored? Are they sorted or organized in any way? How frequently will this operation need to be done, just once or regularly? If more than once, how often will the lists change? What is the customer's/user's preference between time and space for trade-offs? How will the results be used?

I would then give an answer based on the responses to those questions.

--Mark



Who is the interviewer?
 
Wilson Oak
Greenhorn
Posts: 19
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Mark Herschberg:
My answer, btw....

How big are the lists? Where are they stored? Are they sorted or organized in any way? How frequently will this operation need to be done, just once or regularly? If more than once, how often will the lists change? What is the customer's/user's preference between time and space for trade-offs? How will the results be used?

I would then give an answer based on the responses to those questions.

--Mark





haha.. this really shows how bad my interview skill is. As I get the question, I would make my own assumption. This is really bad to a developer. Mark, could you tell me how your answer change against your questions post here? for example, how do you do this task if the operation is executed regularly instead of one time?
 
Ranch Hand
Posts: 376
Scala Monad
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If the files aren't that big and "time to market" is the most important thing, you just can fire up a unix shell and solve it with "sort" and "diff" commands
I started thinking on the constraints and trade offs (how big are the files, we have enough memory?, etc). Basically we need a set-like structure to test for existence... I though if I had enough memory maybe a big hash... but today it hit me: they're names i.e. words... what we need is an efficient dictionary representation... a trie probably would do it.
[ June 11, 2008: Message edited by: Gabriel Claramunt ]
 
arulk pillai
Author
Posts: 3473
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

How big are the lists? Where are they stored? Are they sorted or organized in any way? How frequently will this operation need to be done, just once or regularly? If more than once, how often will the lists change? What is the customer's/user's preference between time and space for trade-offs? How will the results be used?

I would then give an answer based on the responses to those questions



Spot on. Before arriving at a solution gather requirements. There are always trade-offs and design alternatives.
 
Mark Herschberg
Author
Posts: 6055
8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Wilson Oak:

haha.. this really shows how bad my interview skill is. As I get the question, I would make my own assumption. This is really bad to a developer. Mark, could you tell me how your answer change against your questions post here? for example, how do you do this task if the operation is executed regularly instead of one time?



Two questions I alluded two but should have asked explicitly: In what format do you need the output? Can we make any assumptions about the dataset?

If there are no duplicates and the output list doesn't need to be sorted, you could you a hash table (if the are duplicate names but not duplicate people you could use a special hash function that goes to secondary information) by simply putting all customers into the table and pulling out customers any time there is a hit from the rebate list. This would create the set in O(N) time (albeit unsorted).

As for the frequency, the question is how often do you need each of the three sets. If you regularly need the rebate and non-rebate list, I would just regularly maintain those two lists and every time I get a new customer, I put him into the appropriate list (which is sorted using some system using a relatively low cost insertion system, e.g. O(lg N)). If you regularly need the total list of all sorted customers then I would maintain a second list of all customers as well and potentially take a 2x memory hit for faster response time on all 3 lists.

--Mark
 
Vikas Kapoor
Ranch Hand
Posts: 1374
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by arulk pillai:
Spot on. Before arriving at a solution gather requirements. There are always trade-offs and design alternatives.


Agreed.But as it is an interview question , shouldn't one make some assumption? or while replying you state that i have considered blah blah scenario. Because the details that Mark has considered are too deep for an interview question.
 
Gabriel Claramunt
Ranch Hand
Posts: 376
Scala Monad
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Vishal Pandya:

Agreed.But as it is an interview question , shouldn't one make some assumption? or while replying you state that i have considered blah blah scenario. Because the details that Mark has considered are too deep for an interview question.


In my opinion, a software developer interview is not about getting answers, is about getting some insight into the thinking process of the person you're interviewing. I think is better to have deep questions than make the wrong assumptions.
 
author & internet detective
Posts: 41878
909
Eclipse IDE VI Editor Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Vishal Pandya:
Agreed.But as it is an interview question , shouldn't one make some assumption? or while replying you state that i have considered blah blah scenario. Because the details that Mark has considered are too deep for an interview question.


I learn more from what the candidate says than the answer. Asking questions shows a willingness to find out more in solving a problem. When someone asks questions about what they can assume, I'll usually pick something and tell them to use that. It's spur of the moment so I could decide anything based on the question. Sometimes, I'll let them pick the assumption to see which they find easier/most interesting.
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic