Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

So I went to an interview at Samsung here in Dallas, Texas. The way the recruiter described the job, he didn't make it sound like it was too math-oriented. The job basically involved graphics programming and C++. Yes, math is implied in graphics programming, especially shaders, but I still wasn't expecting this...

The whole interview lasted about an hour and a half and they asked me nothing but math-related questions. They didn't ask me a single programming question, which I found odd. About all they did was ask me how to write certain math routines as a C++ function, but that's about it. What about programming philosophy questions? Design patterns? Code-correctness? Constness? Exception safety? Thread safety? There are a zillion topics that they could have covered. But they didn't.

The main concern I have is that they didn't ask any programming questions. This basically implies to me that any programmer who is good at math can get a job here, but they might put out terrible code.

Of course, I think I bombed the interview because I haven't used any sort of linear algebra in about a year and I forget math easily if I haven't used it in practice for a while. Are any of my other fellow programmers out there this way? I'm a game programmer too, so this seems especially odd. The more I learn, the more old knowledge that gets "popped" out of my "stack" (memory).

My question is: Does this interview seem suspicious? Is this a typical interview that large corporations have? During the interview they told me that Google's interview process is similar. They have multiple, consecutive interviews where the math problems get more advanced.

share|improve this question
5  
Jeff has ruled explicitly that career development questions are in. This one (and your other example) may be Too Localized, however. –  dmckee Sep 27 '09 at 0:52
9  
How is writing certain Math routines as a C++ function, not programming? Seriously. –  JB King Sep 27 '09 at 1:18
3  
The highest-voted answer seems much better than the accepted one - you should seriously consider changing it. –  rwmnau Dec 24 '09 at 7:52
4  
Shouldn't you describe your memory as a queue since it's FIFO? ;) –  Eric Jan 25 '10 at 21:08
11  
I can't let this stand. "The more I learn, the more old knowledge gets popped out of my stack"?? That isn't how stacks work! –  meagar Jun 1 '11 at 17:39
show 1 more comment

migrated from stackoverflow.com Jun 28 '11 at 0:13

This question came from our site for professional and enthusiast programmers.

13 Answers

If you want to do real graphics programming you better know your linear algebra.

The fact is that it's easier to teach someone a coding philosophy on the job than it is to teach them the math concepts they should have learned in college.

In addition, it's quite possible they may have asked more "coding questions" if you had managed to do the math ones first.

It sounds like this job just isn't a fit for you. Don't take it personally. They know better than you who is an ideal candidate for their company. If this is the kind of job you really want to do, well, then now you know what areas to brush up on.

share|improve this answer
13  
Agreed. 3D graphics programming is linear algebra, more or less. –  Paul Nathan Oct 9 '09 at 4:06
add comment

Interviews are notoriously weak predictors of job performance. One study in the UK apparently found interviews weaker than random selection. I've noticed that they mainly select for the interviewer's perspective. Perhaps this was a proxy for an intelligence test, perhaps the department manager has a math degree. I wonder how this criteria is working out for them?

I think the only predictor of programming success is a programming test. I wonder how common that is in today's interview practices?

share|improve this answer
1  
My candidate interviews are programming tests. Maybe the study you're referring to was about interviews for non-programming jobs? That I could believe. –  MusiGenesis Sep 27 '09 at 3:48
1  
I imagine it was non-programming, and I have no idea what the quality of the study was. The citation I have for it says Financial Times Carreer Guide 1989 for the U.K. –  DigitalRoss Sep 27 '09 at 4:04
    
This I more or less what I was going to say. Perhaps the interviewer was frustrated because he had a math problem that kicked his butt and he was taking it out on the interviewees. An interview should never spend 100% of the time in one area. If you were able to show a reasonable ability to at least find the path to the right answer, that should be enough. –  mwilcox Sep 27 '09 at 12:25
add comment

My guess is that in fact the job was heavily mathematically oriented: they looked at your resume and decided that they were less sure about your mathematics ability than your software ability.

Almost certainly the recruiter didn't really know exactly what the job truly involved.

"This basically implies to me that any programmer who is good at math can get a job here, but they might put out terrible code."

Not necessarily.

If, e.g. you had been a graduate student in numerical linear algebra, they may have probed your understanding of software practices first.

Personally, one of my pet peeves is perfect "computer sciency" code & design for a mathematically oriented problem which nevertheless is just plain wrong.

Often the abstractions and degrees of freedom produced by a well-meaning, but ignorant, programmer are irrelevant or only mildly interesting for the problem domain, and the core "units of replacability" or flexibility are fundamentally different from what was designed in. Fixing this takes a 100% re-write.

This is often a "worse is better" scenario: in numerical computation, there are often many interactions and special cases such that a specific instance of conceivably generic parameters yields a far more effective and powerful algorithm.

I'd take an insightful algorithm in Fortran IV over perfect exceptions and const correctness, e.g.

In sum, it's possible that for the job in question the interview questions were not foolish.

share|improve this answer
add comment

An onsite interview that lasts just 90 minutes does seem suspicious -- at Google you'd typically be spending the whole day (with breaks, lunch, etc) getting at least three times more interview-time; that gives the space to ask both math questions and programming ones (also architecture, design, networking, etc).

I don't see it as suspicious for interviews to probe for basic skills (and math's definitely a part of that) if what they're looking for is not necessarily someone who can be productive from day one in a very specific task, but rather someone who can develop a long career in the company switching from task to task over the years.

