An internship at Intel during high school launched my programming career!
In hindsight I think there were two important things about that internship that really made it great.
The first was that I was given real, important work to do (not just scut work) and I was allowed a surprising amount of freedom in how I approached it (but with guidance when I needed it). I didn't always make good decisions or do things the right way, but when I made mistakes I learned from them and got better, and that was super valuable.
The second thing that made that internship great was that they paid me. It wasn't much, but it was more than minimum wage at the time, and it was enough to make me feel a sense of responsibility about the work — I wanted to do a good job not just because I wanted to make people happy or get a good grade, but also because I was getting paid for my time.
That internship also turned into an ongoing contract position during the summer, which was fantastic because it allowed me to both make some money and continue getting valuable experience working on a real software project at a real company.