For my 1000th post, I decided to give the story on how I started playing Go, from before learning of the game up until reaching SDK. Following that, I'll leave a few pieces of advice that helped get me through the SDK ranks.
My father taught me chess when I was five. When I was in elementary school I would play chess competitively, and once a month my mother would take me to the local "Chess and Math" tournaments for other young chess players. While I was only ranked slightly above average at these tournaments, I could dominate every opponent at home and in my school, and so the long droughts I would face between playing any challenging game eventually lead me to quit playing chess.
Fast forward to late November 2008. I was looking for a new game to compete at, and while reading some Wikipedia articles on Combinatorial Game Theory, I stumbled across Go. After reading the article, I decided to try to play a real game of Go against a person at the only place I knew of - Yahoo Games. Armed with all the knowledge Wikipedia had offered me about ladders and nets tucked away in another Firefox tab, I proceeded to get slaughtered by someone who actually knew what they were doing.
After that, I decided to focus on playing bots and my family until I had learned enough to go back online. I focused for a few days on beating the Atari-Go-playing-computer
on this site. I also played Atari-Go with my family using a chess board and some green and blue tokens. By the time I could beat the online bot while playing as white, Christmas had come and I received a $20 Go set from my parents (it's still the only 19x19 board I own). I then focused on improving by playing my father (no one else in my family was even remotely interested in learning at the time) and by playing against GNUGo. After all, Wikipedia had said computers "suck" at Go

.
By April, my dad had quit playing me, saying he couldn't get his 45-year-old mind around the game. I was getting better by this point anyway and could always snake a live group farther and farther into his territory to win the game. So, I decided to back to KGS (which I had visited once before) and play there some more. I first played a ranking bot to try to see what rank I should be aiming to play, and having beat Butterbot (20K) I launched my first real online game in months.

Anyway, my interest lasted for a couple of months, during which I was able to move from 20k to 12k. Then, my playing slowly dwindled away until a friend from my church introduced me to one of his friends,
Kerby, who was 3k and lived nearby. We started meeting up for weekly "Go club" meetings (though we struggle to this day to find an interested third member

). He was obviously much stronger than me, and despite me playing with a high handicap he won every game the first few weeks. He was particularly strong at forcing me into very ugly dumplings and ridiculous empty-triangles. In fact, I still make horrible shape against him quite often, only now I can at least fight back

. But through playing him I learned a lot and I attribute my rather quick progress from 12k to 3k in a large part to playing him frequently.
For anyone stuck in the 5k+ range, here's a few pieces of advice which worked for me:
1) Learn how to read (Do tsumego).
I, like many others, found tsumego very boring for my first little while of doing it. But there is absolutely no substitute in Go for the ability to read, and I know of no better way to develop your reading ability than by doing go problems. I was given an extra copy of Volume 1 of
Lee Changho's Tesuji Problems by Kerby when I was around 8k, and struggling to solve the problems helped me immensely.
2) Learn how to fight.
I had a huge epiphany once I had it stressed to me that a lot of Go is about strong groups versus weak groups. It is important that you protect your weak groups and attack your opponent's weak groups. Attacking successfully is both difficult to explain and to grasp, so see point 3. As a general rule, if you can either seal in your opponent or make him run into the center without eyes, you should strongly consider doing so. Sometimes you'll screw up, but that's okay. You can learn from your mistakes.
On a related note, I've heard a couple people say lately that they get so frustrated at the overplays they face on Asian Go servers. They note that the players have no sense of joseki or fuseki and just "smash" stones on the board until you lose. While that can be frustrating, studying joseki and fuseki is not the method to beat these kinds of players. That's like a Grade 3 schoolboy studying karate so he can beat up the Grade 7 bully. The karate may help him down the road, but it won't get him anywhere close to beating up the larger bully. You need a Grade 6 or 7 body before you can properly fight a Grade 7. Likewise, you need to be able to read and fight at a level near to your opponent for joseki and fuseki study to pay off.
3) Play someone stronger than you.
By playing someone stronger than you often, particularly in person if you can, you can have your mistakes properly punished so that a) you identify them as mistakes, b) you eventually stop making those mistakes and c) you can eventually punish those mistakes in others.
4) Play out commented pro games.
While this is optional, you can get a good sense of proper moves by doing so, and the commentary will quite often reveal something to you that you've never thought of before. I recommend
The 1971 Honinbo Tournament or
gocommentary.com.
Anyway, hope you enjoyed reading, and maybe this advice will be useful to some of you.