In the words of Bender, “…another pointless day where I accomplish nothing.” It’s feeling a little that way. Last night’s brownout knocked computers offline, and this morning BT severed a cable, depriving us of phones and internet access. It’s an hour and a half into the day already and I’ve got nothing done so far.
The worst bit is, having been told that the phones were down already: when I discovered that the outbound fibre optic link was down, I picked up the phone to call the facilities manager. Whoops! In an age when everything is connected and digitial, it’s easy to forget that things don’t always work as they should.
Add to this the fact that I’ll be leaving early today, and you’ve got a recipe for underproductivity. Which is a word, now, thank you very much. I’m off this evening to Gregynog, a University of Wales conference centre, as a guest interviewer, to give mock interviews to second-year Computer Science students. These interviews are supposed to be reflective of those given in the industry, in order to better prepare them for ‘real’ interviews and give them feedback… so I’ve been devising a list of some of the nastiest Comp. Sci.-centric interview questions ever devised. Here’s some of my favourites:
- How would you explain a database to a 10-year-old child?
- When choosing between programming languages with which to implement a specific project, what are the most important factors and why?
- Pseudocode me an algorithm to detect whether two rectangles (with known top, left, bottom and right) overlap one another.
- What is bytecode? Can it be reverse-engineered?
- What is the sum of all numbers from 1 to 1000?
- Do you make mistakes? Tell me about one of them.
- Are you smart? Why do you think that?
I can’t write too many of the really nice fun ones here, because (a) there’s at least one person I’ll be interviewing who I know reads my weblog and (b) I’ve got some questions which depend on demonstratable code samples, which I can’t be arsed to upload anywhere.
Anyway; things look like they’re all booted up now, so I’d better get on with some work.
How would you explain a database to a 10-year-old child?
You put information in, and information comes out. You can choose which bits you want, but you don’t have to worry about how it’s stored inside as it takes care of it all for you.
When choosing between programming languages with which to implement a specific project, what are the most important factors and why?
Readability, because you might not be the person who develops it later, modularity so you don’t have to rewrite it from scratch every time you want to change something, and level of abstractness. You wouldn’t write a web-based mark-up language in Assembly, nor would you write a boot-loader in Java
Pseudocode me an algorithm to detect whether two rectangles (with known top, left, bottom and right) overlap one another.
I’m not going to write the whole thing here, but you check all four boundaries against all other four boundaries. To be more efficient, break out as soon as you find an overlap as there’s no point in checking the rest (Okay, there is, but you weren’t specific enough to need it)
What is bytecode? Can it be reverse-engineered?
A sick and wrong attempt at assembly, and it can be, but I don’t want to do it.
What is the sum of all numbers from 1 to 1000?
Ask Gauss. Seriously, it’s 500x(1001)
Do you make mistakes? Tell me about one of them.
Doing this when I should have gone home half an hour ago. You gimp.
Are you smart? Why do you think that?
No, and people who do need pulling down off their pedestal. Everything’s subjective when it comes to intelligence.