Community colleges, tech schools and online programs offer certifications and classes that will help you get a job as well as teaching you programming. An advanced degree like Computer Science is not always necessary, but could help to get a full time programming job.  (A lot can be said for having one-on-one time with a teacher or programming expert, something that isn't always available with online sources.) Classes can get expensive, so weigh the benefits. If programming is just a hobby, classes may not be worth the time and money. If you want to turn programming into a career, classes can give you a big boost (but again, it's far from necessary if you have the talent). Beyond simply learning programming languages, you will benefit a lot from logic and mathematics classes, as these are often required for advanced programming. You don't necessarily need to learn this at school, but classroom settings can help.  Programming involving physics calculations and other simulations requires a strong understanding of algorithms and models. Logic is the fundamental basis of programming, so understanding logic and processes will help you problem-solve when you are coding. Knowing advanced math isn't required for most programming, but the knowledge can lead to benefits and optimizations. Once you've got a good grasp on your initial language, you can start to branch out. Find another language that complements the one you know, or pick a language for a specific job that interests you. Complementary languages, such as HTML and CSS, are often the easiest to learn.   Java is one of the most popular languages, and there are often lots of opportunities for Java developers. Java can run on a huge variety of systems and has innumerable applications. Java is used for Android applications, one of the fastest growing markets. C++ is highly recommended for developing video games. Learning how to code in Unity (a widely used, low-cost game engine) and UDK (the code for the popular Unreal engine) can help open some doors, though they aren't as useful outside of the video game industry. If you want to make iPhone apps, Xcode and Objective-C are going to be your primary tools. You'll also need a Mac, since Xcode can only compile on a Mac.  Python is a server scripting language that is one of the easier languages to learn. Python is used for web services such as Pinterest and Instagram, and is simple enough to learn the basics in just a few days. You will often be faced with challenges while programming, especially when it comes to hunting for bugs or implementing a new idea. You'll have to learn to be satisfied with achieving small results rather than solving a whole puzzle at once. Patience leads to more effective code, which will lead to better-performing programs and happier colleagues. .  If you have multiple people working on a project, you get multiple viewpoints on how to go about it. Working on teams is virtually unavoidable in the business world, so unless you're planning to develop everything independently, be prepared to work with others. Work as a volunteer designing websites or writing desktop applications. A part time job with a small company can lead to opportunities to write code for websites or simple applications. There are countless communities and gatherings of developers that can help support and inspire you. Look up local programming conventions, participate in a hack-a-thon or game jam (timed events with a common theme), and sign up on some programming forums to start expanding your exposure and network. It is estimated that it takes about 15,000 hours before you can be considered an expert in computer programming. This is years of applied practice. True mastery of programming will come only after you put the time in to practice and become proficient. Try to spend time programming every day, even when you're not working. Programming in your free time can lead to breakthroughs and new ideas.
Take classes. Expand your knowledge. Learn more languages. Be patient. Learn to work with others Get a job where you can practice your coding skills. Connect with other programmers. Practice, practice, practice.