Programming is fun. Programming is satisfying. However, programming, like law or medicine, is one of those professions where you are tacitly compelled to work long hours (50+ per week) for salaried positions. If you don’t then you are relegated to the sidelines, which take the form of boring projects, unprestigious organizations, lower hourly wages, censure, and (in economic times like these) unemployment.
There is no shortage of work for those willing to put in 50+ hours of work week in and week out in programming, law, or medicine. There is a shortage of work for those only willing to work regular hours because they have other preferences and obligations for their time. Few programming shops run like Fog Creek or 37 Signals in with respect to working hours.
From my observations, a disproportionately and noticeably high number of successful programmers have weak family/community relationships, poor health (usually in the form of obesity), and narrow social circles. This is bad news for those that value these things. (I am not saying that all programmers have all of these, but the number is noticeably high, and I am one of the fat ones). Putting in 12-20 hours of work a week on top of full-time hours means that you are not spending that time developing family and community relationships and your health. Furthermore, few programmers make the kind of money that would attract a mate in spite of the long hours (unlike medicine, law, or Wall Street). This does not make such programmers bad people or losers, any more than is a programmer who works regular hours (until he is laid off in a downturn) but who develops family and community relationships and keeps his health.
It comes down to personal values and choice. If you value family and community relationships and your personal health, then programming in salaried jobs is a tough and undesirable career. However, if it is your sole passion and you don’t value these other things, then by all means there will never be a shortage of work.
I know doctors, lawyers and programmers who have taken a hit in their careers because they won’t work more than regular full time hours, and they have consciously chosen to pursue family and community relationships and their health. They’re all capable, but they are also healthy and obviously participate in family and community.
As a programmer you probably enjoy your job. As long as you are able to choose a job that balances that with your aspirations of family/community relationships and health, you will want to stay with it. However, if you are forced to choose between one or the other even though you value both, you should probably get out, or find something that would make you happier. Or you could choose the career and sacrifice the health and relationships.
For Joel, I would bet that $75k is a low wage for Manhattan given the cost of living. Also, most software folks don’t invent, design, and engineer the future. They actually fix what others have invented, designed, and engineered. Still fun, but not as exciting as the former.