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?"
"...at least it pays well..."
:)
That's not a good reason for going into C.S. It reminds me of a trend in medicine, where folks want to become doctors because of the money. Only, somewhere along the line they figure out that they really don't like medicine; this is often after a substantial investment in medschool, which can leave crushing, mortgage-sized debts. Careers should be selected for love of the art, not love of money.
All that said, you're making a decision too early. You're in SCHOOL; the challenges you're facing there are nothing like what you'll be facing on the job. You'll learn more in your first year on the job than you did during the entire time you were in school. You'll face programming efforts with 50,000 lines of code or more in some cases. College C.S. is a good theoretical basis, but it really doesn't show you what you're going to face at work.
You don't have enough experience yet to be jaded, so stop puttin' on those jaded airs.
C//
It'd be a shame to call it quits before you've really begun the game. The complexities you'll encounter once you really start working will make whatever you've done in school look like a two line gw-basic program written on an ibm pc-at. The joy of working in cs projects transitions from the drugery of fixing minutae to solving larger, systemic problems. I urge you to take your good gpa, get a job, and really give it a chance.
I think the problem isn't that you're losing interest in CS, but that it has taken over your life. If you spend almost all of your time doing a single thing, you *will* get bored and frustrated with it, and eventually lose all motivation. You need to "diversify your portfolio" a bit. There's a bunch of things you can do to do this:
Academics: Take an extra year and do a minor. Chances are you've already got most of the prerequisites for something way off your field, like biology or english. You'll learn something new and interesting, and possibly even pick up a new skillset. Besides, it sounds cool to say that you've mastered two completely unrelated fields.
Time Off: Take a weekend, week, month or year off; whatever you can afford to get away for. In that time *DON'T TOUCH A COMPUTER*. Don't even bother with email. It also helps to get away from where you're doing most of your work. This could be a trip to another continent, or just to the next town over.
Hobbies: Non-geeky hobbies are great for "fixing your head", I've found, especially if they're somewhat physical. Get a bike-- mountain biking is a brilliant quick fix if there are trails near where you live, or since winter is coming, go skiing. Hell, even a quick run (as much as I hate running) will put things into perspective sometimes, especially if done on a cool, crisp fall evening.
Of course there's always the weeklong bender of booze and drugs, but that's just not that healthy...
Now go! Turn of the computer and get away from Slashdot! There's hope for ya yet!
It's only software!
It's called being selective of the job you want, and not taking the first job you get an offer letter for. Everyone that I know that goes, "Man.. IT sucks! Coding sucks!" took a job too quickly. Any developer who has been in the field for more than 2 years can be selective, and take a job that is fun.
If you are burned out, I would say it is definitely a "bad decision that you have to live with" because it was your decision to take that job. You're 28, so you have probably been in the field for a while. Even the way the economy is going, I managed to find a great contract (I prefer consultancy, get to work on a new project every 6 months is even better) at a great environment, with great people. My previous contract was quite similar, but a bit absurd.
My advice to anyone who claims burnout without being in the field: Go work on an open source project and write real code. Not silly book examples, not fixing stupid bugs (And I'm sorry, if you are a senior an getting off-by-one bugs then you should either pay more attention or should choose a career and make other developers lives easier).
Dacels Jewelers can't be trusted.
You do college radio. I honestly think that I'd have dropped out of school a while ago if I didn't have something to occupy my free time other than learning about old technology and studying automata. Automata!!
Yeah, I can really see a potential employer asking me about Turing machines... or to code them a little application in Prolog. Another misconception my CS program makes is that all CS majors want to be programmers. I *hate* programming. I'm much more interested in the hardware/network/administration aspects of computer systems. Coding up a Java application to simulate an ATM is like pulling teeth.
Maybe that's just the CS program here at SUNY Binghamton. What's it like elsewhere?
I can honestly say I've garnered myself more experience / knowledge setting up and administering the network in my *house* than I've learned in any classroom.
Right now the objective is to finish up my degree and get out. Like a co-worker suggested to me a couple summers back (I should have listened) -- your degree -- and 75 cents -- will buy you a cup of coffee at 7-Eleven. And as was mentioned earlier, the declining job market/salaries isn't much of a motivator either. That's why I have a job at one of the local commercial radio stations here (in addition to working at the campus station), -- it NEVER hurts to have a backup plan.
Solidarity, my brothers and sisters in CS suckiness...
Mike
mstyne: real name, no gimmicks
Anyway, here's my last ditch effort to make this on topic. I left the military after 14 years because it simply wasn't what I wanted to do anymore. The path I was taking was crystal clear and I wanted nothing to do with it, so I left and I am doing well in my new compu-centric career. It's never too late to change your mind. If you don't like it, leave and find something you do.
I always thought it would be really cool to do something like that. Especially if you could get a computer science class going, or an after school club. There are lots of free tools that you can use to create really great lab projects. (Even Microsoft has free development packages - check out the development environment they provide for FREE for WindowsCE. It even comes with neat emulators.)
So, you could get a chance to be THE COOL TEACHER and you could really paint a vision for kids of their own futures that they might not otherwise get. And, you would get some time to wind down and think about what you really want to do for your life.
Rolling in the leaves and sin and ecstasy will take your mind off all your other problems, and the resulting emotional cross-currents will create new ones that will absorb much of your attention. Yessirree, a mad, passionate affair right about now is guaranteed to give you a new lease on life, take up all your spare time, fill your head with new ideas and add new complications to your existence. You'll still be dragging yourself to class all right, but only because you'll be so worn out from rockin' the night before. You'e a senior now, for crying out loud, you should be at the top of the social pecking order. Try to hook up with senior girls; the same ones who wouldn't spit on you when you were both freshmen may be a lot friendlier now that they've been upstaged by new waves of younger, cuter freshmen.
Stick your head outside the computer lab. English lit. and anthropology majors are a good bet. They spend their whole academic careers focusing on stuff like "Psychosexual imagery in the religious poems of Robert Herrick" and "mating rituals in Samoa." This may be your last sojourn among thousands of unattached young ladies in a carefree, party-centric college environment. Gather ye rosebuds while ye may. (And if you knock one of them up, boy, will you ever have a motivation to get a job and start making money.)
I'm not usually one to advocate this, but go to grad school. You'll hook up with the people who are developing what will be the standard years from now, and are researching the bleeding edge.
Grad school will break you out of the its-been-done rut you seem to be in.
Delusions. In grad school, you'll start out covering the same old "core" material. When you start working on research, you'll have to get lucky enough to find an advisor doing something related to your interests. Oh, and you'll need to get interested in something.
Sounds like the problem is you want to be a superstar, but you don't have any motivation. Things don't really work like that. If you were motivated, you would be doing interesting things already, and maybe one of those things would be a "big deal." You need to motivate yourself.
What do you do when it isn't fun any more, but you'd like it to be?
Take a long break from it. Read books, get away for awhile. Think about what made it fun in the first place and try to find out where your interests lie. If your stuck, go back and really read your CS books from upper-level courses. See if any of the topics seems interesting at all. If so, do that. If not, explore topics that either weren't offered by your school or that you didn't take.
If none of that works, get a random job in the industry. There's nothing like 8+ mind-numbing, stress-filled hours a day doing exactly what you hate to get you thinking about what you REALLY want to do.
When I was balked finding a research topic, I took the big, insurmountable idea that got me started in computers and wittled it down until I had a manageable piece. That became my starting point. It took forever, and it required a little work researching the subfield, but it got me there.
If you don't want an advanced degree, then once you figure out what sort of programs interest you, or what about programming interests you, get hired by company that does that. Most software houses have enough divisions that you can float around for a bit working in different areas. Hell, try QA.
If you're always doing what other people want, you'll lose interest and the whole experience becomes a mix of drudgery and frustration. You need to take some time following a few rabbit trails of your own interests:
Just keep in mind that it's not the "CS" trade that has you bummed... it's the fact that you haven't had time to do it just for the fun of it lately.
A carpenter can put up framing for houses for a living but he doesn't loathe his tools when he gets home. He might even pick them up to make some patio furniture, a bookcase or something for himself now and then, and his professional skill will show in the quality of his casual project. And the unrelated projects may lead him to find or invent techniques that will enhance his work performance as well.
Same with us, only more. Because CS deals so much with information we can find correlations between the skills we know and nearly everything! Lots of people have what seem to be ultra-low-tech hobbies and then they end up writing software to help out. (I haven't seen any flint-knappers' applications yet though.)
The only problem might be the cost (it's never cheap)
Actually, going to grad school can be done pretty reasonably. Find a program that pays a stipend and gives a tuition waver. Granted, your contemporaries will be working in jobs and making more money than you will be as a student, but eventually this will change either in academia or industry and financially, you might always be behind the earning curve for retirement (although lots of comp sci folks have made quite a good living after grad school), but you might find it personally rewarding pushing the envelope.
Just look at some of the alumni of our CS department and what they have done: David Evans and Ivan Sutherland of Evans and Sutherland fame, Robert Barton who was the principal architect of all Burroughs computer systems, Tom Stockham who essentially pioneered the field of digital audio processing, Alan Kay who I am sure you know as one of the creators of the GUI, inventor of Smalltalk and now an Apple fellow, John Warnock founder of Adobe, Alan Ashton founder of Word Perfect, Henri Gouraud who created the gouraud shading system for polygons, Ed Catmull who is a visionary in animation and currently at Pixar, Jim Clark Founder of Silicon Graphics Inc. founder of Netscape Communications Corporation and founder of Healtheon/WebMD, Bui Tuong-Phong creator of the Phong shading method that was talked up so much at Siggraph this year, Martin Newell founder of founder of Ashlar, Inc which pioneered much of the CAD industry, Frank Crow who developed anti-aliasing methods for edge smoothing. I could continue to go on, but you get the idea.
Check out the CS dept. here: http://www.cs.utah.edu
Visit Jonesblog and say hello.
Not all people are alike, some may like IT jobs, some won't. I can only hope that those not really interested (but only in the money) drop out soon in these times.
As for myself, I studied physics and gradually moved into IT. I am a fanatic and never get enough of it. I consider myself lucky that I can have work that I really like, and I intend to stay into technically challenging jobs, i.e. not go into management, until I'm 60 (hope to retire then, I'm 35 now).
I keep being fascinated by all new developments and things that come along, in a faster pace than in most other professions; I guess that in the end there is a boring element in all jobs, but those that really love their profession will always see interesting things and be able to cope with the negative things that occur everywhere.
The problem is: there are lots of people into IT that don't have that drive/fascination for technology, but mainly for the money that is/was in it. They are bored by the job since they don't have the capacity or will to research things for themselves, which means that those shall get more routine jobs where less initiative is asked or desired.
If I had to choose between money and what I like, it would definately not be money. You can't be good at a job that you do mainly for money, and if you're not good in your job, your job won't be fun.
DON'T DO GAMES! I think there's some terrible statistic that only 5% of game companies make money! I did the game industry for 4 years because I wanted to create works of art. I found the industry filled with the mentally ill, social retards, insane work schedules (worked 6 weeks straight without a day off once), insane hours (I hope you like 16 hour work days), insufficient pay (hovered around 35K in SoCal, totally unlivable), and broken promise after broken promise.
My idealism finally completely shattered, I left that dismal shitty life in the past, and now I work as an enterprise Java developer. I am respected in my new role and make more money than I ever thought I could. The work is fulfilling, the code is a lot easier to write than game code, and I learn new and useful stuff every day that applies to real software engineering.
Don't make the same mistake I did, especially now because the games industry is kindof melting down right now.
Finish the semester and take a break.
Finish the degree and take a break.
Decide what you would like to do that would be enjoyable, make money, and use your skills at the same time. Do open source programming on the side just for the hell of it.
Formulate a long-term plan for getting there. You are not going to start off in a perfect position, but once you set you goals, you should be able to better see how to get there.
Part of getting an academic degree is proving to potential employers that you can do the grunge work. You won't bail out if you have to do some stupid stuff along the way.
.... . Fill in something that is better at your old job. "closer to my home", "nice trees around the office building" anything. That indicates that you need a good compensation for them to "buy you out" of your old job.
So: Go ahead and graduate. Find yourself a job.
You might end up at someplace where you end up writing stupid HTML for the rest of your time there. That's fun for a while. Learn HTML & JavaScript, and look for a new job.
You might end up in a challenging job. Enjoy, make the most of it, stay put.
Actually, if you end up with a poor job first, that's GOOD for you: You always have a MUCH better chance of getting a good salary if you've been through the negotiations once before, and if you're applying while you already have another job.
You're eager to start to work for them, the job looks fine, but
Roger.