|
On March 13 2013 17:07 fight_or_flight wrote: I've heard bad things about working for microsoft. They expect many hours, weekend work, etc. It depends on the group though. Everyone is competitively ranked with their peers. So there's this situation were you've got a lot of really smart people trying to figure out how to make themselves look good and others look bad.
Just what I've heard.
I don't expect Microsoft has long hours anymore than any other major tech company. It may happen sometimes when you are near a deadline, but I think that's normal around deadline/crunch time. College students in general are use to crunch time to finish up projects in the last minute or exams (granted there may be some people who actually don't procrastinate and therefore don't have a crunch time near the end of the quarter).
To the interviewee: It sounds like you just got unlucky because of circumstances out of your control if they had quota on the number of people they could bring on as interns. Sometimes things don't work out no matter how hard you try, I would just take it as a practice for future interviews, figure out if you could have improved anything and move on.
|
On March 13 2013 17:40 spinesheath wrote:All the nontrivial stuff in C++ is done using template metaprogramming, how is that even a question? Without having looked deeply into your documentation, it sounds like you have to register metadata about all your classes manually. So it won't work with classes that you didn't develop yourself, and obviously also has the issue of having to maintain 2 pieces of code when you want to modify a class? Doesn't seem like it would be easily avoidable, but still it's not exactly most convenient. I guess the only option to avoid redundant information would be to think of a method to have the reflection system produce the class itself while at the same time reading the metadata from a class metaspecification... or something like that. That's a lot of meta though. In any case; the world doesn't always make sense. In fact it rarely does. Just try again. Yeah can register metadata for types you don't have source code to I was very careful to allow this. I also know how to reflect private members (but haven't yet) for types you don't have source access to.
The only way to avoid the redundancy is to use a custom preprocessor, or like you said have the meta generate the class -which I've done in C: https://github.com/RandyGaul/Serialization_C
|
Bisutopia19139 Posts
At least your exam questions were pretty easy. Imagine taking programming questions that have an a choice of 5 possible answers and at any time 1 to 3 of them may be a correct reply. Each time you answer correct the questions will get harder. That straight up messed with my head. Or at cryptic studios where it is a single question but the allotted time to answer it is anything between 4 hrs and 24 hrs.
As far as your interviewer goes, it does suck getting one that disagrees with you but that's always going to be the battle in the programming world. Just keep applying else where and get a good job. Microsoft miss on a good opportunity with you I'm sure but it doesn't mean there aren't better places to work .
|
Welcome to the real world. Any promess not written is as good as nothing. If they tell you something that you thing is interesting, as for it in a written form. "You can get access to the interview notes" -> "Please mail me the instructions how to do so" And this is awkward to ask..
Anyway, some rookie mistakes you made during the interview. Showing lack of flexibility, "I am right, I did the only acceptable solution, I know everything, every possible solution". If I interview someone, I just give negative points for team work in my head. Interns come to learn from more experienced colleagues. It's all about the attitude, "I'm not being interviewed by a programmer, but by a manager"... What did you expect? A manager screens you if you'll do fine with his team (even if you'd end up somewhere else).
No I don't even know why you want to get in Microsoft, there are far greater opportunities out there and definitely starting out in a heavy corporate company won't develop you in the right way to have a successful carrier.
Was there discussion about salaries? How much would you want to get from an internship? What are the skills you'd want to develop?
Failing an interview is really not the end of the world. Job interviews are a separate skill and it is a lot like seduction, you are not there to argue.
You need to have more experience in this situation, stop thinking it as a school test where you have question and the only thing that matter is that you get them right or wrong...
Of course I'm judging you now based on your frustration blog post afterward and can't really know how you were in the situation. If you want, I can have you a fake job interview for my company over Skype and give you feedback if you think it can help you. (I'm doing around 30-40 intern interview each year)
|
I practically live at Samurai Noodle sometimes, love that place so much,
|
Estonia4644 Posts
ahhh I know what the problem was
you can't spell "equivalent" in the code comments thats probably what tipped the scales
:D Head up high, the "quite excellent" scale is bound to be successful
|
On March 14 2013 02:00 fusefuse wrote: ahhh I know what the problem was
you can't spell "equivalent" in the code comments thats probably what tipped the scales He probably should have started a page-long rant in the comments about the ASCII specification which allows this code to work as intended. Especially why it was so clever to put all the numbers in one place and in ascending order, as opposed to the more intuitive way of scattering them randomly.
|
I think a general rule of thumb for interviews is that unless you really rocked the interview don't expect an offer. There are always a few other amazing people out there who are interviewing with you, and there is always bias based on the interviewer. You will do better next time
|
Take the interview as a learning experience. And don't let digipen go to your head; it's the students that made digipen's reputation, not the other way round. And at least from this posted interview, I didn't really feel that any 'wow' factor coming from you, but maybe its because I've known reflection systems for some time. Go read up more comp sci stuff, throw in more non brute-force methods as answers (the interviewer probably heard of a dozen brute force algorithms for some time). Interviews are for impressing.
|
I can't comment on the C++ questions because it's not really my thing. I can comment on the algorithmic question though : why don't you just quicksort the thing ?
|
On March 14 2013 04:14 ddengster wrote: Take the interview as a learning experience. And don't let digipen go to your head; it's the students that made digipen's reputation, not the other way round. And at least from this posted interview, I didn't really feel that any 'wow' factor coming from you, but maybe its because I've known reflection systems for some time. Go read up more comp sci stuff, throw in more non brute-force methods as answers (the interviewer probably heard of a dozen brute force algorithms for some time). Interviews are for impressing. Thank you for the advice
|
There is this one quote from bill gates(i am paraphrasing):"whenever there is a really hard, tedious job, I give that to the most lazy employee, because I know he will find a workaround". I do not bother to question your skills as a programmer, I do question that you are the best. Because you only need a handful of really great programmers, and there are a lot out there competing with you. I have the theory that they are looking for the other handful of people you need, the weird people in these interviews, because in an internship they also can test new people without having to commit much on their behalf and find the laziest people. I think a well trained code monkey can always be hired when he is readily produced in the mind factory, so if you really wanna go to microsoft, try again when you are finished. They probably want someone who thinks about quitting his studies, a misfit, so they can leech from his creative vein, while paying him less and making it harder for him to go to another company.
|
Microsoft want a misfit? ROFL
I don't think it's anything within OP's control. There are probably internal forces at work here, maybe the PM who interviewed wanted some one with this this and this skillset, you didn't tick the box. Maybe he doesn't like your hairstyle, maybe he just cbfed take on another intern this year.... there are sooo many things that happen behind the scene in a big company that can screw you over.
To people telling Op to review his attitude, are you for real? OP can't change who he is, how he thinks, how he works, interview is a two way street, you are interviewing the employer the same way they are interviewing you, do not bend over, especially since OP have other options.
|
It definitely sounds like you had an unlucky interview.
From your description of the interview, though, it seems like you're definitely a highly competent programmer so I wouldn't let this interview get to you. You should try to apply to some other big name software companies. I'm sure at least one of those interviews if not all, will go well for you.
I agree with you that the interview process is far from perfect. I had an on-site interview with Amazon where I was asked fairly difficult coding questions but some of my friends were asked to interview on our school campus and they had much easier questions. I do believe, however, that if you're a good programmer, you'll land an internship or job at one of the big software companies if you try. It's kinda like how some kids get into MIT but are rejected from Carnegie Mellon or something.
Don't give up! Keep trying!
|
On March 13 2013 15:04 CecilSunkure wrote: I: So next question. You have an array of 17 integers, and each slot's value is it's indexed position. However one index is a duplicate. How do you find what the duplicate is? Me: N^2 search with a boolean. A faster way would be to add each index's value up and subtract from the expected sum. I: Okay good. What would you do if the array was very large and overflow would occur? Me: Integer overflow? I: Yes. Me: Can I use an external data structure? I: Sure. Me: I could use an external data structure to handle insertions and respond when a duplicate entry is found, such as a modified version of a hash table. Me: Another solution would be to use multiple integers to emulate a larger data range. In CS 100 we had to add two 16 bit integers with 8 bit values, and I could do the same thing here. I: We're out of time! Hey with this one can you clarify what the problem is? Is it something along the lines of:
[0][1][2][3][4][5][6][7][8][3][10][11][12][13][14][15][16]
Where 3 is duplicated, or are the numbers allowed to be larger than the array length?
|
That's unfortunate the interview didn't work out. I've got a couple of points:
I was a MSFT intern last summer and will be again this summer, and I got my position when i did the first round in September, followed by a second round in December. So maybe next year try interviewing earlier as they have have more spots available then. Along the same lines as this: I know a lot of people who didn't get through the interview process last year, but then they interviewed again this year and got internships.
2nd: sometimes you and your interviewer unfortunately just don't click as well. I know for me I did a ton of interviews this year for other coop positions and sometimes I'd click with the interviewer and the rest would be easy, and sometimes I wouldn't and it would just make everything about the interview a little harder / more complicated.
From all your game dev posts here I certainly think you've got the technical chops and you're on the right track so if you keep doing what you've been doing you'll have more than enough offers.
|
On March 14 2013 19:49 fonger wrote:Show nested quote +On March 13 2013 15:04 CecilSunkure wrote: I: So next question. You have an array of 17 integers, and each slot's value is it's indexed position. However one index is a duplicate. How do you find what the duplicate is? Me: N^2 search with a boolean. A faster way would be to add each index's value up and subtract from the expected sum. I: Okay good. What would you do if the array was very large and overflow would occur? Me: Integer overflow? I: Yes. Me: Can I use an external data structure? I: Sure. Me: I could use an external data structure to handle insertions and respond when a duplicate entry is found, such as a modified version of a hash table. Me: Another solution would be to use multiple integers to emulate a larger data range. In CS 100 we had to add two 16 bit integers with 8 bit values, and I could do the same thing here. I: We're out of time! Hey with this one can you clarify what the problem is? Is it something along the lines of: [0][1][2][3][4][5][6][7][8][3][10][11][12][13][14][15][16] Where 3 is duplicated, or are the numbers allowed to be larger than the array length? Actually I've been wondering about this too. I would imagine an array like your example. In which case a binary search doesn't seem to accomplish anything since you have no way to decide in which half the odd value is.
I would imagine the interviewee is supposed to say "iterate over the array and check a[i] == i". Then the interviewer asks about the overflow, and the answer is supposed to be "check if a[0] == 0, then check whether a[i+1] - a[i] == 1 holds true". Or something like that, I haven't actually thought it through for the overflow, I just have a hunch that it would work :p
|
You go to UW Me too!
|
On March 13 2013 22:08 0x64 wrote: Welcome to the real world. Any promess not written is as good as nothing. If they tell you something that you thing is interesting, as for it in a written form. "You can get access to the interview notes" -> "Please mail me the instructions how to do so" And this is awkward to ask..
Anyway, some rookie mistakes you made during the interview. Showing lack of flexibility, "I am right, I did the only acceptable solution, I know everything, every possible solution". If I interview someone, I just give negative points for team work in my head. Interns come to learn from more experienced colleagues. It's all about the attitude, "I'm not being interviewed by a programmer, but by a manager"... What did you expect? A manager screens you if you'll do fine with his team (even if you'd end up somewhere else).
No I don't even know why you want to get in Microsoft, there are far greater opportunities out there and definitely starting out in a heavy corporate company won't develop you in the right way to have a successful carrier.
Was there discussion about salaries? How much would you want to get from an internship? What are the skills you'd want to develop?
Failing an interview is really not the end of the world. Job interviews are a separate skill and it is a lot like seduction, you are not there to argue.
You need to have more experience in this situation, stop thinking it as a school test where you have question and the only thing that matter is that you get them right or wrong...
Of course I'm judging you now based on your frustration blog post afterward and can't really know how you were in the situation. If you want, I can have you a fake job interview for my company over Skype and give you feedback if you think it can help you. (I'm doing around 30-40 intern interview each year)
this is a fantastic response. the biggest problem with software people is that they have a more difficult time seeing the bigger picture a lot of the time.
|
On March 14 2013 23:32 spinesheath wrote:Show nested quote +On March 14 2013 19:49 fonger wrote:On March 13 2013 15:04 CecilSunkure wrote: I: So next question. You have an array of 17 integers, and each slot's value is it's indexed position. However one index is a duplicate. How do you find what the duplicate is? Me: N^2 search with a boolean. A faster way would be to add each index's value up and subtract from the expected sum. I: Okay good. What would you do if the array was very large and overflow would occur? Me: Integer overflow? I: Yes. Me: Can I use an external data structure? I: Sure. Me: I could use an external data structure to handle insertions and respond when a duplicate entry is found, such as a modified version of a hash table. Me: Another solution would be to use multiple integers to emulate a larger data range. In CS 100 we had to add two 16 bit integers with 8 bit values, and I could do the same thing here. I: We're out of time! Hey with this one can you clarify what the problem is? Is it something along the lines of: [0][1][2][3][4][5][6][7][8][3][10][11][12][13][14][15][16] Where 3 is duplicated, or are the numbers allowed to be larger than the array length? Actually I've been wondering about this too. I would imagine an array like your example. In which case a binary search doesn't seem to accomplish anything since you have no way to decide in which half the odd value is. I would imagine the interviewee is supposed to say "iterate over the array and check a[i] == i". Then the interviewer asks about the overflow, and the answer is supposed to be "check if a[0] == 0, then check whether a[i+1] - a[i] == 1 holds true". Or something like that, I haven't actually thought it through for the overflow, I just have a hunch that it would work :p
Yeah, based on how he worded the question, I think a[i] = i (except for the duplicate), so just one pass is needed (O(n))?
|
|
|
|