Oh yeah, I'm also trying to find some cool summer internships but there don't seem to be any around here (I'm in Washington state)! Do you know of any Web sites that have internship listings or something?
I'll give you my standard advice first: Don't spend the whole summer inside writing code. You have your whole miserable adult life to do that. I'm forty years older than you are, and I spend all my waking hours typing on a silly computer, answering emails from people I don't know. If I hadn't spent my teenage summers at the community pool flirting with Sue Jenkins (what a babe!), I'd be a miserable old goat now. Plan to have some fun this summer, in person. Note that "internship" and "internment camp" both start with "intern." (And seriously -- I don't know of any good sites for finding internships. I'm sorry.)
As for languages to learn: Flash is good, but you should run from Java. That's my advice. It's a language for people who want a career. It's a serious language and a serious commitment. If there were a religion based on computing, novices, sworn to silence, would learn Java; sad-eyed monks would move on to C++; and emaciated mystics would molder in their barren cells writing LISP code.
Computer-savvy teens tell me that PHP is the ticket for Web programming. It provides you with the functionality you need to do interesting Web applications with the least amount of unnecessary overhead. We have a PHP Pocket Reference you might want to look at, but there are lots of free example scripts on the Web, I'm told.
Perl is always a good choice. We love Perl here at O'Reilly. There is so much Perl on the Web that you can usually find a script that does exactly what you want. We've got lots of good Perl books, but Learning Perl, 2nd Edition is a good place to start. One word of warning: if you meet a bunch of Perl programmers on the bus or something, don't look them in the eye. They've been known to try to convert the young into Perl monks.
If you read my column, you won't be surprised to see that my final and highest recommendation is Python. It's an easy-to-use programming language with many of the virtues of Perl and PHP--interactive development, RAD, object orientation, and lots of examples of Web use--but it also enforces good programming practices. I wouldn't want you to learn bad habits at a young age (at least, not bad programming habits) that you'll regret when you have to get serious later. Python also provides a dialect called Jython that makes the eventual transition to Java easier. (Yes, my son, someday you'll probably decide to learn Java, and I won't try to stop you.) We have a book, Learning Python, that will get you up and going. It's a good book. I know: I spent good summer sunshiny hours editing it.
I hope you had a nice birthday. Sorry I missed it. I missed my own birthday this year. I was reading email and when I looked up, it was over.
Go get crazy. Find your Sue Jenkins. Then, if you must, code.
O'Reilly & Associates
Copyright © 2009 O'Reilly Media, Inc.