The high school I attended was for kids gifted in math, and it had more programming classes then the regular high school, which is good because that's when I found out that, although I loved math, programming was much more fun for me. Also, unlike mathematics, I was beginning to realize that, given enough time, there was no programming task I couldn't solve. And so it begun for me... These days, I always say I'm lucky that this job pays well, because I'd be doing it even if it didn't. I love being a CS engineer/consultant, because almost every day is different, the tasks are so versatile that even if you are brilliant in one area of expertise and do something quick and elegant one day, the next day you may have to start working on something you know so little about that you feel like just finishing the university all over again. The job is good for the brains and good for the ego :) It teaches you that even if you feel immensely sure of yourself in some areas, you have so much to learn in others. It teaches you humility.
That being said, seven months ago I gave birth to a baby boy and after a few weeks I realized - being an IT professional prepares you for parenting! I know, it sounds strange, but hear me out :)
When a baby starts screaming for no apparent reason, people around you enter a state of a mild panic but what do you do - you start "debugging" the little one, calmly, because you did debug things on production when managers, customers and maybe even some colleagues were panicking. So, in a way, you've been there. The fact that you are calm actually soothes the baby and the grown-ups around you, and you try things out until you find the right "solution", although with a few weeks old baby the algorithm is pretty simple: “Are the diapers full? Yes - you know what to do, No - Is he hungry; yes - feed him, no - does the tummy hurt; yes - place a hand on it and keep it warm, doesn't work? - ..." Well, you get the general idea.
Next - people tell you horror stories about little ones waking up in the middle of the night. What do you do? Well, you've spent your fair share of sleepless nights working on something important. You know for a fact that although you will feel tired, you will be able to handle things because everything around you is quiet and peaceful and, to be honest, there are some things you feel you can do with your eyes closed. So, instead of fussing about being woken up for the second time in 5 hours, you do what needs to be done and enjoy the "work" and the atmosphere and the fact that you have enough time to do things the right way.
That brings me to the next similarity: if you don't do everything according to "best practices" from the scratch, sooner or later you'll have to fix it. So, since unlike the actual job, you do have enough time to do things right, you don't complain that there are some steps you need to repeat every few hours because you know that it will be good in the long run. Or even short. Think of it like this: I have enough time to write unit tests AND do the configuration properly AND learn something from this that I did not know before. Sounds like a project you'd like to be involved with?
Of course, there are those moments when you have to present a demo and, for some reason, everything that worked for days and only like an hour ago, suddenly slows down or stops altogether. If you're lucky, you know the code inside out and know what to expect. If not - you were smart and you prepared screen shots for everything (you did, didn't you?). Same with little ones, when a doctor asks you: “Is he able to support himself on his hands while lying on his stomach?" you say, with utmost certainty: “OH, yes, of course, for weeks" and that's when the little one just falls flat on his stomach and starts drooling. Luckily, your phone is full of pictures and videos of your child doing what you said it could, so you can show it to the doctor. The doctor, at this point, probably thinks you are a little bit strange, but you are so accustomed to handle things on the fly and verify that the work done by the team up to this point is good (and to agree what the next steps should be), that you will show those pictures and really not care about the funny looks :)
So, what am I trying to say, actually? Well, it's this - to all the women who code, I understand why you're doing it and no, it won't make you any less of a woman, if anything, if you do decide to have a child someday, your work has actually laid a pretty good foundations for you to do it right, even if some people tell you all the time that you spend too much time working or caring for work. Even if you decide not to (I've had my first at 36, which almost everyone thought was "late"), this job will give you the training in perseverance and curiosity and so many other good things that you are lucky to do it. And you know what, the stereotypes are wrong, I am actually skinny, own a bunch of stilettos I love wearing and not the mention the amount of makeup I own and my colleagues don't ever think less of me because of that. I just sometimes might hear: “The pink of your lipstick matches the pink of your shoes. Might I see if the font in Eclipse you're using is pink as well?" :)
So, one last thing that's great about being a woman IT professional - you get to work with men from IT and we all know how great they are!