Sample interview

There are several topics about what questions will be asked in an interview for a programming assignment, but none of them talk about a small problem that some companies want: a sample program.

My question is based on my last assignment app where I was asked to create a simple program and send it to them.

Well, this begs several questions:

  • what program should i write?
  • What should I implement?
  • What should I use as a display for technical content?

and mostly important (there were several SO users looking at the code) what does the company expect?

My current idea is to create a simple blog using an XML file to store the data and optionally create a simple ASP.NET page with add / edit / delete functionality and create windows, as well as a command line application that will do the same.

things I should NOT avoid:

  • comment out all the code
  • use regions to split code
  • create a class object for use with "blog"

and I have to:

  • use interfaces?
  • use virtual

    and override any method (for example myBlog.ShowPost()

    )?
  • to apply any design pattern?
  • use a helper / utility class?
  • to use DAL and BLL?

how about "shipment" if i ...

  • use MSI (to prove that I can make good installers)
  • just submit the code as a visual studio project

Any idea of ​​a simple program and what should be in the code is greatly appreciated :)

+1


source to share


4 answers


Take the opportunity to show them how you feel about the client. Start a conversation about what's important, how they want it delivered, what the timeline is, if they want documentation, etc.

If they don’t want to solve any problems, try writing a program associated with the domain of their main product. Or at least stick to some of the technologies they use.

Make sure everything you deliver to them is complete enough and contains the source code and deployment package. Make sure you have sufficient documented documentation so that a technical person can successfully build your program in no more than two or three simple steps. Make the deployment package simple enough that a non-technical person can quickly run your program. This is not necessarily an MSI, a batch file that copies all files will suffice if there is only one command.

Make sure your code is well organized and commented. Avoid writing obscure code hacks and unnecessary optimizations. Find a set of good coding guidelines (SO has several threads on this topic) and stick to them.

Extract the Commando template. :-) Use design templates that you feel comfortable with. Use interfaces, inheritance, abstractions, and appropriate architecture layers as needed.



In other words, write the code so that a programmer of lower skill than yours can discover and maintain it.

Using external code in your program will be fine as long as you make sure they know about it. Be clear where the code came from and what license was published in it.

As a side note, add a license to your code that prohibits republishing or reuse for commercial purposes.

Everything above sounds too complicated, but what professional developers do is they don't just write code, they ship the product.

+2


source


ask the client what he wants, don't guess

you write the xml-blog program, they say "which is nice, but we do desktop development here"



you write an optimized non-relational parallel database, they say "nice, but we're making financial web applications here"

+2


source


This seems suspicious to me. They want you to record a sample app for them for free to see if you want to hire you? Is this a permanent position or a consulting gig?

I wouldn't do that. It seems to me that if you are anything but despair that your time will be better spent on other companies that have better interviews.

+1


source


Simple programs that would be my suggestion:

1) Check out the example given in Refactoring for a movie rental example that features customers, movies and rents that can be quoted up to some length to show what they can do.

2) FizzBuzz is another simple program idea that is talked about in various places.

3) Some simple string functions like reversing a string or for a given integer return the number of bits.

Don't forget that you should document things like the complexity of your algorithms (time and space), what assumptions you make in your code, what tests you ran to validate your code, and also maybe a generic README that any developer can help which the code inherits.

0


source







All Articles