Fog Creek Software
Discussion Board

Interviewing: common terminology?

Hello all,

I'm interviewing some entry-level inepxerienced programmers.

I'm using some terminology that I *thought* was pretty common place here in the USA, but wanted to reality-check that.

These are terms that I thought any CS *student*, much less graduate would know.

*Modal Dialog Box 
*Static vs. Dyamic Linked

I use these terms all the time, but maybe I've forgotten when I did NOT know them :-)

Mr. Analogy
Thursday, July 29, 2004

I would say they should know what an IDE is, might know what a modal Dialog box is if they've been indoctrinated in Windows.  I'd be very surprised if a new grad knew the difference between static and dynamic linking.

YMMV though, I'm guessing at what a modal dialog box is but am very familiar with static/dynamic linking.

Thursday, July 29, 2004

-IDE should be pretty well known, but many students use UNIX tools and don't have much experience using real IDE's.

-Modal Dialog Box... again many students are coming from a UNIX world where they didn't program GUIs.  It still should be something most computer people would know.

-Static vs Dynamic linking.  I think this is something many CS grads would not be too familiar with.  It's not really something you learn doing programming in college.

Thursday, July 29, 2004

Static vs. dynamic linking of _what_?

Thursday, July 29, 2004

"of _what_"?  Troll?  Oh, well.

Static vs. Dynamic linking of an application.  In Static linking, the run-time library code is linked in to the application.  Kind of like Borland does it.  Each app then has its own copy of the library code it uses.

In Dynamic linking, only a reference to the library is included in the code.  Then, the run-time dynamically loads the run-time library when it is used (or, shares an already loaded instance).  This way, ONE instance of the library can serve multiple applications.

Thursday, July 29, 2004

Static vs Dynamic linking not learned in college? Don't colleges require Operating System courses anymore?

When I got my CS degree, we had to write a loader and a linker, and went into these things in pretty serious detail.

Chris Tavares
Thursday, July 29, 2004

I agree with Chris.  I'd definitely want to see transcripts if someone claimed to have spent four years studying computer science and couldn't give a fair description of static vs. dynamic linking.  It's not like this is a bleeding edge or seldom used concept.

Ian Olsen
Thursday, July 29, 2004

Well, except that they have computer 'science' degrees.

So static vs dynamic linking had best have been covered in the OS class. But that may have been it.

IDE - is that like vi? Or buzzword for 'editor'?

Modal Dialog box - is that like printf?

As for hire/no hire, depends what you're looking for, did they understand dynamic/static linking after a 1 paragraph explaination? Do you care if they understand UI concepts?

Thursday, July 29, 2004

This relates to the other thread about landing that first job.

What students are taught in college may not include much of the real world, practical, business oriented, industrial stuff that you and I take for granted. It takes a bit of work experience to fill that gap.

So perhaps some graduates will indeed fail to know about IDEs, static/dynamic linking, and modal dialogs.

On the other hand, I don't suppose I would think about employing such people. The good candidates will have enthusiastically learned, read and programmed way outside the course material and will know what you are talking about.

Those are the ones you recommend for employment.

(Not because they know that stuff, but because they have demonstrated the interest, aptitude and willingness to learn that will make them good people to have on staff.)

Thursday, July 29, 2004

Good points, Ian, but what if their curriculum was 100% assembly language, Unix, Pascal, C++, and they taught themselves .Net, PHP, Java, etc? One thing about self-taught people, especially if they don't have a user group handy, is that they may not learn a lot of the "standard" terminology.

I think it's possible to get pretty good at a 4GL in isolation without really grokking what "IDE" means. Sure, you use Eclipse, Dreamweaver, and Visual Studio, and maybe you kinda know that when something says "IDE" it's gesturing in the general direction of your workspace. But be able to actually define it when pinned down? Maybe not... ;-)


Thursday, July 29, 2004

I don't know, those should be fairly well known (business major here and I knew them).  Of course you should probably phrase your question away from "What's an IDE" to, "What do you look for in an IDE".  That way you can give a brief description or pointer to an IDE to help the candidate out without disrupting the flow.

Thursday, July 29, 2004

I know what all these terms mean but they were never discussed at the univ. I went to.

The more fancy CS departments don't ever touch things like IDEs or GUIs. It's all unix, vi and gdb for the most part.  All development is done on 24x80 orange screen terminals that were purchased in 1969.

Dennis Atkins
Friday, July 30, 2004

Great students who do extra-curricular learning on their own often branch out into other fields, such as the theatre, philosophy, fine arts, poli-sci, etc.

