How Do I Learn About [n]?
provides a place to start, provided that you know what [n] is.
First question to ask you, is what is your end goal (if you have one)? Very few people get into coding just for the sake of coding. You probably have some long term aspiration, what is it?
To give you something of a generic answer, here are a few very common choices:Python:
Probably the most recommend new language on this forum. It has good libraries (A library is already made code that you can use in your projects. This may seem like cheating at first, but it is the only practical way to get things done), forces good habits down your throat, works on all major platforms (Windows, Mac, Linux, etc) and is generally quite swell. It is pretty quick for picking up as well. It is my recommendation unless you reply with what you are looking to do.Java/C#:
Both languages are highly similar, but there are a few differences. Both have vast libraries of code. Both work on different platforms, but not as well as python does (Both support Windows well. Java (apparently) has solid Java support, and lesser C# support. Linux is a mix bag: Java as a language is better supported, but 3rd party libraries (Libraries that are not an official part of the language) seem to support C# more often). The languages are allot more verbose than Python (you generally have to type more to get the same result).C/C++:
If you have have a Mac, throw in Objective-C. These are low level languages. That means the code you produce is more on the computer's terms than your terms. In contrast, a higher level language (ie Python) will hide away allot of details making your task generally shorter and easier. Lower level does have some advantages. A well written program can be quite a bit faster (which generally doesn't matter, but in some cases (games, rendering, etc) it does). By the same logic, you can just as easy shoot yourself in the foot and make something magnitudes slower. In general, the C families do give you lots of places to shoot yourself in the foot. There also tends to be allot of competing coding styles, particularly with C++ (A coding style can be thought of like slang. Even though they are all English, rapper slang is different from guido slang, both of which are different from business slang, all of which are different from internet slang, etc). Now that you are good and scared, C/C++ can be a good place to start as you are forced to learn how the computer is working to become familiar with the language, which can be useful in other languages. In my experience people also have an easier time going from low to high, than high to low. They also have tons of libraries, but the standard libraries are all quite small. As a self taught project, the learning curve is quite steep and you may find yourself less motivated.Lisp:
If you are looking to program just for the sake of programming, Lisp could be a place to go. The language is very different from any other listed, but that is a good thing. It tends not to have the same level of libraries or support, but it is still very worth learning. Lisp has something of a cult following it; as if Lisp will help you reach enlightenment. This
seems to explain it best.
After you make your choice, pick one of the first two links and find a guide to help you get going.
Note: Allot of guides tend to assume you already know how to program, just not that language. Typically, a book targeted at beginners is better in this regard. I would really recommend Python, then following along this.
It assumes you know nothing.
Other things to worry about:Compiler/Interpreter:
This depends on the language you use, you will need a compiler or interpreter. Most (good) guides pick one for you. If it doesn't someone here can help you. For reference compilers and interpreters take the code you make and turn it into something the computer understands.Text Editor/IDE:
In order to actually write your code, you will need an Integrated Development Environment (IDE) or a Text Editor (That's a text editor, not a word processor. They are very different things.). If your guide suggests one, go with it. They often teach you how to use features of the DE. Plus, it will probably help avoid a few headaches. If it doesn't, you will have to pick to go the text editor or IDE route. Text Editors are a program where you can write text (code) into it. It won't randomly change things for you like Word will (a good thing), and it will do stuff to aid in coding (more good things). You will typically have to invoke the compiler/interpreter manual (ie from the command line), and for complex applications you will (well, it depends on the language) have to learn a build system (basically a program that will help you compile very large projects). An IDE takes a text editor, then integrates a bunch of stuff into it. They will integrate a build system (so you don't have to learn that, nor do you have to use the command line to invoke the compiler/interpreter). However they tend to be quite complex, you need a guide to get to learn how to use one. They also integrate quite tightly and generally support only a couple of languages. If your guide does not give you one, ask for suggestions.Debugger:
When you code, you will do something wrong. To err is human, and all that. This will help you find those errors. Some guides help you figure out how to use one of these, most don't. By the time you learn to do GUI stuff, you are ready to learn one of these. Do it. They cure cancer.Source Control, aka Version Control:
This is something you can ignore for a while, but should pick up eventually. Basically, it lets you save different versions of your code. If you are working on something, and completely screw the pooch, you can undo it. If you want to make a big experimental change and don't want to screw up your working copy, it can help you do that. Source control is kinda like a cell phone. Before you get one, you don't understand those people who say they can't live without one; after you get one, you swear you can't live without one. I would pick one up not long after you get the hang of a debugger.
Last, but not least, have fun
. You will start with a bunch of stupid apps that say "Hello, Word!", or tell you what x*2+3 is, but try to have as much fun along the way as you can.Wall of text dual-wields ret paladins and crits for 50,000