What Do You Do When CS Isn't Fun Any More?
wonderless asks: "Long ago and far away, I thought that I was going to be a Great Geek, and that I was going to provoke a revolution in the computer industry--and indeed, the world--with my mastery of technology. I could hardly wait to throw myself into an intense, highly technical curriculum and shine. But as I said, that was long ago and far away. Now I'm one semester away from graduation, with a 3.5 average overall and a lackluster 3.0 in CS, and I'm liking it less and less every day. I used to be able to say that at least it pays well, but now I can't even take solace in that. I drag myself to classes and through projects, and it all seems really pointless--I'm just implementing what's written in the book, and eradicating the countless off-by-one bugs is nothing short of mind-numbing. I'd like nothing better than to recapture the feeling of joy I used to get out of doing this, and to once again be able to say I'm doing what I love. What do you do when it isn't fun any more, but you'd like it to be?"
First of all, if you're one semester from graduation - finish your year. The piece of paper will still be worth something, especially when the economy rebounds.
:). Good luck.
As for finding the fun again... Take a break. Explore hobbies other than coding. Let your coding skills sit quietly in the back of your mind, and some time later, you'll feel the itch again - the need to code a little widget that's Really Cool. It mainly sounds like you're getting burned out to me.
OTOH, coding may or may not be what you really want to do. If your primary goal was to awe the world with your m4d sk1llz, you may simply not have noticed that you weren't having fun doing it. That will reveal itself during your sabbatical. If coding ever was fun for you, the desire to code will come back.
YMMV
Honestly, I was starting to feel the same way in the work world. I've been a software engineer professionally for about 10 years. Extreme Programming (XP) is the twitch in your fingers when the meetings get long, it is the surge of pride when software works first time round. Check it out: http://www.extremeprogramming.org or for a business-level summary: executive summary of XP. Good luck! Don't give up just yet. School can be stultifying, and so can work. But if you are talented, there will always be good opportunities. Also consider starting your own business. There are lots of programs for supporting small business in most countries - it is very exciting and great experience. Or work for a startup doing cool stuff (not many of those around anymore, but still).
Helping with organizational effectiveness is our job.
The problem then becomes what to do after grad school. I've known a fair number of Ph.D.'s in CS, and they had a hard time getting jobs after graduation, even during the recent boom years, unless they went into academia. Why? Because the perception of the business world is that CS Ph.D.'s have studied obscure topics that have no bearing on the real world, as they know it. They want someone who has experience with the systems that they use, not someone who will try to revamp their whole world.
If you can't beat them, embrace and extend them.
I didn't have too many problems getting through school, but I will encourage you to stick it out and try working for a while afterward. School and work are completely different environments. Here's some points to consider:
Not all jobs are mindless, boring, and riddled with bad middle management. CS people in the real world aren't doing the same things as CS people in academia. They apply what they know to widely varying domains of problems. Look for a job in an intersting domain, and check it out.
If you have a liking for aerospace, look at defense contracting companies, or satellite imaging companies. Lots of potential for interesting work there! Some people have a knack for telecom and working with low level hardware. If you've got a background in other sciences, there's a wealth of possibilities there... biotech, computational chemistry, genome work, all of these are highly dependant on specialized software.
Avoid things like "Enterprise Application Integration" unless you really are in to middleware and writing glue code. Some people like this, but I find it gets very repetitious and boring quickly.
If you don't know what you want to work with, a consulting company can get you exposure to a lot of domains and technologies. But they can also wear you down with mind numbing projects that you don't care about.
I guess my big point is that academic projects bear little relation to projects in the real world. It's completely different. Beyond your basic skills, and knowledge of design/development process, everything you learn at a job will be new. And very little of it falls into that "grading bucket" where someone looks at it once and puts it in a filing cabinet.
Right now, you should just look at school as a stepping stone... something to be passed through on the way to a more interesting application of what you've learned.
First of all I think youre smart enough to finish up your degree. After my last full semester I worked at a networking company with good pay but boring drab days. Knowing the economy was the way it was I kept applying for other IT related jobs anyway. I got some offers and took a leap of faith. It became the best decision I ever made. I am now working at a great company doing something that I truly believe in. I can directly see my efforts effects and have a great time all day. A dream? No. You MUST be willing to take chances and risks. Everyone thought I was crazy for switching jobs with a great salary during these times. But stick to your guns. The key is to believe in what youre doing. Only then will what you consider mundane now be exciting later. Good luck!
Eddy.WriteLinux.Com