When should I apply for internships for CS?

<p>I'm currently sophomore standing, but my confidence in my programming isn't very high. I just recently switched over to CS from math and have only taken the more basic CS classes. I've done very well in the classes, but I doubt my knowledge is extensive enough for an internship.</p>

<p>Many of my friends in CS say junior year is a good time to look for internships. Should I start applying next year even if I don't feel I'm ready? Is senior year too late to start? In general, what is required of me in an internship? Is there any way I can prepare myself for an internship over summer Christmas break?</p>

<p>Edit: oops just noticed there's a separate CS forum.</p>