| "I used MySQL for years, long ago, and never wrote a join." Scary! I wonder about your definition of "used", if you used an RDBMS in a non trivial app "for years" and never wrote a join! The database design must be very ... unusual :-). And this was in the days before ORMs :-D. " Then ORMs came along and handle joins automatically, so I've still never written one. " I've never yet seen a non trivial RDBMS based app where the existence of an ORM absolved developers from having a good grasp of SQL when they needed to drop below the abstraction layer provided by the ORM. "So not being able to do it without looking it up doesn't really tell you anything." It does, really! ;-). "PG, RTM, and TLB would probably fail your test -- they don't use SQL, they use flat files." The interesting thing about this statement is that it shows one way out of potentially being asked to code on a whiteboard/over the phone. If you have a PhD' from MIT and/or have a strong track record of writing Open Source software, creating and selling a startup, build robots (and electric unicylces ) for fun etc, in other words, if you can show , well before the interview, that you are as good or better than the job demands, you are very unlikely to face the "find the longest subsequence in a string" or "write a join" type questions. But then if you could do all that why would you look for a job? In my case, after writing some open source software, (and posting an url as the first thing in my cv) I've found that these kind of elementary questiong simply drop away. When a few thousand people use your code everyday, people know you are good. The OP's post is about when all you have is a cv that looks like the last 100 cvs you reviewed, and people who can't answer simple questions about how to write a join (hence his depression). |
Wow.
Note to self: start asking candidates to write SQL in interviews.
It had just never occurred to me that people who spend their entire lives talking to databases wouldn't know how to talk to them directly.
And really, you can get pretty much any piece of information out of a database using just four keywords. It's the least memorization of any language in history. SELECT, FROM, WHERE, and for extra credit, LIKE. That's it. That'll get you any non-aggregate dataset you could want, joined or otherwise.
Learn IN and GROUP BY and you've got everything else you'll ever need for reporting. It's just the simplest language ever.