The most common mistake in dealing with an expert in computer science – clearly assigned task. In most cases, the customer and the programmer a different vision, so you should clearly define what outcome you expect. Robotics shines more light on the discussion. You can specify this either orally, in writing, but it's better to fix all the details by filling out the terms of reference. In this case, it will be easier to monitor performance of tasks. If you should write some kind of program, without specification to begin work is simply unacceptable.

Unfortunately, in recent years has decreased the overall level programmers. Anyone able to write several statements on programming language, considers himself a programmer. However, the foundation of the program – its inherent algorithms. Algorithms can be programmed ready either but do a quality algorithmization much more complicated. And without detailed terms of reference going.

If someone says that now go and start programming, but along the way to decide what to get, then a developer in any case should not be used. You spend much time and effort to change, completion and debugging programs, since all these phases of work you have to do with it, because of the lack of clear requirements. However, after spending some time at first preparation of competent technical specifications, you can be sure that you get exactly what you want. If a programmer misses phase of the specification and algorithmic, arguing that "and so all clear, "he just did not learn programming at a sufficient level, and nothing good can not do.