Ok, get this, getting good at jiu-jitsu is simple... it's just not easy.
This is how you get good...
1- train as much as you can
2- listen to your instructor
3- always try new things
1 is pretty self-explanatory. The more you train the quicker you will improve. I find that for novices there is an exponential rate of learning, because they are starting from zero knowledge and every little thing they learn will help them in multiple positions/techniques. So when you start, if you train every day for a month you will find that there are much more experienced white belts who you can now tap. This rate of learning drops off eventually though, and that's the point you have to make sure you train in a way which you will improve the most. It should go without saying that 'train as much as you can' means you need to do full resistance sparring a lot! Drilling and light, more technical rolling have their place, but full sparring is where you truly learn jiu-jitsu.
2 sounds obvious but it's surprising how many people I see who don't listen to advice given by their instructor(s). The people who improve the quickest are those who ask their instructor for help on something, then listen to the advice and try to put it into practice. If you ask questions then second guess the advice, or think you know better for some reason, don't expect to get much better.
3 is probably the most important. You have to always try new techniques. This especially means you should try to use the techniques you have just learnt in the rolling session afterwards, even if it's something you think might not work for your body type or whatever. If you're rolling with someone you can dominate, definitely use it as an opportunity to give it a go, and on anyone else try it out if you end up in the correct position for it. Also, just try stuff you think might work... if it doesn't work you still learn from it. If you never try anything new you will just get slowly better at the small amount of stuff you use, but if you always try new things you will constantly learn and improve your overall knowledge of jiu-jitsu. Each technique is not a separate entity, nearly everything has cross-over... you might realise how important one detail of a technique is and then suddenly realise that's why another technique hasn't been working on anyone.
I didn't include it as a separate point because I think it falls under no.3 but you should also try to roll with as many different people as possible. People who kick your ass, people who's ass you can kick and people who will be a tough and even scrap. People bigger than you, smaller than you, the same size as you. Strong people, weak people, tall, short, fat, muscular... every option will give you different challenges and force you to learn to improvise and make adjustments to techniques/tactics. My last blog post is also relevant to this, check it out here.
So now you know the secret of getting good at jiu-jitsu, and it probably feels like it sucks because there are no short-cuts and no easy ways of getting experience. That's jiu-jitsu though, it takes a lot of training to get really good at it and it's tough because you have to go through a long period of just getting beaten up every session... but as I've said before, it's the same for everyone.
There are other things you can do as well, like cross-training in other arts (judo, wrestling), physical training (for strength, flexibility etc) and also competing is an excellent way of helping you improve. I'll cover these things in the future though :)