Define "as a programmer". There are different kinds of programmers today. Those that learned <insert high level language here>, never heard of what a register is and mostly don't care or don't have the elan to learn what the computer actually does; and those that also (want to) know what happens in behind, know to an extent what the compiler does, how the output looks and what it does, and always strive to extend that knowledge. There are much less of the latter.
There are some requirements if you want to achieve something with OSDeving. You should be or aspire to be programmer type two. You must understand that it has a steep learning curve and you will do a lot wrong until you finally do it right. It takes a long time, with that I mean years, to achieve what some on this board have achieved.
But though it's very hard, it's very much worth it. You will learn a lot about why modern or ancient systems do what they do. You'll learn a lot about the processor of your choice. In the end, you will be a better programmer because you learn about all the nifty little details. You will learn about reading standards, specifications, complying to these. Or you'll be an outlaw and do it your way, just because you can.
That's just my observation.