T.K.
I homeschooled my oldest few for a few years until life sort of made that impossible for me. I started with my oldest when he was two. He was doing some reading by the time he was 3 so I know that starting early can be very effective.
First of all, I purchased/made a few things. I purchased posterboard and made a poster with capital and lowercase letters on it. Each letter group "Aa" was a different color (as much as possible). I bought a bag of "river rocks" at the craft store (glass semi circles would work too I'm sure), and I made labels for EVERYTHING that stood still in my house (come to think of it, maybe I shouldn't have stopped there, lol) I labeled things with clear (and correclty capitalized lettering) AND right after the word on each label, I drew a picture of exactly what the word on the label was talking about. I used clear tape to completely cover each label and secure it to the table, window, recycle bin...whatever. I also purchased a pre-school work book from the store (they are mostly sold in the office / school supply section - I know Rite Aid and some other smaller stores have them too - near the coloring books) I hung up the letter poster in our kitchen.
Every morning, when we all wandered into the kitchen for breakfast, I would ask as I was getting breakfast "Can someone point to a BLUE letter?" after they had the colors, I started asking about letters (capital first, then lowercase) and then went onto things like "can you point to the letter that makes the "ah" sound?" of course I revisited the previous questions occasionally as well.
Then we'd play for a bit and after awhile come back to the structured learning. Some days we'd work on the workbook, other days we'd work on counting and math with the river rocks. (Once he had counting down we counted them into piles and them put them together for addition or counted rocks out for subtraction and then counted the resultant pile again.
When we worked on the workbook. I tried to explain what we were doing in a way that they could understand. We didn't write down the answer until they got it right (until I could explain it right for them and they actually "got" it) so they could feel the enjoyment of a job well done and NOT feelings of being inadequate or stupid. Fostering the JOY of learning is, I think anyway, the most important thing at this age. If you or your little one is getting frustrated, or running out of ideas - insist cheerfully on a break for a little while. Come back to it when you're feeling better and you as a parent have come up with a different way to try to explain the concept to him. Lead your child to the answer, but try not to give it to him.
During "play" time, make sure you are engaging in a lot of teaching dialogue. "Let's put on your BLUE sweater today!" or "I wonder what this word (on a label) is...I think it's t a b l e table" or "shall we watch cartoons for a bit on our big black square tv?" talk about less and more, about letters, colors, shapes, and talk talk talk about anything else you are doing. Kids love to know what you're doing and talking to them while you work not only lets them feel like part of the process, it teaches and reinforces valuable lessons.
You could try flashcards if you want - I had some, but honestly, the kids learned better and loved it more when I found fun hands on ways to learn things.
Good luck! (Oh, and let me know if you'd like to bring some of your work to sell at the Green Gathering in Port Huron in August!)