My Secret Life as a Spaghetti Coder
home | about | contact | privacy statement
This is the second in a series of answers to 100 Interview Questions for Software Developers.

The list is not intended to be a "one-size-fits-all" list. Instead, "the key is to ask challenging questions that enable you to distinguish the smart software developers from the moronic mandrills." Even still, "for most of the questions in this list there are no right and wrong answers!"

Keeping that in mind, I thought it would be fun for me to provide my off-the-top-of-my-head answers, as if I had not prepared for the interview at all. Here's that attempt.

Though I hope otherwise, I may fall flat on my face. Be nice, and enjoy.

My lack of understanding the angle from which these questions come may influence other seemingly off-base answers. Help me out by explaining how you might answer these questions on functional design:
  1. What are metaphors used for in functional design? Can you name some successful examples?
    I hate to start the first one off with an IDK, but what else can you do? I feel like I can talk intelligently about some of the issues involved in functional design, but until now, I never realized it was a process unto itself, nor did I know what all it entailed until after I browsed the remaining questions.

    Reading: The Wikipedia page on functional design is delightfully lacking any useful information about the topic. However, these functional design guidelines on Smashing Magazine seem to be a reasonable starting point.

  2. How can you reduce the user's perception of waiting when some functions take a lot of time?
    Show a progress bar. Distract them with something they need to read or stage data-collection/interaction with the user. Of course, the obvious yet overlooked answer here would be to make the offending functions faster. At worst, if the function doesn't require user interaction at all, you could spawn a new thread to do the work in the background and let the user continue working. Then they'd notice no waiting at all.

    Reading: I picked this up from observation and deduction. I don't know where I'd go to read such information.

    Comic of man jumping in front of train

  3. Which controls would you use when a user must select multiple items from a big list, in a minimal amount of space?
    What controls do I have to pick from? Can the list be grouped by some recurring values? For instance, consider how the iPod uses the scroll wheel to let you navigate a long list of music. Now apply finding one song to finding several, and you have an idea of what I'm talking about.

    Another option might be to have auto-complete, with a special key for "add to list" when you're satisfied, which puts you back at the beginning of the text box. Another key would end the sequence.

    Can you visualize the list in some way? The user could then click pictures to drill down and roll up on items in the list, viewing it from different levels. For example, if the list was of colors, you could take the typical color-picker from every image program out there, and use it to choose your list.

    Reading: I came up with these on the spot, and can't say I've seen them completely implemented yet, so again, when it comes time for advice on where to read up on this topic, I've got nothing.

  4. Can you name different measures to guarantee correctness of data entry?
    Aside from the pains of torture? You'll definitely want a fast-acting validation to let the user know as soon as possible that you think their input is incorrect. When talking about the web, you'll want to validate it server side as well. You'll want to show some examples if you need a certain format of input (or just if the customer expects to be forced into a format, you'll want to relieve their anxiety by providing an example). Finally, make the user type as little as possible, except if you're doing a progressive lookup / autocomplete on their typing.

    Reading list is vacant. Please advise.

    An empty bookshelf

  5. Can you name different techniques for prototyping an application?
    At first, I didn't realize there were different techniques. Unless we were talking about storyboards vs. mark-up-only or a shell of an application. I don't imagine that was the point.

    I did find something that I think was the point: for reading, Scott Ambler has a take from a different point of view: tips and techniques in user interface prototyping that includes another list of resources. A treasure trove!

    Now that I know what we're talking about, I'd have given similar answers. I feel I could have been effective in a conversation about this, but the other party would have had to lead me that direction. I couldn't get there from the question alone.

  6. Can you name examples of how an application can anticipate user behavior?
    Analyze it and look for patterns. Use a Markov Model to predict next action based on previous N actions.

    That's the only way (well, there are variation on the same theme) I can think of that an application would do it. We could of course observe the users and make changes ourselves. I don't think that would be a bad idea.

    Reading is nonexistent. Those ideas came from elsewhere, but never as part of functional design.

  7. Can you name different ways of designing access to a large and complex list of features?
    There's the outmoded File/Edit/View tree menu controls (find link to discussion), ribbon interfaces, and progressive search, or autocomplete.

    I'd also consider re-purposing my answers to #3.

  8. How would you design editing twenty fields for a list of 10 items? And editing 3 fields for a list of 1000 items?
    For the latter, I'd almost certainly put them all in one page. Or 100+ at a time. The fewer clicks the better. It's worth importing from a spreadsheet every time, if that's an option.

    For the former- Can the 20 fields be broken down into more cohesive units? Twenty fields in one form is often too many. 10 forms is not absurd, on the other hand.

  9. What is the problem of using different colors when highlighting pieces of a text?
    The highlight color can make the text hard(er) or downright impossible to read. Anything else?

    I don't see room for discussion, unless you're flashing the colors -- then you might get into causing epileptic seizures in those susceptible to them.

  10. Can you name some limitations of a web environment vs. a Windows environment?
    Access to the file system. Lag mainly - less responsive experience for most of web than on Windows.

