views:

1624

answers:

11

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.

+36  A: 

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.

phoebus
Agreed. 3D graphics programming *is* linear algebra, more or less.
Paul Nathan
+3  A: 

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.

Pascal Cuoq
+6  A: 

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;-).

Alex Martelli
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
@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
+8  A: 

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?

DigitalRoss
*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
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
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
+4  A: 

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.

James Black
Huh? The OP was talking about the _lack_ of C++ questions in the interview.
Troubadour
Sorry, I had a typo, it should have been math questions.
James Black
+6  A: 

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.

A: 

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).

Paxinum
A: 

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.

jasbir L
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
I chose this as the answer to my question not because he is saying what I want to hear, but because he's confirming what I've already decided/thought.The highest voted answer here might make sense when you're talking about a company that knows what they want. However, they falsely advertised the job. They essentially lied about job requirements. The text based description of the job in question was written in such a way that made it sound both math AND code-heavy (i.e. design patterns).Not every company knows how to give a great interview nor properly describe what they want.
Bob
+2  A: 
  • 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.

Paul Nathan
A: 

It's possible that they just threw hard math questions at you in order to contrive an excuse for not hiring you, when in reality they're not going to hire you because they didn't like the color of your shoes.

Or to put it another way: Different companies have many different standards for hiring, some of which may be nonsensical, while others may only look nonsensical to the outsider. They're hiring, so they can pick what they want. Their standards aren't necessarily fair, but they're the ones paying the money, so they don't have to be fair. (Of course they can't discriminate by race, sex, religion, etc.; but they can discriminate by shoe color if for some reason they want to.)

I recognize the frustration. Where I live, there's one company ("Company XYZ") that won't even interview me as a C# developer because a few years ago I was a VB .NET developer. But on the other hand, if I ever start my own company, I could refuse to hire anyone who ever worked for Company XYZ in the past, just to get even. There's no law against that.

Now if you bomb nearly every interview you go on, then you should try to learn why. But if you bomb just one interview, chalk it up to that company's quirks, or a bad day on your or their part, and move on.

Kyralessa
+1  A: 

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.

Neil N