I should start this WU by pointing out that I am not a good guitarist and have only just started learning to play. "How can I have anything to say here?" You ask. Well I am currently learning and I know that what I find very useful, others may also find useful.
The best way to learn is from another person. If you can get professional tuition, do it. Your tutor will (hopefully) be able to answer all you questions, spot your mistakes before they become bad habits and suggest ideas to help move you forward.
If you cannot find or afford a professional tutor, your next best bet is a friend who plays or is learning to play. They can show you new things and give you tips and just be there to jam with. Learning is much more fun if you have someone to do it with. Besides, playing by yourself is just musical masturbation. Music is to be shared.
Thirdly, look for resources on the internet. If you want to learn specific songs, there is a vast repository of guitar tablature online. Some of the best is in the form of "powertabs" which are tabs, often combined with musical scores that can be played back and edited with a program such as Powertab Editor. There are also more basic tabs in text file format. These range from simply stating the names of the chords, to full chord diagrams and tablature complete with lyrics. Note that many of these are simplified or even inaccurate, and you may need to look at several and judge for yourself which is correct. Currently the largest collection of tabs is the On-Line Guitar Archive (OLGA) although there are many others, as well as websites that search multiple archives for you. Google is your friend. Search for the songname and either "tab" or "powertab."
When using tabs, it often a good idea to listen to the actual track as well. If you don't own a copy, you can download one from a file sharing network although this is illegal. Other online resources include lessons, chord dictionaries, metronomes and guitar and accessory suppliers.
On a slightly more practical note, learning the fretboard is very useful. Fret the E string (the thickest one) at the first fret (counting from the head of the guitar) and pick the string. This note is an F. If you instead fret the second fret you will hear an F# (F sharp) which is a semitone higher than F. The third fret is a G, then a G#, then A etc. Note that there is no E# or B#. After E is F and after B is C. Also, a note a semi tone higher than an A can either be called an A# or a Bb (B flat) and similarly for all other sharps and flats. Carry on playing each note in turn. By the time you get to the 12th fret you should be back to E, which is the same note as when you don't fret the E string at all but an octave higher.
Going back down the string, towards the head, each fret will be a semitone lower than the previous one. Try naming all the flats instead of sharps, but remember that there is no Cb or Fb. Do this for each string (EADGBe), saying each note as you play it until you have memorised them all. Try using alternate picking (down, up, down, up...) and playing in time to a metronome.
It may seem counter-intuitive that going up the neck of the guitar towards the head the notes get lower and that strings positioned lower on the guitar are higher. You have to get used to thinking in terms of pitch. When a musician talks about moving up a fret or string they are always talking about pitch.
However frustrated you get, just remember that practice makes perfect. Enjoy your music.