"I really don't like this industry much anymore. I guess that makes me a bad hacker or something."
This is the 'little death.' Allow me to relate an anecdote.
I grew up loving computers, loving everything about them, how they were built, how they were programmed, how they did what they did. I started out just as the 'personal computer' revolution was getting started, it was glorious, Altair, IMSAI, SOL20, Heathkit. Lots of folks with their own take on what the PC should be. I have spent hours and hours and hours writing my own BIOS code, hacking ZCPR3, making an emacs clone work on CP/M, falling in love with the Amiga and suffering the incurable disease of incompetent management. By the time the late 90's rolled around I was starting to burn out. A lot of stupid things which didn't have to be that way, Microsoft always trying to make their version of something just a bit incompatible and only buildable with their tools. Etc. I was writing some code on a windows box and hating it. I yearned for a simple 'make foo'.
Then I met a 'kid' who was building stuff on Windows and he had the same wonder I had when I was that age, except he didn't complain about visual studio crap because he had been introduced to computers with this as the way to do it. Where I saw re-implementations of the wheel, done poorly, he didn't see anything, they were just the tools you had to use to get to the end point.
I realized with a start that I had lost my sense of 'wonder.' That childlike state where you ignore the fact that something is uncomfortable or irritating because you have so much amazement over the thing itself. And the truth is that if you use crappy tools for a while your muscle memory will figure out how to minimize the irritation. I looked around and saw that people I knew, people who were bright lights of leadership back in the day, were now stuck in an endless cycle of curmudgeonly rant because they too had lost their sense of wonder. I decided to start picking my battles more carefully. (which you can do in a hobby, not so much at work)
I found an editor that I could use everywhere (Visual Slick Edit, now VIM) so that I could have the same editing experience on all my platforms. I spent some time to understand the build system (make, gcc, java, python, etc) to get to a point where not only could I create my own environment I could keep it running across platforms, and began to develop my own set of APIs which I could link through into the underlying platform. The goal was reduce the friction between getting stuff done, and the tools to get things done. I recognized the reward comes in the running of the code and getting it to work as I wanted.
Then I can mostly ignore the crappy stuff. I can joke about how putting a character on screen used to be to monitor the transmitter buffer empty (TBE) flag on the serial port and then write the ASCII character when that flag was 'true', to something which spends thousands of cycles checking to see if this time I want my characters to go right to left, or which code points or font I should use to display them, or how they should be alpha blended into the background of what is on a screen somewhere. And when I come across something that is horribly, horribly broken like using WebCam's in Linux, I try to develop a durable API for talking to video which isn't cumbersome to use, or has feature stubs I'll be unlikely to use. I try to stay amazed that I can capture digitally on a piece of $20 hardware that which used to cost thousands, and in so doing keep my sense of wonder about what is possible.
So, of all the replies in this thread, this one spoke to me the most. I think you're right. Thank you for describing it so well.
I started out a little after you did, with BASIC on a Commodore Vic-20 and Commodore 64, then Logo, then HyperTalk, and so on. I used to have fun decompiling programs and poking them with MacsBug to make them dance for me, and I used to have fun writing my own toy operating system and generally just screwing around. And, for the most part, my tools were simple and reliable.
So that's what I compare everything now against, and it all seems less reliable and more complicated. MacsBug was a thing of wonder and beauty compared to the "debuggers" I have to deal with most often now -- Firebug and GDBp. And I've started working recently on building my own tools, which is sort of fun again, so maybe I'm sort of headed on the right track.
But anyway, thanks for describing it like you did.
I am the child, instilled with a sense of wonder about, well, everything. I got kind of a late start, didn't run into computers until I was starting High School, until my parents gave me an old Pentium II that they had lying around. I'm 19 now, so that would have been 2005-2006-ish. A horribly underpowered machine. I was infatuated. I installed WinXP on it for the first time, I laid awake at night listening to the hard drive wail... an 8GB hard drive. It barely fit XP on it. Over the next few years I did everything I could think of with that box to make it run just a little bit better. I scavenged my house's parts drawer, googling serial numbers on the silicon to see just what this board did, and whether it would make my relic run faster. A few months later, I upgraded my computer for the first time... A Pentium III! A 20 GB hard drive! My world had opened up. I had to have my old data and parts, so I became familiar with the internals of the computer. Eventually I ran out of things to do in windows. I tried the linux thing I had heard about, burned myself a liveCD of ubuntu, gutsy gibbon. Wifi didn't work on the cheap usb dongle I was using, so it was back to windows to me. But I had gotten a taste. A taste of the terminal, and of an operating system that actually let me tinker with things. When ubuntu fixed the wireless driver for that dongle, and I was ready to install it again (after a failed fedora install or 2). After that it was just one software foray after another. Something broke, and I adventured deeper into the file system to fix it. I started to learn how to program. I learned about Arch Linux. I got a Dual Core computer (!!). The rest is history.
I still learn all I can, but my focus has shifted a little. I'm learning to program properly, to make new tools instead of understanding existing ones. I'm learning C and python and haskell and lisp (and looking for more!) and loving every minute of it.
I find it a little bit disheartening, however, the lack of curiosity that my peers display, even my fellow CS majors. To me, the computer is a vastly complex system, just waiting to be explored, and thanks to open source software, I can! But a lot of my peers don't see things that way. I would hazard a guess that part of that reason is that the environment presented to them is not particularly interesting, particularly in a windows or mac environment, where a lot of the details are abstracted as far away as possible. For me the spark of curiosity was ignited when I had a relic of a machine that I needed to make run faster. I tried to squeeze the most out of that computer, and it taught me enough to whet my appetite. I feel like our youth, my peers have been and are being short changed by technology today. I'm not sure what there is to be done about it, but I know that it isn't right.
I can't speak for your peers, but for me, deadlines and emergencies have probably taken a lot of the fun out of it. It's one thing when you're trying to debug some driver issue on your own system and you're doing it as a hobby so whether it gets done today or next month is no big deal, versus, say, crossing yourself and muttering a prayer and rolling out an update following weeks of testing, only to have it conflict with something you didn't anticipate and the entire network goes down in flames while your phone melts.
Or, for a slightly less doomsday scenario, just a relatively simple problem affecting one person, but they're still trusting you to figure it out, and they're expecting you to do it sooner than later.
There's a point at which the fun really starts to go out of that. I've always been a bit of an adrenaline junkie, I've always worked well under pressure, but nowadays my favorite thing is quiet time in the sunshine digging about in the garden. (Oh god, that makes me sound old.)
Maybe this will never happen to you. I hope not! But I've been thinking a lot about what Chuck said, and about my frustrations with technology, and I think that maybe this has a lot to do with it.