"Hi, I'm Sean Haufler, rising senior at Yale [...] Position: Software Engineer Intern [...] I didn’t have much experience manipulating individual bits"
Sometimes I want to cry for what the world has become. At least I can be content knowing I have job security. (To be fair: the ability to google the answer quickly and implement it is exactly the skill that kind of test is supposed to screen for. Still, three years at school and no bit math?)
Edit: several of the responses have interpreted this as my sniping at the author. I'm not (he got the question right, after all!). I'm depressed at the status of software engineering and computer science education, such that dealing with the in-memory representation of data is treated as an "obscure" skill that comes up only on job interviews.
I'm a rising junior at Yale, and I know Sean well and we both took systems programming together. We definitely covered bit manipulation and bit tricks, as well as number representation and lots of other stuff.
Sean's an incredibly bright guy but he's more interested in building world-changing apps and web dev. as opposed to low-level systems programming. There are other classes here where you have to code in assembly and do all sorts of bit manipulation (OS's comes to mind). The core CS sequence in our school is also in C, which differs notably from other places that use Python, Java, etc.
He said 'didn’t have much experience manipulating individual bits'. I think it might be worth giving him the benefit of the doubt that he's covered it in class but hasn't extensively worked with them.
Reading stuff like that generally makes me feel much less insecure about my college. It used to be that hearing that someone was from an ivy-league/ivy-league equivalent would make me think they were really, really smart. (narcissism warning) I've come to realize that on average I'm probably about as smart as people from more prestigious universities, if not smarter, despite being an MIT/Columbia/Princeton/Cornell reject and a CMU waitlist.
MIT is vastly different than Yale: it is a vocational school in the best sense of the world. Possibly slightly less so now that 6.001 isn't LISP-based, but I still can't imagine a MIT CS grad not understanding bits.
People coming out of a liberal arts college I tend to expect to know algorithms, state machines, possibly data structures, probably C++ and/or Python and have next-to-zero useful code-writing experience unless they got it elsewhere.
6.001 doesn't exist anymore. The new set of intro courses are completely different. It sounded like you thought 6.001 is now taught in some other language.
There's a lot of spread, as in all things. I did the Ivy League thing many (yikes, many!) years ago, and met plenty of genius types and a handful of dunces. And in programming, the divide between people who can learn the subject well enough to pass the course and those who can Get Things Done is very pronounced even at top schools.
I doubt it's that bad. It might be that he hadn't done any bit hacking in C in a while. If you haven't coded in matlab for a long time and I asked you (during an interview!) to do random bit hacking, you might feel stumped too. You'd probably want to play around with it for a minute and re-figure it out, but you've got an interview waiting for you to produce an answer right away.
Sometimes I want to cry for what the world has become. At least I can be content knowing I have job security. (To be fair: the ability to google the answer quickly and implement it is exactly the skill that kind of test is supposed to screen for. Still, three years at school and no bit math?)
Edit: several of the responses have interpreted this as my sniping at the author. I'm not (he got the question right, after all!). I'm depressed at the status of software engineering and computer science education, such that dealing with the in-memory representation of data is treated as an "obscure" skill that comes up only on job interviews.