Besides that, most software developers just aren't that great. By definition half of them are below average in their ability, so if you're an average programmer with good business communication skills you're ahead of the curve by a good margin.
At the end of the day, the best way to get an internship is to know the right people. My brother went to university with the lead developer of the company I got my internship at, it wasn't the only reason I got the job, but it was definitely a big contributing factor. My B- GPA definitely wasn't why I got the job, and I had literally zero experience with Ruby on Rails or JS at the time either.
Upon saying that, my experience doesn't necessarily map to everyone else. At the risk of sounding arrogant: I'm a very talented, although not necessarily motivated, programmer. I managed to get my degree without attending more than a week of lectures each semester, while at the same time feeding a pretty heavy drinking problem.