I highly recommend attending some hackathons as a high school student, and I honestly can't stress this enough. Sure, you will be giving up your weekend. But seriously, these events are some of the best ways to get real programming experience as a student. Creating a new product every weekend teaches you not only to work quickly and intelligently, iterating only when you have to, but also how to present your work at the end of the weekend. Plus, travel to larger hackathons is often reimbursed, and the food is free, so you often won't have to pay anything to attend!
One issue that I know some of us can run into as high school students is getting our parents to allow us to go to weekend-long events. If you want an easy way to explain what a hackathon is, check out Major League Hacking's parent hackathon guide, made specifically for this purpose. It answers questions that many parents will have about hackathons, concerning topics such as importance, safety, and more.
Over the last few years, Major League Hacking has done amazing work to establish themselves as the premier student hackathon league. They sponsor many of the largest and most well-done hackathons in the world, and I would recommend any one of their events.
This is a curated list of hackathons taking place in New York City. Since it's much more local than Major League Hacking, these hackathons will be much smaller, but of course they are much easier to get to.