Before You Sign Up For a Coding Class, Do This
Find out how to optimize your website to give your customers experiences that will have the biggest ROI for your business. Register Now »
This is a pretty common question and there are generally two different ways to tackle this. The first way is to ask a question of yourself: what exactly are you trying to build? If you know exactly what kind of app or website you're trying to create, your answer might be a simpler one. If you're trying to build an iOS or Mac app, learning Objective-C and XCode are the way to go. If you're trying to build an application for the Android platform, then I would suggest Java and the Android SDK. If you need to build an awesome website for your business, learn HTML5, CSS3, PHP, and it's also good to know your way around WordPress themes.
If you want to build the next amazing SaaS (Software as a Service), you'll probably want to get started with HTML5 and CSS3 then jump into Ruby and then Rails for rapid prototyping. The best part about this approach is that your motivation is to finish whatever project you set out to finish, so hopefully this will help you structure your learning a bit more. For instance, if you're building a basic database driven application that can store user information, you'll know that you have to learn about database theory and how to enact a basic user authentication scheme to sign users up, in, and out. The parts can be broken down fairly easily.
The second approach to the question is the more general one. You're interested in programming because you heard from a friend that it could be a really cool thing to check out. Maybe you've always wanted to know more about it, or you think it will help you professionally to understand it better. In this case, I'd recommend starting slow so you don't get overwhelmed. Start with HTML and CSS and then graduate to a fun language like Ruby or Python so you understand the basic tenets of programming. Both of these languages are fairly beginner-friendly but also allow for robust and deep use later on if you decide to delve further into coding. Also, the concepts you learn will be transferrable to other languages and technologies you may want to learn in the future.
The most important thing with both of these approaches is not to get overwhelmed. There will be times when you're frustrated beyond belief by a certain problem. I encourage you to take a break and come back to the problem later with a fresh perspective and nine times out of ten, the answer will be there for you. Also, don't forget that no programmer knows everything. "Google is your friend" is a phrase I often say to my students. There are a ton of great places to search for answers online. The most important thing is just to start learning.