That's a very broad question and depending on what kind of programming you're interested in will help you select the kind of language you want to learn.
There are literally dozens of programming languages out there suited for all sorts of purposes. Some languages aren't technically "programming" by the strictest definition, such as HTML and JavaScript but we'll include those in our discussions.
Programming essentially starts with a design. "What do you want this program to do?" From there, the design gets broken down into small tasks. These tasks are then implemented in the program where they work together to produce the desired result.
A program is implemented through "source code." This is what the programmer actually types at his terminal at 3AM while he's jittering because he drank 3 gallons of coffee.
The source code is then fed into a special program called a compiler that looks at the source code and converts it into machine code that the processor can use. (There's also another program called a linker, but that's a more advanced topic not relevant to this answer)
Alternatively some programs are never compiled, but rather interpreted by a special code interpreter. A common example of this is web pages using HTML. The web browser interprets the HTML text and displays it on the screen. No compiling is ever done. The advantage of this is that the program is guaranteed to work regardless of which computer it is run on (e.g. Macintosh, Windows, Linux, etc) The disadvantage is that interpreted programs tend to be less efficient than compiled programs.
That being said, let's contine on to a discussion of popular programming languages in use today:
C/C++:
I grouped the C and C++ programming languages together because they are nearly identical in syntax and perform very similarly. The major difference is that C++ supports "classes" whereas C does not. (Classes are an advanced topic not relevant to this answer) Most modern applications today use C/C++ as their programming language.
Java:
A hybrid programming laguage, Java was designed to have its applications run on any Java-Enabled computer, but still maintain the performance benefits of compiled code. It does this by compiling the code halfway into something called "bytecodes" that are highly optimized, but still cross-platform. From there, the Java Runtime Environment(tm) compiles the code the rest of the way for its particular processor.
HTML:
Not technically a programming language, HTML stands for HyperText Markup Language. It was specifically designed for creating web pages. Today, HTML can support 3rd Party plugins (e.g. Quicktime videos), Cascading Style Sheets, JavaScript (not to be confused with Java), and more.
Assembly:
A low-level compiled programming language. Assembly gives direct commands to the processor and its registers. As a result, programming in assembly requires an intimate knowledge of the CPU. Programming in assembly is very tedious, much like building a sand castle one grain at a time. However, because it allows the programmer to directly control the processor, it allows for extremely high efficiency applications. Assembly code is generally reserved for portions of operating systems which require a very fine degree of control.
There are many many many more programming languages in use today. If you like, you may be interested in reading about C#, Visual Basic, Python, Perl, Fortran, BASIC, and Pascal to name a few.