Dan Kegel's Informal Programming Academy

About 1993, I started hiring and working with intern programmers, first at Knowledge Adventure, then Activision, then Disappearing Inc., then Ixia Communications, then Google. It is not available at this time, sorry.

It was a paid internship; the student has to be able to commit to working onsite in Los Angeles roughly half time or full time.

It's a good experience in many ways, both for me and for the interns. I've worked with people who were anywhere from halfway through high school to just finished graduate school. The best interns have been people who are good programmers, and who want to become experts, but don't yet have enough experience on their resumes to get the kind of job they deserve.

If you ...

and you have done (or can quickly do) a couple of the following: then you're probably a good match for the internship. Here's how to apply:
  1. Pick a popular open source project written in C or C++ (like Wine), make a small enhancement (e.g. a new unit test), and submit it back to that project's mailing list as a patch. If you've already done this, great! If you've never done this before, visit my short tutorial on how to contribute to an open source project.

    Why do I ask for a patch? Because contributing patches is fundamental to being a part of the open source community, and demonstrates that you can get things done.

  2. Once you have some code contributed to an open-source project, send a link to your open-source contributions, and a copy of your resume, to dank at kegel.com.
That's it!

If you haven't...

If you don't quite meet the above criteria, start using Linux as your everyday operating system, and start getting involved with the open source community! Once you've gotten comfortable with Linux programming, come on back. Here are some resources I've put together that might help you get up to speed:

Quotes from alumni

"Since I left [graduate school], I've been following an alternate career dream - to design computer games. This last June, I finally got my big break, and signed on for an assistant network programming position at Activision, working with a senior network programmer [Dan Kegel] who really knows his stuff and is willing to teach it." (This former intern finished a tour of duty as the network programmer on I'82 at Activision, and has moved on to write online games at a new company.)
"The best thing about working for Dan was being able to work with very well thought-out and laid-out code, and to get well thought-out pointers for my innumerable questions -- this was probably the ideal first job for me in terms of learning to program effectively." (This former intern is now working as a software engineer at a defense contractor.)
"Working as an intern with Dan has truly given me valuable experience in programming -- this comes from the fact that you get hands on experience working with real modules that have to deal with the real world. To me, that is a totally different experience than working on theoretical class assignments." (This former intern is now back at school as a senior at UCLA.)
"[Working on the Disappearing Inc. email server with Dan] improved my programming skill, style, and confidence. ... I saw abstract programming concepts in action and the application of real programming style. Dan is a excellent programmer and a patient teacher, and I feel very confident with my programming abilities having worked with him." (This former intern went on to a summer internship at ISI.)
"[Dear Dan,] I had a very interesting time working with you. I have learned many things, and gained valuable experience. Furthermore, I know that working with you has been beneficial to me, because I have already applied some of the things I have learned to school... Off the top of my head, some of the most valuable things I have learned/gained from my experience are: ... I had the recent pleasure of bringing out the best in some of my CS class team members. It felt great. And I hope you feel the same, too, because you did help me in many ways..."
"Working with Dan has been a great experience. I've learned a lot about programming and also software development in general. I got to work on a large project, contributing code to an actual product. My skills as a programmer have improved and my knowledge of development in Unix has greatly increased as well. Overall though, the best part was being able to work on such an interesting project that I would never have been exposed to by just taking courses at UCLA. There are infinitely many details to software development that they never teach you in school. If you ever wanted to know what it's like to be a programmer, this is an excellent opportunity."
"I think I learned quit a bit from working with you, especially programming under Unix/Linux environment, which is something they don't teach in school. I also got a chance to see how the OS and networking concepts learned in school are implemented and used... If nothing else, just learning vi and the linux commands makes this internship worthwhile. I think you're a good teacher, being able to sit down with me going over all the commands, and answering the questions I had. ... Anyways, I think this was a good experience for me, and thanks for everything."
"Dan's a cranky old bastard..."
(OK, nobody said that last one, but they probably thought it.)

Last Change 4 May 2013
(C) Dan Kegel

[Return to www.kegel.com]