Hello, I am considering software engineering as a career. I am curious about what education it takes and what a person could expect to earn and how satisfying a career people who do it find it to be. I would like to get into developing apps for Mac or Linux or both.
I develop s/w in a research and development environment, specifically air traffic control. I'm biased. You'd do well to study math, and learn the basics of programming. While I code in Python primarily, my first programming language is mathematics. Programming languages come and go, but math will stay with you for life.
For programming languages, Python is very good to learn. It's transferable across the major environments - Linux, the free BSD families, Unix, OS X, and Windows.
You won't go wrong getting down and dirty with a Linux distro. Custom roll your own kernel, play with a bunch of distros, get familiar with the normal Unix and Gnu tools (sed, grep, awk, for instance), and become conversant on the command line. This will help you in an overall *Nix world.
For the Mac environment, I could comment but I'll defer to others. My Mac programming experience to date is nil, having just switched in January.
How much can you make? Here's my company, one of the best 100 places to work:
http://money.cnn.com/magazines/fortune/bestcompanies/2007/snapshots/60.html
From the page, here's what someone could make writing software with some experience:
Most common job (salaried):
Lead Information Systems Engineer $112,656
Is it satisfying? Okay, my job is more than just writing code. I've run research projects. I've influenced how air traffic operates in this country. Yes, it's very satisfying.
In closing, I'll emphasize that a degree (BS) in math is a good way to go.