When building a house, a builder builds the house and an engineer designs the house. Their jobs are different. An engineer takes up a paper and lays out the rooms, the structural design and so forth and the builder just follows the plan and builds it.
Similarly a web designer designs web pages, lays out his idea on the web content that should be present in the web site, designs the format of the web page and hence forth decides every thing that is necessary in designing a webpage. On the other hand, a web programmer is basically the person who follows the web designers plan. He takes in the designs and implements it to some thing real.
At this point, you may be wondering that a web programmer is basically a worker, however that is not the case. If the programmer is unable to implement the plan, the plan is of no use, no matter how creative. If the HTML (Hyper Text Mark up Language-the programming language used for designing web page) cannot implement what is required then no matter how smart the designer is, he will need to change his designs.
Therefore both the web programmer and web designer work together to build a page that is worth surfing.