Difference between Programmer, Software Developer and Software Engineer

Programmer:- Focus on writing code as the primary activity of software development, often attached with particular programming languages and parts of a whole software solution. In most cases, junior professionals join in a software house as a programmer (well junior programmer you know).

Software Developer - They are programmers who have expertise on developing a particular type of solution effectively and efficiently. In most cases, software developers are just programmers, may be with a better project experience. In some cases they are known indifferently as software engineers though, I don't think Software Engineers fall under these category.

Software Engineer - A software engineer is somebody who applies a formal or structured approach to the development of software. He thinks about correctness, completeness, reusability and workability that matches the end goal for the finished product. A good and short alternate definition may be - a software engineer is one employed to solve problems by the application of information technology.