I'm a linux noob, that thought he knew something, got destroyed in an interview.
bsdpunk.blogspot.com
bsdpunk.blogspot.com
I've been there, and I had to stop myself. The fastest way to learn something is the hard way using the man pages, as looking up the same argument to a program over and over is going to get it stuck in your head much faster than anything else. At least for me, I will qualify the previous statement with that.
I too have written countless of scripts to do meaningless tasks, it is one of the reasons why I became a computer programmer, I'd rather spend 2 hours writing a script that works in all corner and edge cases and never have to do the same menial task again than spend the 30 minutes it would normally take to just finish the problem (knowing that it would most likely come up again, and it would once again take me 30 minutes ...).
The thing is that certain things should start to sink in even while using scripts. I have scripts to set up an entire FreeBSD system in under 30 minutes with custom software deployed, configured and running, but if it ever doesn't work right I know exactly how to fix it because I know all of the steps in that script.
--
It comes down to some rote memorisation and the rest becomes ingrained to the point that you can yell the commands across a cubicle to your colleague. I recently learned git inside and out, and now have no problem while standing next to a co-worker dictating exactly what they need to type to get it to do what needs to be done. I'm the same way with FreeBSD system administration (Linux not so much, but I can find my way around an Debian and Ubuntu box).
I started playing with Linux and FreeBSD when FreeBSD 4.6.2 was released (I ran an open email relay on my home cable box at age 13 (I am now 22), by mistake). Some of the things you have mentioned in your blog post are some of the simplest concepts of Linux.
"shutdown -r" on FreeBSD runs the rc.shutdown script{s}, whereas "reboot" does not.
See this thread:
http://lists.freebsd.org/pipermail/freebsd-stable/2010-Decem...
Today the fact is that we DO have Google and other tools at our fingertips. If it means that we have fewer definitions and facts committed to memory, so be it. It's not a bad thing to look up information on an as-needed basis. The information will be fresher and likely accompanied by recent developments. Even doctors do this when they're about to perform an operation they haven't done in a while.... they'll look up the procedure beforehand and refresh their memory to ensure that they follow the current standard of care.
Interview questions should focus on exposing problem-solving ability and getting to know the person to determine whether he/she is a good fit for your existing team.
I remember thinking as I was leaving "Well it was cool of them to buy me lunch, and the weather's nice." Later that evening my doubts in my interviewing prowess were confirmed :)
Still, awesome guys, hard problems, I encourage you to apply :) http://rethinkdb.com/jobs/
== Below was a supposedly reply of mine to the top commenter in Reddit, but keep getting an 504 error message ==
Not to disagree with you here since this seems to be the sentiment here, but the questions (ie. boot process/signals) he was asked was broad and would have shown if the candidate have a solid grasp of Linux fundamentals.
Hypothetical situation, say he applied for sysad job in big Linux shop like Google. Describing the boot process would have given the interviewer an idea how well he would recover from a system crashed using a rescue disk. Understanding signals are important for making non-trivial Bash scripts. And describing a symmetric/asymmetric encryption is crucial if one of you job responsibilities is to administer certificates.
Not saying the questions are easy, they're not. But if you're applying for something like a Linux sysadmin job, then these questions are good indicator how strong your skills are in this area.
I'm as arrogant as the worst of them, but this sounds borderline ridiculous.
That said, I'm looking forward to see how you're looking to change this.
As long as they have a basic understanding of how SSH, GnuPG, and SSL function and a thorough understanding of how to use them that's probably the extent of the cryptographic expertise required.
I think it's wise to avoid "grading" on specific technical questions about things that aren't actually required for the position.
That doesn't mean you shouldn't look for bonus knowledge, but I don't think it's good to be too specific about what it is.
Seriously in the back of my head I heard my Father's voice: "You done fucked up good, boy"
EDIT FOR FATHER QUOTE
Asymmetric encryption has two parts, a private key and a public key. One encrypts data with a public key and then the only key that can decrypt it is the private key. The private key, as the name suggests, has to stay private and is a secret, whereas your public key you can hand out as you please.
In symmetric encryption you have a single key, it is used to both encrypt and decrypt the data, and thus if that single key were to fall into the wrong hands that person could then decrypt the data, whereas with a public key that is not the case.
This is a very simplified overview of the differences.
And even in the post, there are more factual errors... Ctrl+D doesn't ask a program to quit. How can you use Linux for 10+ years and not know why kill -9 is "force" and what the difference is from normal kill?
My brain thought "hm, 1999, now it's 2011, so add 10 to the 1900's to get 2000's, then add 10 more to get 2010's => 20 years".
I always find it interesting to post-mortem my logical blunders.
But sadly, the point stands regardless.
If he understands how PKI works. If he understands that people share a public key which is in turn paired with a private key. And if he understands that said private key is the only key capable of decrypting messages that were encrypted using the public key, that should be fine.
If he knew that much, he'd probably be able to reason out what 'symmetric' vs 'asymmetric' meant, if given enough time.
Is knowing the exact terms better? Yes.
Is it shameful to understand the concept pretty well without knowing every bit of terminology used to describe it? I'd say no.
Humility my man, humility. Everyone's eaten humble pie before; if you don't eat it on a semi-regular basis you're not pushing yourself hard enough.
If you want to check it out