As you can tell - while some of these questions are ones I've thought about in the past, or touch themes on others that I do - I haven't thought about functional design as a process by itself.

So in that regard I ask, Do you have any pointers?

Hey! Why don't you make your life easier and subscribe to the full post or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!


Comments
Leave a comment

please send me the answer of 100 interview question

Posted by Asim Akhtar on Oct 15, 2010 at 12:25 PM UTC - 6 hrs

Check out http://codeodor.com/index.cfm/category/Answers%20To%20100%20Interview%20Questions/39

Posted by Sammy Larbi on Oct 18, 2010 at 09:50 AM UTC - 6 hrs

Looks like I have a bug. You'll need to copy and paste that instead of clicking it.

Posted by Sammy Larbi on Oct 18, 2010 at 09:51 AM UTC - 6 hrs

What is the problem of using different colors when highlighting pieces of a text?

7% to 10% of men have color blindness and so choosing the wrong highlight color may affect their ability to see the text within the highlight (e.g. black text within red or green highlight might appear all black/grey).

Also, someone might not be using a colored screen.

Posted by K Lovre on Aug 12, 2012 at 05:14 PM UTC - 6 hrs

Good point K Lovre, I hadn't thought about that way back when I wrote this. =)

Posted by Sammy Larbi on Aug 15, 2012 at 06:28 AM UTC - 6 hrs

I could not find any of the information i needed on this website. Although, it did have many things i already knew, it did not have anything close to the answers i was searching for. I had up to 30 questions that i needed answered and could not find any of them. Thanks anyway :)

Posted by Katie on Jan 15, 2013 at 09:47 AM UTC - 6 hrs

Thanks Katie, sorry it wasn't more helpful.

What were you looking for? There were 9 others of these posts, totaling 100 questions (each one had 10), so maybe one of the others could be helpful.

Posted by Sammy Larbi on Jan 15, 2013 at 12:10 PM UTC - 6 hrs

Very intuitive read. The question are good and so are the answers. However, some of the questions are repetitive. I hav found similar questions on other websites, but the answers are unique and appropriate. Thanks!

Posted by Peter Williams on May 26, 2016 at 09:17 AM UTC - 6 hrs

Leave a comment

Leave this field empty
Your Name
Email (not displayed, more info?)
Website

Comment:

Subcribe to this comment thread
Remember my details
Google
Web CodeOdor.com

Me
Picture of me

Topics
.NET (19)
AI/Machine Learning (14)
Answers To 100 Interview Questions (10)
Bioinformatics (2)
Business (1)
C and Cplusplus (6)
cfrails (22)
ColdFusion (78)
Customer Relations (15)
Databases (3)
DRY (18)
DSLs (11)
Future Tech (5)
Games (5)
Groovy/Grails (8)
Hardware (1)
IDEs (9)
Java (38)
JavaScript (4)
Linux (2)
Lisp (1)
Mac OS (4)
Management (15)
MediaServerX (1)
Miscellany (76)
OOAD (37)
Productivity (11)
Programming (168)
Programming Quotables (9)
Rails (31)
Ruby (67)
Save Your Job (58)
scriptaGulous (4)
Software Development Process (23)
TDD (41)
TDDing xorblog (6)
Tools (5)
Web Development (8)
Windows (1)
With (1)
YAGNI (10)

Resources
Agile Manifesto & Principles
Principles Of OOD
ColdFusion
CFUnit
Ruby
Ruby on Rails
JUnit



RSS 2.0: Full Post | Short Blurb
Subscribe by email:

Delivered by FeedBurner