![](/i/fill.gif) |
![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
>>> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
> 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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
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
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |
| ![](/i/fill.gif) |
|
![](/i/fill.gif) |
|
![](/i/fill.gif) |
| ![](/i/fill.gif) |