5 ms·
Do kids still learn C in college? It's been my experience that new grads are primarily taught in Java... That said, we do all our interviewing in the langage I
by MattRogish 14y ago
Do kids still learn C in college? It's been my experience that new grads are primarily taught in Java...
That said, we do all our interviewing in the langage I expect them to be developing in - namely Ruby, JavaScript, and/or SQL. Is that the norm or do people still interview candidates using, say C or Java, for Ruby/Python/JS positions?
I suppose if we were interviewing someone who didn't know Ruby but knew Java, we could fallback to that. But luckily we have plenty of people that know Ruby/JS that I've never had to do that...
Although you don't have pointer stuff, you can do really interesting things with Ruby and JS.
- jrockway 14y agoLearning programming languages is easy. I did all my Google interviews in Perl. Now I write all my code in Java. The skills transfer easily. I personally would prefer someone who is good at multiple programming languages. People that spend all their time in Java ignore subtle things about how computers work that C programmers are intimately aware of. People that never use scripting languages assume they are "toys" and waste many hours writing "production quality" throwaway applications. So it's good to have experience with everything, but experience can be obtained after hire too :)
- MattRogish 14y agoI'm not saying being a polyglot is bad - it's certainly very awesome and desirable; but if your interview process is all in C, you're gonna turn away folks that can't do it. That seems suboptimal to me, although if you're FogCreek I guess you get so many people applying you can make C literacy a requirement. I learned C++ back in, oh, 1996. I haven't coded in it much since about 2001. I'd fail virtually any C++ exam today unless I spent a lot of time relearning my C++.
- jrockway 14y agoI can't get to the original article, but I assume that this is documented there. Yes, I think it's silly to require proficiency in a certain language. Google does not have this requirement. You must know a programming language well enough to be an expert, but it doesn't have to be Java/C++/Python/Go. Also, FWIW, Google intern interviews and full-time interviews are completely different. Interns must interview like everyone else after their internship to be converted to full-time employees.
- tedunangst 14y agoI think it's very important to mention that C is not C++. Expecting people to know C, even if not used frequently, is not unreasonable imo. Testing people on C++ would be burdensome. Fog Creek has no C++ literacy requirement.
- MattRogish 14y agoGood catch; edited my original post, thanks!
- libria 14y agoI'd say Joel Spolsky is somewhat unique in this, although Google has had bias for C++ in the past [1]. Spolsky has long been an advocate for expecting developers to be competent in C [2]. [1] http://www.cforcoding.com/2010/07/my-google-interview.html http://www.cforcoding.com/2010/07/my-google-interview.html [2] http://scott.yang.id.au/2008/04/joel-spolsky-and-jeff-atwood-on-learning-c/ http://scott.yang.id.au/2008/04/joel-spolsky-and-jeff-atwood...
- archangel_one 14y agoFWIW, Google generally expect engineers to know bit manipulation. Certainly I was asked some, I don't know if everyone necessarily is but I wouldn't be surprised if they were.
- alasdair_young 14y agoI wasn't out and out asked, but it certainly came up when trying to optimize a solution. NOTE: if you are a Java developer, make sure you remember that bytes are signed! (I have no idea who thought that one was a good idea)
- yzhengyu 14y agoI can't remember it, but there was an interview where Gosling said it was for simplicity. And rather amusingly (and if I remember correctly...) the char data type in Java is not really the equivalent of char in the other C derivatives.
- tedunangst 14y agoJava char is c wchar. Java also has byte.
- tikhonj 14y agoThe language depends on the school. At my university, classes use Scheme, Prolog, JavaScript, C, C++, SQL, Java, MIPS, Ruby, Objective-C and way too much Python (it's the new Java :(). Basically, each professor uses whatever language they want--you're (reasonably) expected to pick up a new language in a weekend. I wouldn't be surprised if there were classes using other languages as well that I just haven't heard about. I really wish we'd have more ML/Haskell but they are only used in a couple of graduate courses as far as I can tell.
- ecspike 14y agoGraduated in '03, I did a mix of ASM, C++, Scheme, Fortran, Pascal but depending on the courses you picked, you could have stayed theoretical and only taken C++ and ASM.
- mzarate06 14y agoA handful of candidates I interviewed not long ago from nearby universities (Austin area) had Java backgrounds, although C++ still seems to be pretty common. We may include generic coding questions that can be answered in any language of the candidate's choosing, but we always try to include a couple in languages that the position targets.
- mbell 14y ago> But luckily we have plenty of people that know Ruby/JS that I've never had to do that... My take on hiring is that I don't care what languages the person knows. Being versed in what we're using is a plus, but not a strong plus. I'm far more interested in how the person thinks and tackles problems than I am that they are expert in "stack X". If you get the right people, picking up a stack/language isn't rocket science. In the same vein, googling for answers is fine. I'd rather a person to whom I can say "we need to do X", when they have no prior knowledge of "X", but yet can figure it out (well), and be the new company "expert" on X. I bring it back to the way my EE school operated. Tests never were about material we covered in class, they were always about applying that knowledge to a new problem that has its root issues in what we discussed in class, you'd have to apply what your learned in class to a completely new situation, often in multiple ways, to come up with a reasonable answer. The only problem is, that to make this work, you can't give out interview questions that are literally a google query away. You have to come up with open-ended or slightly obscure questions where they have to go google 5 different topics, combine the information, and come up with a reasonable answer.
- munificent 14y ago> Is that the norm or do people still interview candidates using, say C or Java, for Ruby/Python/JS positions? When I interviewed at Google, they let me pick the language. I did some C++, some Java, and C#. As long as both you and the interviewer can understand it, they don't care about the language. They want to maximize your comfort. When I got hired, I ended up doing JS full-time. Google assumes you can pick up a new language.