Creating a UI

Hi, wasn’t sure if this belonged to this section or the “Game Mechanics” section, as I think it can cover both.

Anyways, I was wondering, how does one go about the UI, more specifically, drawing it. When its drawn and how.
I’ve got an idea on how I might go about it, but I would like to here your opinion.

I would use an external library, but I’m “recreating the wheel” for learning experience.

So what I’m thinking on how it’s, each element is a texture on a quad, if there’s the UI element, the quad is just rotating, or moving or what ever.

Here’s an image, roughly highlighting the quads of what I think is all the separate elements of the UI in one of my favorite games. Fallout 3
Elements highlighted in yellow boxes, btw not a screenshot from my copy of Fallout 3, quick pull off of the internet.
Might need to view full size to see the lines.
For full http://i.imgur.com/QXbuKQG.png

As for how, I imagine that I just render it like I normally would, binding the textures, updating position uniform if need be and binding the VAO and so on.
But do I do this after I render the game and do what ever post-processing? Or at any stage in between or before?
Also, do I create a separate shader program and use it at this point, or set up some sort of sub-routine in my main shader?

A little extra note, I do know about the different types of UI in games. Diegetic, Non-diegetic, Spatial and Meta according to http://www.gamasutra.com/view/feature/4286/game_ui_discoveries_what_players_.php?print=1, personally I don’t know the names by heart.

Thanks.