Oh sweetie! You are not alone at all!
My oldest will be 18 in April... he's so independent it's not funny. But, you know, I have come to realize what a great guy he is. I did a good job raising him. I was a single mom to him and my other son, for 4 years before I met my husband and he came into our lives.
My oldest and I have always been very close and to this day he walks up and hugs me...almost every day. He is polite and considerate. He holds doors open for others, he gives up his seat to ladies and elderly folks. He would do just about anything for anyone. However, he is a very big guy! He's about 6 foot tall and weighs around 285 lbs. He dresses in all black and wears a trench coat most of the time...so he can look scarey to other people sometimes. But when they see what kind of guy he is... they are shocked. I take a lot of pride in that.
My other son is 16 and now is expecting a baby in May with his girlfriend. While I am excited about another baby in the family, I am also worried for them. It's going to be tough on them having a baby so young, they want to go to college still and get married in a few years. Talk about growing up fast.
But, I also know he's going to be a great father. He has also been raised like my oldest... polite, holding doors for others, giving up his seat, etc. He and his girlfriend are talking about colleges and going to Kansas for one... I am feeling the loss right now...not only for him, but for her and the baby too. (She lives with us now, shares a room with my daughter because of issues with her family).
It kills me to know that one day they will move out on their own and that the baby will go with them. I'll lose 3 all at once.
What you are feeling is totally normal... but relax, You still have a few years with him at home...so enjoy it. there is plenty of time for you both to spend together and even though he's not a "child" anymore... he still needs his mom. He always will.... it's just not in the same way as before.
Be rpoud of the man he is becoming... after all, you helped make him that way. ;)