برنامه نویسی یکی از بخش های بنیادی علوم کامپیوتر می باشد، با این حال یادگیری و آموزش آن با مشکلات جدی همراه است.دراین مقاله، ما مهمترین موانع در یادگیری برنامه نویسی را شناسایی کرده و در شش بخش که شامل ماهیت برنامه نویسی ، استاد و شیوه تدریس ، دانشجو و شیوه یادگیری ، بسته های آموزشی ، محیط های توسعه برنامه ( (IDEs، عوامل احساسی و عاطفی دسته بندی کرده ایم. در این تحقیق ، نظرات بیش از 30 استاد و همچنین 100 برنامه نویس حرفه ای به وسیله پیاده سازی یک سیستم تحت وب جمع آوری شده است. ما دراین مقاله به بحث و بررسی نظرات گردآوری شده به منظور شناسایی و تشخیص دقیق تر مشکلات آموزش و یادگیری برنامه نویسی و همچنین ارائه راهکارهای مناسب پرداخته ایم. نتایج این بررسی می تواند برای دانشجویان ، اساتید، ابزارهای توسعه یادگیری وهمچنین محیط های توسعه برنامه (IDEs) مفید یاشد.