Not much use for dynamically-linked libraries and IDEs there. ;-)

Friday, July 30, 2004

Make sure it's not just a difference in jargon. They might've been using Visual Studio for years without every hearing the term IDE.

Similar with static vs dynamic linking. A C++ programmer worries about that kind of thing; but someone who's good with Python/perl/php (and probably Java but I haven't used it much) wouldn't be concerned with the term, because (normally) everything is dynamically linked.

Tom H
Friday, July 30, 2004

I think when I started my first job I would have only known 'static/dynamic linking' and I'm not sure about that. I'd always used a text editor and a command line compiler before. And heard blocking/non-blocking as the terminology for modal/modeless (which I still think is pretty stupid terminology, especially as MFC's Modal dialogs are actually Modeless).

Mr Jack
Friday, July 30, 2004

As a recent college grad (2 months ago), let me provide my answer:

IDE - yes, I would know this "term". I hesitate to really call it a term though since you could just replace "IDE" with "editor" in any possible sentence you'd actually use "IDE" in and not lose any meaning.

Modal dialog box - Nope. If you said "dialog box" I'd obviously know what you mean but "modal" throws that off.

Statically vs Dynamically linked - I would think that you were talking about linked lists. This will make some of the above posters said, but I'm afraid most college's do not teach the difference (as described earlier) anymore. Some advanced students, and students from advanced schools, will know this, but not the majority.

Matt B
Friday, July 30, 2004

Here's something from the perspective of someone who as of yet has no experience with desktop programming, only web:

I know what an IDE is, but I don't think its a big deal if someone doesn't know or hasn't heard the term.

I've never heard of a "modal" dialog box, but I would assume its something similar to a Message Box in VB, or an Alert() in javascript.  All I am doing is breaking down the language used to describe it.  "Modal" would tell me that perhaps it could vary in its functionality based on some "mode" the application is in like edit/read/etc.  "Dialog box" would tell me that its a box (or window) that will be communicating something, and probably asking for a response.  That is just how I would attack the meaning of the term I wasn't familiar with in an interview.  If I were just on my own and in front of a computer, I'd fire up google and get the real answer.

I've heard of dynamicly linked (DLL's, right?), but I wouldn't know the textbook definition of static vs. dynamicly linked.  However, I can take the same approach to making an educated guess (the first step before I would just go research it).  Static would tell me that its probably hard coded to look for another file in a very specific location on the machine, and dynamic would tell me that the location of said file will depend on some input, either at installation or at runtime.

Again, those are just guesses, and I would only guess like that if put on the spot in an interview.  I'd be very leary of hiring someone who wouldn't at least be able to attack the unknown and make educated guesses.  As long as the process by which they make the guess uses sound logic, they get the thumbs up.

Clay Whipkey
Friday, July 30, 2004

Oh, and I should mention that I have no college computer science or programming classes under my belt, so maybe my post won't help.

Clay Whipkey
Friday, July 30, 2004

From Google:

IDE: Intergrated Drive Electronics. A Hard disk drive with built-in electronics neccessary for use on a computer. Also refers to the PC INTERFACE to which disk drives connect.

Friday, July 30, 2004

Terminology doesn't matter much. The question is: Can these inexperieced programmers that you are interviewing do the tasks that you will be giving them? 

They may or may not know buzz terms or any terminology perhaps, but are they smart enough to catch on once you tell them what they are, and explain to them how they work?

The other thing is, do you even have the time to explain it to them? If you throw those words at them, will they know how to figure out what they mean on their own? Will they know where to look (hopefully they know what "google" is)?

In my opinion, these are the questions you should be asking...

Friday, July 30, 2004

> I think when I started my first job I would have only known

When I started my first job IDEs didn't exist.  You had to exit the editor to compile or link, and swap disks to start the debugger.

The term Modal Dialog Box was intermixed with the contents of some baby's diaper.

Dynamic linking may have existed in a research environment, but not for peons like me.  We couldn't run 2 programs at once, it was pointless to even try dynamic linking.

Jeez, I'm an old fart.

Friday, July 30, 2004

>Jeez, I'm an old fart.

If they didn't exist, then the potential employers wouldn't know about them either. 

Therefore you can't compare what you had a million years ago with what there is now...

Friday, July 30, 2004

Can you learn OO without being told about polymorphism?
Can you learn about polymorphism without being told the difference between static and dynamic linking?  So can the intervievee know anything about OO programming?

Friday, July 30, 2004

Could you please clarify that? In what way are linking and polymorphism related?

Friday, July 30, 2004

*  Recent Topics

*  Fog Creek Home