I've had the marvelous privilege of running an internship program in my area through my software company. I've worked with the computer science and career service departments of our local universities to continually improve this internship, and am proud to say that we've had a dozen graduates of the program to date, most of whom went on to full-time development and IT positions.
Interns work 6 hours a week (almost always remote) on actual projects in C++ and Python. They have opportunities to participate in team leadership, hiring, and standards authoring. Although remote, we're fully collaborative, and offer the same level of administrative structure you'd find in any full-time industry job (remote or otherwise). Ours is definitely an unusual program, but it works.
Since our company has between 3-10 active employees at any given time, I wear many hats. In running this internship, I've simultaneously served as lead developer, hiring manager, trainer, mentor, technical writer, code reviewer, IT, DevOps, you name it! I've helped interns learn to manage time, handle conflicts, solve problems, ask questions, review code, write documentation...and much, much more.
I've made a lot of mistakes over the years of running this program, but it's been an adventure I've loved every minute of. I've been taking the time to look back as I get things in place for (hopefully) the next round of interns next year.
Ask me anything!
Read the article based on this AMA...