First things first, in order to make a mod you'll need to know Java. Java is a programming language(not to be confused with JavaScript), and a good starting point to learning Java is here.
After you've read through that and get the idea of programming, you will probably want an IDE(Integrated Development Environment), although it isn't required. A couple of popular IDEs for Java are NetBeans, Eclipse, and IntelliJ. I personally use and recommend Eclipse because it works right out of the box with MCP.
Alternatively, you can code without an IDE using your favorite text editor like Notepad++, Vim, or even the default text editor that comes with your OS like Notepad, you just won't have all the extra features an IDE brings(a lot of which you probably won't even need if you're a beginner programmer).
Next, you will need MCP(Minecraft Coder's Pack), which can be found here, extract the contents of the zip into a folder and read the README-MCP.txt file inside of the docs folder for further instructions.
Now, listed below are a few recommended Tutorials, I highly recommend you use Forge in your mods, as it insures maximum compatibility with other mods.
Creating Mods with Minecraft Forge by Methuselah96
Modding from Scratch by mDiyo
Advanced Modding Tutorials by TheInstitution
And for when you're ready to make the dive into developing a mod for SMP: Forge Networkmod and FML(Forge ModLoader) and how to port from MLMP by AtomicStryker
Now, when you're done reading all that, if you have any questions, feel free to ask them in this subforum, but PLEASE make sure it wasn't already answered in one of the tutorials, or forever regret the day you earned the dreaded pink name.