I do not remember teaching my oldest son how to tie his shoes. I know we did because he does it on his own every day. However, I don't remember how old he was nor how or when we did it. With my youngest son, the process was much more difficult and therefore, memorable. My youngest lacks fine motor skills and loves velcro so I knew shoe-tying was not going to be fun. This is how we did it.
We started with a 1/2 inch wide ribbon and his favorite stuffed animal. On the first day, I showed him how to tie a bow on the neck of his stuffed penguin. The next day and for many days after that, I helped him make a bow, slowly and step-by-step, trying to use the same words and steps every time. We tied bows on different stuffed animals once a day about 4 days a week for several months.
After he mastered stuffed-animal-bow-tying, we moved on to a new pair of shoes -- the ones he would wear when he grew out of his velcro-tennis shoes. I sat the shoe in front of him while he sat on the floor (as if it were on his foot). I showed him how to tie a bow on this tennis shoe. He practiced on this shoe for a few months. (I added "Shoe Tying" on his checklist for school.)
Once he got shoe-tying-on-a-new-shoe-that-is-not-on-the foot down, we put the single shoe on his foot and practiced tying it. We did this for a month or so.
One day, he could not wear his old shoes because it was raining. He had put off wearing those new shoes for so long that there were holes in the bottoms and sides of his velcro shoes. Alas, he had to wear his new shoes. It took a while, but he tied those new shoes!
We still practice once or twice a week, just to stay in practice. It's sandal season here, and he loves his velcro, but he can finally tie his shoes!