This probably isn't what you are looking for but I wish I never learned, or at least never decided it should be my career. A career writing software has a shelf life. Age discrimination is real, software engineer experience isn't valued like other professions. And yes, there are plenty of firms that will hire engineers over 40, the fact remains that there are vast numbers of employers that won't and once you hit the senior/principal engineer in 5-10 years, you plateau. The pay is ok, for now, but the downward pressure on salaries is palpable. Also, it's difficult to be told how well we are paid when a vast vast majority in the software mecca (SF) can't actually afford a single family home with a sane commute. Some people can afford those homes, but it's not the software engineers. The industry is filled with work that just isn't interesting and of the interesting work that exists it tends to go to those that are the most political. We like to think this profession is a meritocracy but it isn't. We are a managed people without a seat at the big boy table and this means we will never truly have the control over our "destiny" we think we have.
If I could do it over again, after graduating with a CS degree I would explore either going to Wall St to grind and retire after 5-10 years, go to a top 10 law school grind for 10 years and retire, go to medical school. Hell, I'd even just do a DO school in the carribean. Sure you get crapped on for your residency, but after that it only gets better and you don't have shelf life.
If I could do it over again, after graduating with a CS degree I would explore either going to Wall St to grind and retire after 5-10 years, go to a top 10 law school grind for 10 years and retire, go to medical school. Hell, I'd even just do a DO school in the carribean. Sure you get crapped on for your residency, but after that it only gets better and you don't have shelf life.