What level are you at, and how far did you come with lessons? It's important that you sight-read pieces that are below the level you are working on. This has been discussed here before, and I often feel that the first two years of learning an instrument are crucial for whether or not one develops the ability to sight-read, and many students get away with reading poorly. I am very particular about this in my own teaching and have been using a method that aims to develop reading, starting from the first 3 or 5-finger pieces in one line and carrying on to pieces in both hands. I used this with John Thompson's books, which admittedly has its weaknesses (e.g. very few pieces with polyphony), but it can work for most pieces. If you are fluent reading single lines in both clefs, I would suggest getting a very easy book, like John Thompson's first grade book, and working very slowly to make sure your eyes are always ahead of your hands. If you're interested, here are the steps:
For single-line pieces:
1) Survey piece visually; mark the phrases (especially important for pieces starting on an up-beat) and write in breath marks after each phrase; compare the phrases visually and try to figure out the form (e.g. AB, ABA, etc). If necessary, when there are complicated rhythms, dots, etc, draw a circle around every beat
2) Clap the rhythm while counting to the smallest subdivision (e.g. 1& 2&, or 1e&a 2e&1)
3) Clap the rhythm while counting only the pulse out loud (1, 2, etc)
4) Say note names aloud (better in do, re, mi, makes for easier speaking and singing, but also possible in C D E) while clapping the rhythm
5) Say note names while clapping the pulse
6) Sing notes while clapping rhythm
7) Sing notes while clapping pulse
(If there are words, add here: speak words while clapping rhythm, speak words while clapping pulse, sing words while clapping rhythm, sing words while clapping pulse)
8) Find your hand position
9) Play and count to the smallest subdivision
10) Play and count pulse
11) Play and sing notes
12) Play and sing words (if present)
Before every step of the above, count two "empty" bars out loud with the smallest subdivision (e.g. in 3/4 and in a piece starting on the 3rd beat with eighth notes, count 1&2&3&, 1&2& PLAY)
For pieces in two staves, assuming RH is the melody line:
1) Survey piece, mark phrases, find form
2) For every phrase
(4 bars or 8 bars):
- Do all the steps for the LH, as necessary (e.g. you can skip clapping rhythm if it's simply all quarter notes, or singing if you have chords).
- Do all steps for the RH, as necessary
- Per phrase:
1) Play the LH while silently reading the right hand (in your mind)
2) Play the LH while speaking the RH rhythm
3) Play LH while singing the right hand melody
3) Play the LH while "ghosting" the right hand (playing without pressing the keys)
4) If LH is also a melody, switch roles for steps 1-3
5) Play the LH and the RH together while singing the RH
6) If necessary, repeat ghosting step
If LH has the melody, always start with the supporting (accompanying) line.
Do this for the next phrase.
This is still a work in progress, and it is of course flexible depending on the piece, with more or fewer steps as necessary. The point of these steps is to train your eyes and your mind to see and hear vertically as well as horizontally and to lead your fingers. When you play the LH and sing the RH, you are necessarily reading both at once- something you can get away with not doing if you play each hand until your fingers memorize it and then try to put them together, something many students unfortunately do. Very important is chosing a tempo that is slow enough for you to be in total control, making sure your eyes are ahead of your hands.
This can mean excruciatingly slow, but when your mind is simultaneously doing all of these tasks, it's hard to go slowly enough. If you are able to follow a metronome, when the tempo is enough to ensure total control and no panic and you master the reading, go 4 clicks up. If you persist through 3-4 tempo increases, you will have already improved your reading.
Of course there are lots of exercises you can do to get to know the keyboard topography better (e.g. practicing scales, arpeggios and chords with eyes closed). If you have weakness in reading the bass clef, I recommend Dandelot: practical manual
for reading clefs. It woks through all clefs, but you can do the exercises for the treble and bass clefs.
To remedy fingering problems, practicing scales and arpeggios helps. But the best way to learn is to play lots of music. So go through as many scores as you can and work through them with the curiosity to get to know more music- the more patterns you encounter, the faster you will recognize them in scores. Others here have recommended excellent collections. Choose scores that are well below your "playing" level, but the moment it gets easy or comfortable, make sure you challenge yourself. Listening to lots of music (not while reading
, but on the side, and not for the pieces you're sight-reading) is also very helpful, because your mind will accumulate a vocabulary of patterns and rhythms and sounds that will make it easier to hear the printed notes on the page.
I agree that it takes a long time. For the past two years I've been working on score-reading, and my teacher told me to expect good improvement after daily work for 1-2 more years (after spending the last 1.5 years on the basics- old clefs, transpositions, voice crossings and textures up to 4 lines). I'm doing 20 minutes a day, more on a good day. Here, too, I use elements of the method above and I use the metronome- not to keep tempo, but to make sure my eyes are taking in everything and that I'm reading ahead (e.g. never playing a chord without having enough mental time to read all of the notes, from bottom to top).
Sorry for the long reply. Good luck to you!