In that context, specific of technology or methodology approaches can be learned more easily than basic stuff like college algebra, statistics, probability, algorithms and data structures, problem solving, clarity of communication (including asking questions and listening;-), etc.

Sure, if you claim in your resume "superb mastery of C++", you'd expect a few probes into your claim -- lying or exaggerating in your resume's a capital sin as far as we're concerned -- but that's mostly a check on your veracity (hey, back when I interviewed here, I claimed "economics" among "other interests" in my resume... and found myself having to solve a Nash equilibrium in a non-zero sum multi-player game for the first time in my life -- not something I've had to do again in my many years here, but I know other developers who do in fact work with such problems day in, day out;-).

share|improve this answer
4  
Day-long interviews have one flaw; they tend to act as a filter eliminating developers who are currently employed. If you can live with that restriction (say, for hiring straight out of school or due to volume of qualified applicants), they work well; but don't immediately knock a company where shorter interviews are standard. –  Richard Dunlap Sep 29 '09 at 16:41
4  
@Richard, many of our day-long interviews are with people who are currently employed: it is, after all, quite normal for employees to be able to take a day's vacation, no? –  Alex Martelli Sep 29 '09 at 20:46
add comment

They chose the best questions that they thought would make the ideal candidate stand out. Assume that they know what they are doing. Don't be angry if you disliked the questions, take it as meaning that you wouldn't have liked to work there anyway.

Don't take it personally, you may want to work in the same or another department at the same company another time, or have contacts with them at the place you'll be.

share|improve this answer
add comment

If you list that you are a game programmer then you should be prepared for math questions. If you don't feel comfortable answering those then you may need to change your resume.

Anything you list on your resume will be fair game for questions, whether it has anything to do with the job, it may be that they are interested in knowing how honest you were, or you have something on there that they don't know about, and actually want to know more about. Basically, if you don't feel comfy talking about something remove it from your resume.

share|improve this answer
    
Huh? The OP was talking about the lack of C++ questions in the interview. –  Troubadour Sep 27 '09 at 1:40
    
Sorry, I had a typo, it should have been math questions. –  James Black Sep 27 '09 at 2:26
add comment
  • Programming industry languages is easy compared to working serious math.

  • If you aren't comfortable talking linear algebra, don't apply for a graphics job. Hit up any basic 3d graphics tutorial worth its salt and you'll be looking at matrices. More advanced ones involve knowing something about calculus(for curves). You might even be asked about quaternions(one of my favorite structures when I was studying graphics), and those really take some knowledge to grok.

share|improve this answer
add comment

Don't try to make your own conclusions about the position or the company based on what they ask you. They are using those questions to make conclusions ABOUT YOU.

Instead, make conclusions based on WHAT YOU ASK THEM.

There's no law that says you cant ask questions about the company during an interview. Most people actually recommend you ask lots of questions.

Perhaps you could have just said "Hey, whats with all the math questions?" And they probably would have told you why.

share|improve this answer
add comment

The fact that you got asked a mathematics question is just part of the interviewing game - interviews are never going to go the way that you think they will or the way you want them to.

The best you can do is just be prepared for anything they throw at you, and preparation really is the key to landing the job you want!

Here's a site to help you out with that: Programming Interview Questions

share|improve this answer
add comment

I think these guys just wasted your and their time. They should advertise for a person with graduate Math degree with minor, or undergraduate degree in Computer Science, or perhaps some programing experience in projects instead of CS degree.

From what I know, Google interviews are rather quizzes to assess creative, logical/ algorithmatic thinking while under pressure. And these quizzes are rooted in theoretical Computer Science concepts.

So, these guys that you interviewed with got somewhat miscarried thinking they are also "google-iets" by making the interview of a subject that is obviously not shown in your resume as a forte; nor, did they bothered to clarify that in a phone interview.

Absolutely inconsiderate of them. It is just better that you are not working with pseudo-analitical type personalities.

share|improve this answer
26  
Amusing that the OP got a slew of answers from intelligent, thoughtful, experienced people, then accepted the one that told him what he wanted to hear. –  phoebus Oct 11 '09 at 8:40
add comment

I had an interview at Amazon that was just like that. No technology questions, just problem solving and algorithm design. That's what you ask if you want to hire someone who can solve problems. I can teach strong problem solvers to program acceptably. Teaching problem-solving is much harder.

share|improve this answer
add comment

Great answers before me, but I wanted to add something very basic. Programming is first and foremost about problem solving! The language is secondary.

share|improve this answer
add comment

Programming is quite easy to learn, have you learned one language (or two) you can quite easily adopt to all the other.

But mathematics is a different story, it is very hard to learn math if you are over 30 (i am teaching math at university level). and most of the groundbreaking mathematics are discovered by people below 40.

Programming doesn't require as much out of the box thinking in a normal workplace, (web programming is just messy, but does not give rise to problems that can take days to crack).

share|improve this answer
3  
It's much more easier to learn math when you are older this "it is very hard to learn math if you are over 30" statement is completely incorrect, well at least for me. –  Victor Jun 8 '12 at 23:30
    
Victor: Well, some people have no trouble learning math at a higher age, however, such people are rare. Without a genuine interest, I'd say for most people, learning higher math (linear algebra, group theory, etc), is almost impossible. –  Paxinum Jun 11 '12 at 14:19
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.