Yes, that will target the first child of the <header>, no matter what it is.
what if inside a header you have <a> and two <ul>'s??
how do I refer to the FIRST <ul>??? (2nd element inside <header>)
header ul:first-of-type will hit the first <ul> inside <header>, regardless of whether it's the first element or there are other children that come first.
The problem with that approach is that you need to know in advance how many older children there are, which makes it difficult to create a general stylesheet that will work flexibly with different content.
header ul:first-child will only target a <ul> that is the first child of the <header> ... if the first child is not a <ul> then it won't apply at all.