I often go on about self-education, in many different ways: my basic principle is that you should be trying to improve your skills in *some* fashion every single day. Doesn't have to be just raw programming skill -- indeed, it's often best to do this in a well-rounded way. So sometimes I'm learning about programming, but sometimes it's about project or product management, sometimes about usability design, sometimes about my current problem domain, etc. The point of the exercise is doing something that helps you advance your career skills every day.
Folks take this as being about job security, and there's something to that: I developed the habit largely as a reaction to watching several people wash out of the industry after Y2K, and others who have just gradually rusted and become unemployable. But it's just as much about *owning* your career and your life.
Specifically, I'm reacting to more than a couple of friends who have been buried by work, often in ways that I find a little abusive. When I find out that a friend is having to go into crunch mode on a regular basis, that work is eating their life, that it's making them miserable and lonely, my reaction is sympathy -- but also a pretty good reminder that I just don't *do* that. (At least, not any more. I did do that at Looking Glass, for five miserable months of working every single day. Buzzpad was founded by a bunch of LG refugees, mainly on the theory that there had to be a better way to do software development.)
Seriously: when I interview for a job, I am very clear upfront that I work 40-45 hours a week. I try to be reasonably focused and smart in that time, and when a genuine crisis arises you do what's needed to deal with it. But if the crises keep coming, or if you are in never-ending crunch mode, that's a sign of management failure, and I just plain don't tolerate that. And this loops back to the self-education point: I can get away with not tolerating it -- with saying, "No, really -- you need to fix the institutional problem here" -- by being the best.
Plain and simply, you get to be the best by deciding to be, and then working hard and constantly at it. And the payoff is that employers *need* you; that, in turn, means that you aren't at their mercy, and can push back when an employer is turning their management failures into your problem. And this usually improves the company, to boot. Scared employees let employers get away with practices that are, in the long run, detrimental. The 40-hour work week isn't about being *nice* to employees, it's that it is a good sustainable pace for the average person; companies that overwork their staff tend to suffer the results in the long run. By not putting up with "It's a startup, so we all put in 150%!" bullshit, I force employers to develop good habits instead of building a house of cards.
Ultimately, though, it's about owning your life. If you're good enough, you don't have any reason to be afraid of your employer and what they might do. And if you aren't scared of your employer, you're in a much healthier place all around. And while being That Good isn't enough in every field (especially in this economy), it definitely still is in programming: truly top-flight engineers, with deep and broad skills, are still in real demand...