This is the fifteen post of the series of programming job interview challenge, 37 readers provided an answer to job interview challenge #14. As you can understand from the title, I have a little announcement to make, but lets first head on to last weeks question answers.

This time, Omar was the first one to provide an efficient and correct detailed answer:

Draw a line from the single point (any direction will do).
Count the number of times that this line intersects with lines of the polygon.
An even count (including zero) indicates that the point is outside of the polygon.
An odd count indicates that the point is inside the polygon.

Here is a nice image taken from Jon von Gillern blog post

Continue Reading...

Hi all

July is over and it is time for the stats.

Exciting news! We got accepted to DMOZ! which is great. It seems that bugging them all those months finally paid out :)


Blogging Idol Content

As expected the numbers are lower than last month’s (no more 20k visits a day…) but still show progress. On the other hand Our efforts In the blogging Idol have taken us to  almost 600 RSS subscribers! So thanks to everyone who subscribed!


Writing Payout Increased

As promised, We have raised our offer for article writing, we will now pay 30$ for a well written, 500+ words article. Find out more on our Make money with Dev102 page.


Dev102 Link Directory

We have also Proud to announce the opening of the Dev102 Link Directory. If you have a blog or a WebSite and you want to swap links with us feel free to add you link there. If you can find a category that fits your WebSite contact us. We will not instantly approve all blogs, but if your blog is updated frequently and is not spam you will definitely get in.

Continue Reading...

The fourteenth post of the series of programming job interview challenge is out, 79 comments with answers were provided to job interview challenge #13. We didn’t publish a question last week due to a sever lack of time, so another week is gone and here we are again.

Mark R was the first to provide a correct and detailed answer (which I can quote here):

As you examine each character, classify it as either an opening or closing bracket. If it’s an opening bracket, push it onto a stack. If it’s a closing bracket, pop the top character off of the stack; if the stack was empty, or the character was not the matching open bracket, then return an error. At the end of input, if the stack is empty, you have a legal expression.

C++ has a built-in stack class, so this becomes a trivial problem. I’m not sure about other languages. You could always simulate a stack by appending and deleting characters from the end of a string.

So, in one word, the most efficient answer is use a stack. Here is a nice image which was crafted by David Tchepak in his blog post Brackets, braces, parentheses, and other such creatures:

Continue Reading...

The twelfth post of the series of programming job interview challenge is out, 28 readers provided answers to job interview challenge #11. I have to admit that I probably failed explaining what I was looking for in challenge #11, because I asked you to provide the best algorithm in both manners: performance and memory. What I really meant is that performance is most important but don’t neglect the memory issue. Due to my little “embarrassing failure”, there are two groups of correct answers – the performance oriented and the memory oriented.

The correct answer which I was looking for (best at performance) as Alex, the first one to provide a detailed solution (its two times in a row), wrote:

Continue Reading...

The eleventh post of the series of programming job interview challenge is out. 75 readers provided answers to job interview challenge #10 and most of them had the correct solution. The correct answer as Alex, the first one to provide a detailed solution, wrote:

Here’s an O(N) solution:

Have one variable that stores the sum of all the values. Iterate through the list to add all numbers to the variable, which for simplicity I will call “listSum”.

Now, take the theoretical sum of all numbers between 1…n+1: This can be computed in O(1), as the sum of numbers up to N is n(n+1)/2: So for numbers up to n+1, it’d be (n+1)(n+2)/2 (for instance, if the array is of size 9, we’d do 10*(11)/2, or a theoretical sum of 55). Call this sum “allSum”.

The missing number will be the result of computing “allSum – listSum”.

O(N)complexity, with only two tracking variables.

Continue Reading...

Hey all! Its time for a new Challenge. But before that, last weeks answer. Well the answer could have been summed up by saying just traverse in reverse and return the second node . There were a few interesting answers among them Jonathan Gilbert’s who was the first to answer correctly: This seems pretty simple to […]

Continue Reading...

I used to love using Digg, reading, submitting and digging. But no more! From now on I HATE them. I know Hate is a strong word, but hear me out and understand why I used this strong word.

On Friday the 13th of June I tried to submit one of my articles to Digg and I got the following error message:

This URL has been widely reported by users as being regularly used to spam Digg’s submission process and cannot be submitted at this time.

Weird I though to my self, probably just a glitch and right away I wrote an E-Mail to the Digg Support, here it is:

Continue Reading...


During the Job Interview Challenge Series we are running here at, we usually get some comments from readers who think that the quality of a specific question is not good. Here are some of those comments:

  1. I hate interview questions like this, as it’s just a race to see who gets the a-ha moment first“.
  2. “This is not a good interview question. What does it tell you about someone’s engineering ability? Little. It’s a brain-teaser; either you get it or you don’t”.
  3. Really enjoying the problems so far but I’m a little disappointed with this one. I prefer ‘thinking’ problems to ‘research’ ones“.
  4. Isn’t this an awfully language-specific question?“.
  5. If you presented this problem in an interview and made me an offer, I’d turn you down“.

On the other hand, many readers provided answers to the questions and enjoyed participating in those challenges. Some thought that the questions are very good:

Continue Reading...

That’s it, the 9th post of the series of programming job interview challenge is out and alive. 19 readers provided answers to job interview challenge #8, Pieter G was the first to provide a correct answer:

The fastest way I can come up with is to generate a finite state machine at initialization. The transitions between states would be defined by the records you look for in the pattern and one transition for an unmatched record. When the machine enters the goal state is should send the notification (how to most quickly do that I leave to someone else). When reaching the goal state the machine should not terminate but continue (else we may miss a occurrence).

You can see more details about the solution in those blog entries:

Continue Reading...

Every one of us, software developers, experienced situations where the .Net Framework could not locate an assembly and ended up facing the TypeLoadException. These failures usually happen due to an assembly deployed to the wrong location or a mismatch in version numbers or cultures. A quick way to check what went wrong is to open the module window (Visual Studio) during debugging but that may be sometimes impossible or inconvenient because:

  • We may not have Visual Studio installed. 
  • We installed the product in the customer site and we don’t have the code available.
  • It is some third party assemblies which causes the problems.

Luckily, there is an assembly binding log viewer which displays information that helps us diagnose why the .NET Framework can not locate an assembly at run time. This tool is called

Continue Reading...