I think you should read a bit on C first, because C is more 'bare-bones' with it's syntax, which (starting off as a beginner to programming as a whole) can be a good thing. Learn about functions, different data types, structs, pointers, header files and preprocessor directives, different forms of control such as loops and conditional statements, etc. But at the same time, read about C++ and C#. Seeing the differences(and similarities) between the languages can help you see the purpose and significance of certain things, as well as help you with understanding the syntax. Some people have an easier time with a BASIC syntax (BASIC is a language), and if you prefer BASIC then go with either Microsoft's Small Basic, or Microsoft's Visual Basic. I myself hate the syntax of BASIC. A typical program for a beginner is the "Hello World" program, where you make a program that outputs the words "Hello World".
In C, Hello World would look something like this:
Code:
#include<stdio.h>
int main()
{
printf("Hello World");
return 0;
}
The first line is a preprocessor directive that includes the file "stdio.h" in your program. The file extension '.h' denotes a "header file", which is basically a file with code in it that you want to use in your program.
int main() defines a function called 'main' that returns an integer(that's what int stands for).
A function is a block of code that you can call in your program.
printf("Hello World"); This line calls the function 'printf' which is defined in stdio.h(thank Zeus for
#include, eh?)
return 0; All functions, except for those of type void(int is a 'type'), return a value. In this case we return 0 to tell the operating system that nothing went wrong
The braces(These '{}') denote a code block. Between the braces is where the code you want to run goes.
In C++, this is very similar, but with some differences.
Code:
#include<iostream>
int main()
{
cout << "Hello World";
return 0;
}
This time, we include a different file, called iostream(no file extension, though older compilers may have .h).
cout << "Hello World"; This is a bit different from a function call. cout is something called a 'stream', conceptually similar to a stream of water.
Using cout, we write to the console similarly to what we did with printf in C. We write the string "Hello World" to cout.
I'm far from a professional, so you should definitely get a book or two.
The very best thing you could do is buy a book(as in paper, no e-books), as tutorials aren't typically written by people who are paid to write academic material. It's also been proven that humans learn better when reading from paper as opposed to a screen. "Sam's Teach Yourself C++ in 21 Days" was the book I started with, and was a great book for just starting off. Another one is "C++ for Dummies", pretty good book. You'll find that when learning C-style languages(C came first and stood the test of time, so it is it's own damned style), your knowledge will translate very easily from language to language. Java, C#, C, and C++ are all good languages.
My favorite language is C#. I have never read a book on C#, and I'd say it's the language I'm best with. I learned C/C++ first, and C# was similar enough for me to jump right in and learn on my own(with some help from google, and good 'ol mpgh). C# was meant to be easy to learn, easy to understand, and easy to be productive with. I'd have to say Microsoft finally did something right with this one, heh. When you get to the point where you're learning about object-oriented stuff, I suggest trying your hand at C#. I'll say it again, I'm no pro(not even close), so my explanations of the code above might be quite a bit less informative than what a book would tell you. Get a book, whether you have a public library, or you have to buy one, just do it. E-books and tutorials written by leecher scum just don't cut it. They make good references, though.
Oh, also, just because a good 90% of everyone hates BASIC(Visual Basic in particular) doesn't mean you should completely disregard it as a language. As Hassan pointed out, it is very popular and for a good reason. It's got a simple syntax, and it's productive. It just has a bad reputation because it's the stereotypical "twelve year-old homosexual leecher fag" language. Some people will laugh at you if you tell them you program with Visual Basic, but it's not like it used to be. Most languages are all capable of similar end results, though many are created with a specific purpose in mind. Learn a general-purpose all-around language. If you like BASIC, but find it too hard, try Small Basic. I didn't provide links because this information is all readily available with a quick google search.
Edit: (almost forgot)
Don't just read about programming languages. Learn about hexadecimal, binary, how bits and bytes work to form different types of data, how a processor runs code, how a hard drive stores and retrieves data, etc. This will add to your understanding of what's going on. Once you get into programming you will become addicted to knowledge, and always crawl back for more.
As for writing game hacks, C# and C++ both work for it. Hell, even Visual Basic can pull it off.
And for a career, it depends on what you want to do. Game development would lean more toward C/C++, web development would have a shit ton of languages that you would want to know. HTML, CSS, JavaScript, C#, Visual Basic, XML, SQL, PHP, ASP and ASP.NET, JSP, and more. Granted, most web languages are a bit simpler than something like C++.