  While teaching introductory programming courses for over a decade in reputed
institutions we have experienced that several factors play significant role in
developing problem solving skills and program development skills in students.
There are certain types of difficulties that are encountered by the beginners.
These difficulties vary in their nature. Beginners find difficulties with the
programming language that they use, the compilers that they use and so on.
These difficulties if not overcome proves detrimental to their career as
professional engineers at a later stage. This paper focuses on the various
types of difficulties that a novice programmer faces while learning programming
and tries to find out ways to overcome them.
