 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Heh. I don't even go that far.
Yeh the written test (which they do unsupervised) is meant to test the basic
Engineer (and maths) fundamentals. In the mechanics test we throw in a few
easy electronics questions and vice versa.
> I just have a bunch of questions like "why do they call it raytracing" and
> "what's the difference between a deterministic and a non-deterministic
> state machine" and "what causes a SIG_SEGV" and "what's the difference
> between an inner join and an outer join" and "what's an advantage of UTF-8
> over other encoding schemes" and "what does a translation look-aside
> buffer translate".
We have ones like "draw a diagram to show how an injection molding machine
works" :-) It's surprising how few people get taught this at university (I
certainly wasn't), yet most people at least have a rough idea what's going
on.
> If you can't get at least a handful of such questions right from outside
> the field you're applying for, I know you're inexperienced, unschooled, or
> uninterested/incapable of expanding your responsibilities.
We have a separate section of the interview where we give them an LCD and
tell them to take it apart and talk through what they think each bit does,
why it's like that, etc. It's a good one because virtually nobody has ever
done this before so it puts everyone on an equal level, and there are plenty
of mechanical and electrical things to talk about.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> We have a separate section of the interview where we give them an LCD
> and tell them to take it apart and talk through what they think each bit
> does, why it's like that, etc. It's a good one because virtually nobody
> has ever done this before so it puts everyone on an equal level, and
> there are plenty of mechanical and electrical things to talk about.
And here I was thinking that all the components are microscopic...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> Heh. I don't even go that far. I just have a bunch of questions like
> "why do they call it raytracing" and "what's the difference between a
> deterministic and a non-deterministic state machine" and "what causes a
> SIG_SEGV" and "what's the difference between an inner join and an outer
> join" and "what's an advantage of UTF-8 over other encoding schemes" and
> "what does a translation look-aside buffer translate".
>
> If you can't get at least a handful of such questions right from outside
> the field you're applying for, I know you're inexperienced, unschooled,
> or uninterested/incapable of expanding your responsibilities.
...OK, how many other people here felt an irresistablel urge to try to
answer all of those?
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> I will admit to having done some absurd things like that in introduction
>> to programming classes. Not for having forgotten how to solve the
>> problem, but for the challenge of finding a very bad design and the look
>> on teaching assistants faces when they have to read the code and offer
>> feedback.
>
> That's cold. I had a friend who used the entire McDonalds value menu for
> variable names. Or I think I brought this up before, but I knew someone
> learning c who programmed a sudoku solver and stored the whole thing in binary,
> only the binary numbers were in decimal (e.g. 110110010.999999). It involved a
> lot of logarithms and powers of ten.
Amatures.
Real coders define a continuation monad who's operators are all ASCII
art, and generate spaghetti code using an epimorphism over endofunctors.
Deobfuscate THAT! O_O
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible schrieb:
> ...OK, how many other people here felt an irresistablel urge to try to
> answer all of those?
I'd be having trouble with the translation look-aside buffer right now.
I have a feeling that it's about cache memory, or command execution
queue, but that's about how far I spontaneously get without resorting to
My Friend.
But aside from that - yeah :-)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> ...OK, how many other people here felt an irresistablel urge to try to
>> answer all of those?
>
> I'd be having trouble with the translation look-aside buffer right now.
> I have a feeling that it's about cache memory, or command execution
> queue, but that's about how far I spontaneously get without resorting to
> My Friend.
>
> But aside from that - yeah :-)
TLB - convert from virtual memory addresses to physical memory
addresses. It's basically a cache of the page mappings. (Let's face it,
accessing RAM for every memory access to figure out where in physical
memory the requested virtual address is would be *really* slow...)
I only know this because I read the Intel reference manuals. For no
reason other than curiosity.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> We have a separate section of the interview where we give them an LCD and
>> tell them to take it apart and talk through what they think each bit
>> does, why it's like that, etc. It's a good one because virtually nobody
>> has ever done this before so it puts everyone on an equal level, and
>> there are plenty of mechanical and electrical things to talk about.
>
> And here I was thinking that all the components are microscopic...
Err no, each component is roughly the same size as the display itself. eg
for a typical 2.0" phone display each component is going to be the same
order of magnitude. Of course the electronic circuits that are actually on
the glass panel itself are too small to see, for the electronics guys (yes
we only get male applicants) we just show them some simplified circuit
diagrams of important stuff, showing them the transistors under a microscope
wouldn't be too helpful.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> ...OK, how many other people here felt an irresistablel urge to try to
> answer all of those?
I could answer the first one :-D
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible schrieb:
> Real coders define a continuation monad who's operators are all ASCII
> art, and generate spaghetti code using an epimorphism over endofunctors.
> Deobfuscate THAT! O_O
I'd first need to deobfuscate your sentence :-P
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Real coders define a continuation monad who's operators are all ASCII art,
> and generate spaghetti code using an epimorphism over endofunctors.
> Deobfuscate THAT! O_O
We had a function called Viagra in our code. It was called every second to
check if the lifting arm on our robot was still in the fully raised
position, and if not activate the motor until it hit the limit switch.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> And here I was thinking that all the components are microscopic...
>
> Err no, each component is roughly the same size as the display itself.
> eg for a typical 2.0" phone display each component is going to be the
> same order of magnitude. Of course the electronic circuits that are
> actually on the glass panel itself are too small to see, for the
> electronics guys (yes we only get male applicants) we just show them
> some simplified circuit diagrams of important stuff, showing them the
> transistors under a microscope wouldn't be too helpful.
Yeah, but, I thought it contains stuff like a half-wave plate (which is
nanometers thick) and stuff.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
>> ...OK, how many other people here felt an irresistablel urge to try to
>> answer all of those?
>
> I could answer the first one :-D
A better question might be "why do they call it a relational database?"
So many people get that one wrong...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
>> Real coders define a continuation monad who's operators are all ASCII
>> art, and generate spaghetti code using an epimorphism over
>> endofunctors. Deobfuscate THAT! O_O
>
> We had a function called Viagra in our code. It was called every second
> to check if the lifting arm on our robot was still in the fully raised
> position, and if not activate the motor until it hit the limit switch.
GEEK HUMOUR FTFW!
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Yeah, but, I thought it contains stuff like a half-wave plate (which is
> nanometers thick) and stuff.
Actually the half-wave plate (or quarter-wave plate) is part of the
polariser sheet (which contains lots of other layers), these are typically
0.2-0.4mm thick and can easily be seen attached to both sides of the glass.
We expect most candidates to at least have a very basic idea how an LCD
works (we tell them this before the interview).
Other optical sheets in the backlight, like the diffuser and prism array
sheets are thinner, but still easily visible and handle-able as they are all
the same size as the display itself. In fact you can run your finger nail
along the sheet to see if has any prism structure on it, you could probably
work out the spacing of the prisms from the pitch of the sound somehow
without the need for any microscope. Also there is another sheet in there
that just looks like a mirror, but obviously it doesn't reflect all the
light or the display wouldn't work. THat's another good one to ask them
about.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> Real coders define a continuation monad who's operators are all ASCII
>> art, and generate spaghetti code using an epimorphism over
>> endofunctors. Deobfuscate THAT! O_O
>
> I'd first need to deobfuscate your sentence :-P
Trust me, if I had the time and energy, I could probably come up with
something horribly contorted in Haskell.
1. It lets you define functions with names like **_<#_^_#>_**
2. It lets you write lines of code and automatically inserts hidden
function calls between them.
3. It allows functions to construct other functions.
Need I continue? Suffice it to say, you could do some seriously messed
up stuff with this puppy...
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible schrieb:
> TLB - convert from virtual memory addresses to physical memory
> addresses. It's basically a cache of the page mappings. (Let's face it,
> accessing RAM for every memory access to figure out where in physical
> memory the requested virtual address is would be *really* slow...)
Ah yes - those animals. I knew I had read about TLBs somewhere somewhen.
> I only know this because I read the Intel reference manuals. For no
> reason other than curiosity.
Did that, too - but that's probably about a decade ago, and apparently I
never really needed that stuff :-)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott schrieb:
> We had a function called Viagra in our code. It was called every second
> to check if the lifting arm on our robot was still in the fully raised
> position, and if not activate the motor until it hit the limit switch.
LOL! Talk about self-explanatory identifiers :-P
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>> I only know this because I read the Intel reference manuals. For no
>> reason other than curiosity.
>
> Did that, too - but that's probably about a decade ago, and apparently I
> never really needed that stuff :-)
I was trying to build a new OS, remember? :-}
(Warp's assessment was correct - I never got past a boot loader that
didn't actually load anything.)
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
clipka <ano### [at] anonymous org> wrote:
> Invisible schrieb:
> > TLB - convert from virtual memory addresses to physical memory
> > addresses. It's basically a cache of the page mappings. (Let's face it,
> > accessing RAM for every memory access to figure out where in physical
> > memory the requested virtual address is would be *really* slow...)
> Ah yes - those animals. I knew I had read about TLBs somewhere somewhen.
Same here: I knew the concept existed, but the I was not so familiar
with its *name* that I could make the connection.
Which makes the question maybe a bit unfair: Even if the person does know
what it is about, if he can't remember it from its name, it will look like
he doesn't know about that subject at all.
Besides, in which job would it be necessary to know this?
Unicode encodings? Certainly useful to know. Basic SQL knowledge? Can
become handy sometimes even in jobs not directly related to databses.
Knowing what a TLB is and how it works? Exactly where do you need to know
that? It's not like knowing that would change the way you develop programs.
--
- Warp
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
>>> TLB - convert from virtual memory addresses to physical memory
>>> addresses. It's basically a cache of the page mappings.
>
>> Ah yes - those animals. I knew I had read about TLBs somewhere somewhen.
>
> Same here: I knew the concept existed, but the I was not so familiar
> with its *name* that I could make the connection.
>
> Which makes the question maybe a bit unfair: Even if the person does know
> what it is about, if he can't remember it from its name, it will look like
> he doesn't know about that subject at all.
>
> Besides, in which job would it be necessary to know this?
>
> Unicode encodings? Certainly useful to know. Basic SQL knowledge? Can
> become handy sometimes even in jobs not directly related to databses.
> Knowing what a TLB is and how it works? Exactly where do you need to know
> that? It's not like knowing that would change the way you develop programs.
Well, I guess the idea is that by asking *lots* of [admittedly fairly
arbitrary] questions, you get some idea of whether the person in
question knows anything.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
> Unicode encodings? Certainly useful to know. Basic SQL knowledge? Can
> become handy sometimes even in jobs not directly related to databses.
> Knowing what a TLB is and how it works? Exactly where do you need to know
> that? It's not like knowing that would change the way you develop
> programs.
I think any programmer (that isn't just a code-monkey being told what to do)
should have a good understanding of the hardware and what it does and
doesn't do. Not knowing what a TLB is kind of makes it obvious you don't
really know about the hardware in much detail. If you don't know what a TLB
is, then you probably also don't know much about how the cache or pipelining
system works.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Invisible wrote:
> ...OK, how many other people here felt an irresistablel urge to try to
> answer all of those?
Here's my full current list. Each one can be answered in a word or a
sentence or so. There's no deeply tricky questions. Just in case you want to
play around.
Why is it called "Ray tracing"?
Name an important property of a controlled not gate.
What's the difference between an inner join and an outer join?
What part of the computer does RAID affect?
What is the difference between a deterministic and a nondeterministic state
machine?
What colors make up a pixel? Why?
What does O(N^2) measure? What does it mean?
What does a JIT compiler do?
What gets routed over a Petri net?
What causes a SIG_SEGV?
What is the difference between call by reference and call by value?
What are some of the other "call by's" you understand?
What is Byzantine fault tolerance?
Describe several ways to guarantee the prevention of deadlocks.
Describe an advantage of having multiple partitions on a disk
for one operating system.
Name an important difference between threads and processes.
What is a stop bit?
What is a logical contrapositive?
What is a difference between swapping and paging?
Why is the "halting problem" important?
What is an imaginary number? Name a situation where it is useful.
What is a fencepost error? Describe a good way to avoid them.
What does cache coherence mean?
What is priority inversion? How does it happen? How is it "cured"?
What is an advantage of having an index on a relational database table?
What is a disadvantage of having an index on a relational database table?
Name an advantage that UTF-8 has over other Unicode encoding schemes.
What is a rewrite rule?
What is cryptographic non-repudiation?
What does ACID mean in database systems?
What part of the Internet protocol suite is CIDR involved in? Why was it
invented?
How would you sort a list that is too big to fit in memory at once?
What does a fourier transform do? What does it transform into what?
What protocol do "web services" usually use? Name as many levels of
protocol encapsulation as you can, from the application down
to the hardware.
What is unified by the process of logical unification?
What is an important difference between "SOAP" and "REST"?
What is a symetric cryptographic algorithm?
What is a TCP Window?
How does TCP ensure reliability?
Name an important difference between a tar file and a zip file.
What is a CNAME in DNS?
What are the layers called in the OSI protocol stack? What does each do?
Name something the CPU does differently between Kernel mode and User mode.
What is inheritance in an object-oriented system? What is delegation?
What distinguishes a functional programming language from other paradigms?
What property of its input data does a radix sort need that a qucksort does not?
What does SMTP stand for?
What does it mean to say a programming language is "safe"?
What problem does NAT solve in the Internet Protocol world?
Why do computers use binary numbers?
Name one advantage of WIMP over CLI.
Name one advantage of CLI over WIMP.
What does it mean for a system to be "hard real-time"?
What does a translation look-aside buffer translate?
Name one problem with automated garbage collection.
Describe the difference between access control lists and
capability-based permissions.
What does a VM mean, when speaking of programming languages?
What does a VM mean, when speaking of operating systems?
What is a "managed environment," speaking of programming languages?
What is the advantage of 2's compliment arithmetic?
What is a CGI script? How does it differ from an Apache or IIS module?
What is MIME? What benefit does it provide?
* * * Harder questions * * *
What is a business-object layer, and why is it helpful?
What are some advantages of the relational database model over earlier models?
In an RDBMS, what is a primary key? A foreign key? How do you choose
the primary key columns and foreign key columns of a table?
What benefits do ASN.1 object identifiers have over URIs
when used as arbitrary identifiers naming protocol information?
What are some disadvantages?
What is your favorite programming language? Why? What's wrong with it?
What is the most unusual programming language you've learned, even a little?
What makes it unusual? Why did you learn it?
--
Darren New, San Diego CA, USA (PST)
Understanding the structure of the universe
via religion is like understanding the
structure of computers via Tron.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Warp wrote:
> Which makes the question maybe a bit unfair: Even if the person does know
> what it is about, if he can't remember it from its name, it will look like
> he doesn't know about that subject at all.
Of course, I can give hints in person. :-)
> Besides, in which job would it be necessary to know this?
Computer programming. You should know how the system works, what a L1 vs L2
cache is, etc. If you're writing an OS, you probably should know how page
tables work.
This whole thing started when I was working with a guy named Kevin. He was
an OK programmer, but I kept having to bail him out of corners he'd painted
himself into. At one point, he had a big complicated way of keeping track
of where he was in a network protocol, using strings with stars and plus
signs and zeros and such to track what messages he'd seen and such, and I
said "why not just use a state machine?" He said "What's a state machine?"
So the deterministic vs non-deterministic question was the first one on my list.
> Unicode encodings? Certainly useful to know. Basic SQL knowledge? Can
> become handy sometimes even in jobs not directly related to databses.
> Knowing what a TLB is and how it works? Exactly where do you need to know
> that? It's not like knowing that would change the way you develop programs.
As I said, these are to assess your breadth of knowledge. It's like asking
someone to write a program to compute prime numbers - you'll never have to
do that at work either.
--
Darren New, San Diego CA, USA (PST)
Understanding the structure of the universe
via religion is like understanding the
structure of computers via Tron.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
scott wrote:
> We had a function called Viagra in our code. It was called every second
> to check if the lifting arm on our robot was still in the fully raised
> position, and if not activate the motor until it hit the limit switch.
LOL! I definitely know some engineers I'll tell this one to.
The old OS I worked on had a routine called Enable Interrupts for External
Input and Output. The first comment was "with a sync sync here and a nak nak
there".
--
Darren New, San Diego CA, USA (PST)
Understanding the structure of the universe
via religion is like understanding the
structure of computers via Tron.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New <dne### [at] san rr com> wrote:
> This whole thing started when I was working with a guy named Kevin. He was
> an OK programmer, but I kept having to bail him out of corners he'd painted
> himself into. At one point, he had a big complicated way of keeping track
> of where he was in a network protocol, using strings with stars and plus
> signs and zeros and such to track what messages he'd seen and such, and I
> said "why not just use a state machine?" He said "What's a state machine?"
The only places I have heard where they use state machines is in formal
verification apps and regular expression interpreters. But I suppose there
are tons of other places where they are useful as well... :)
> > Unicode encodings? Certainly useful to know. Basic SQL knowledge? Can
> > become handy sometimes even in jobs not directly related to databses.
> > Knowing what a TLB is and how it works? Exactly where do you need to know
> > that? It's not like knowing that would change the way you develop programs.
> As I said, these are to assess your breadth of knowledge. It's like asking
> someone to write a program to compute prime numbers - you'll never have to
> do that at work either.
But I think there's a big difference between knowing how to calculate
prime numbers and knowing how virtual paging works at hardware level
(which is completely transparent to everyone except maybe operating system
developers).
--
- Warp
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Warp wrote:
> are tons of other places where they are useful as well... :)
Um, network protocols?
http://images.google.com/images?q=tcp+state+machine
> (which is completely transparent to everyone except maybe operating system
> developers).
Yes, there is such a difference. That's why I ask both questions.
And if I need you to figure out what's broken in the OS's paging algorithms
in a year's time, I'd like you to know enough about the subject to be able
to understand a tutorial on the topic.
I don't expect you to know how to program quantum computers, either, but I
expect you to know what quantum computing *is*, to the point that you could
fool the boss into thinking you know something about it. :-)
Anyway, that's one of many questions. If you're working for me, you'll
probably never need a ray tracer, either. But it would be good for you to
know that a ray tracer takes a 3D description and turns it into an image,
for example.
You could say "I'll never need to know that" about every question on that
entire list. A web designer doesn't need to know what a stop bit is or what
priority inversion is. A hardware designer doesn't need to know why you'd
want an index on a relational database table or what protocols web services
use. It's a breadth of knowledge thing.
--
Darren New, San Diego CA, USA (PST)
Understanding the structure of the universe
via religion is like understanding the
structure of computers via Tron.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New wrote:
> The old OS I worked on had a routine called Enable Interrupts for External
> Input and Output. The first comment was "with a sync sync here and a nak
> nak there".
EIEIO
http://en.wikipedia.org/wiki/GNU_Hurd#Error_messages
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Darren New schrieb:
> Here's my full current list. Each one can be answered in a word or a
> sentence or so. There's no deeply tricky questions. Just in case you
> want to play around.
Duh - and I tend to consider myself an all-rounder...
> What is your favorite programming language? Why? What's wrong with it?
That's a pretty nice one, especially the third part ;-)
> What is the most unusual programming language you've learned, even a
> little?
> What makes it unusual? Why did you learn it?
That, too, is a smart thing to ask.
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |