Keeping Programming Fun?
nb caffeine asks: "Having recently graduated, and now working as a developer, I've discovered that after 9 hours of programming at work, I have little interest in coming home and working on my personal programming projects. I've become upset with this fact, because while I was in college, I spent quite a bit of time working on personal projects for my own use. I also noticed this trend during my summer internship, and I have a feeling that it isn't going to get any better. It's not to say that I don't get to work with cool technologies at my job, but they aren't anything that I would pick up in my spare time. So, how do my fellow programming geeks balance work related projects and personal projects? Or, if you've already discovered that after 9 hours of programming, the last thing you want to see is a computer, what hobbies does the Slashdot crowd enjoy after they've ruined their hobby by turning it into a job?"
I'm consider leaving my programming position for an unrelated field. Programming is my hobbie, not my career i realized. Business programming is dull, and drains me of the motivation to work on something ejoyable. (boss, this is NOT my two week notice.)
I've had similar experiences and concerns. My conclusion is that you only get a few good hours of creative coding per day, if you're lucky. So if you spend that at work, you'll have none left for your own interests. While there's a few ways to solve this (not doing any real work at work is one ;) ), I find the best is to alternate each day between menial and creative tasks. So set aside some days at work to do documentation, specing, testing or whatever, which will leave you with the motivation to do some actually coding when you get home. And then the converse, where you can still do useful things (e.g. documentation) at home, after a good day of coding at work.
My advice is to work your tail off right now, focus on your job and move up in the company until you achieve a management position. At that point, your job will mostly be personal interaction, aerial views of ongoing projects, and helping develop specifications. That won't burn you out on programming, so you'll be fresh enough to do personal projects. You'll also stay in the loop on current technologies, but not be forced to slog through code unless you want to.
Well, be prepared to live poor, but happy. I'm currently between 2 jobs, and I'm much more actively working on my own projects that trying to find a new job...
:)
Well, unless I'm very lucky and my business get of and finally gets me money, I will soon have to start working for somebody else than myself, because I'm quite running out of money. However, my plan is to work, hum... 1 year, and pay myself a little 3 months of cool developing... again
As I said in another post a while ago, money not only buys cars and houses, it buys time. Try to save money for that, instead of wasting money on useless crap, getting into debt, and then being *forced* to work because of these debts.
perception is reality
When I first started programming professionally, my personal projects just stopped -- I was new, so I felt like I had to really prove myself... and this led naturally to excessive hours on work projects, and stress burnout. After some experimentation, though, I managed to sort out my work life so I could be happy, and still have some energy left over at the end of the day.
If your professional life goes anything like mine, you'll figure out a way to make sure you get enough sleep at night (that alone will give your productivity during the day a big jump, in fewer hours!), and you'll find you have more freedom to push back and control how you spend your time as you gain experience/respect. And once you're more comfortable at work, your taste for personal projects may pick up again.
Just give yourself a year or two to find a niche at work that you like, then see how you feel. Once you're more comfortable in your domain at work, it'll take less out of you during the day -- so you'll have more energy in the evenings to do what you want (this is where a social life might come in too, btw).
Really, it'll depend a lot on how your work life pans out -- if you can score super projects at work that you love (and that demand all of your creative energy during the day)... do you still really need those personal projects? Most people dream of doing what they love *and* getting paid for it. Personally, I *like* my work, but the needs of the business don't always correspond with what would be most fun for me... so I have extra energy left to use.
Good luck!
There are only 10 types of people: those who understand decimal, those who don't, and, uh, 8 other types I forget.
Your quandry is this: you found programming to be fun. Got an education, and found a job programming.
Whoops - once programming became your job, it also became work, not fun.
Really you have only two choices: don't program for a living, or don't program for a hobby.
The best advice is to find some other interests and leave the programming for work. It will make you a happier person, a more balanced individual, and will expand your circle of friends to a group larger than just programmers. All of those will help you to enjoy your work more which just might make programming fun again.
Three Squirrels
At work, I have to use fortran and c. At home, I use common lisp. Not much chance of getting them confused. The liquid strangeness lisp makes a relaxing break from the boring fortran and godawful c of work.
Try joining the Society for Creative Anachronism, a sort of cross between medieval reenactment and a social Renn Faire. Medievalism is as far from computing as you can get, which explains why so many geeks join it - geeks are logical, see, and it's logical to want to get away from geeking...
I have discovered a truly remarkable
So, how do my fellow programming geeks balance work related projects and personal projects?
I cancelled my cable TV subscription, and now I can never think of anything better to do.
Or you could do what I do - spend time with my family. If you don't have one, maybe you should work on getting one?
And the men who hold high places must be the ones who start
To mold a new reality... closer to the heart
This is really weird to read all of these posts. I love programming. I read all of the books I can on every aspect of it I can. I don't mind working 10 to 15 hour days at the office (I have to and I do restrain myself due to a recent marriage, I love my wife to!) Most of the time my wife has to beg me to come home! When I'm at home I'm working on my own projects and doing side jobs. When I am driving I'm thinking of how to properly apply a design pattern to a certain test or application. When I'm not programming I think about programming. I love writing code in all the languages I can.
Programming has never not been fun. It has always been a challenge. Even the dull routine work, well if I ever get dull routine work I write a script to automate what I am doing, so it isn't dull routine work anywhere. If it gets dull in one language I'll pick up a different language and write the routine in that.
Perhaps there are people who got in the wrong job for the wrong reason. If you do what you love you'll never be at work in your life. I've recently told my boss that work is like an adult playground for me, because I enjoy it so much.
Maybe I'm a little to code crazy, but I could never imagine feeling another way. I've been at my current job about 3 years.
So my advice is to do something you enjoy, don't settle for mediocre enjoyment. That's when you have a *job*.
I know this isn't exactly an answer, but I've found that I'm now in a position where the organization I work for is interested in using and contributing to open source projects, where I'm able to balance the more tedious work with working on code that I enjoy, where I'm finally working on larger scale projects that stretch my mind and add to my understanding of the real techniques and beauty of programming. It helps that it is a small organization that is growing fairly quickly, with good resources.
I've also found that I'm able to work on my home computer doing more sysadmin-type stuff on my off hours--I don't always have the energy or time to work on real projects, but I feel like I get enough out of my day-to-day that I don't mind, and I get enough satisfaction out of my current project (setting up my Gentoo linux box as a personal sound studio...don't mean to be a Gentoo proselytizer, just what I'm having fun with right now).
So I guess the moral of the story is: it's not inconceivable that you can find an organization that will let you stretch yourself in the direction you want to move--unless you have a philosophical objection to this.
This has come up many times; especially at game/graphics/"fun" companies almost everyone has the "or crud" moment when they realize that it's work now. It even has a somewhat tacky acronym (TGINAG--Thank God I'm Not A Gynecologist). Of all the solutions I've heard, only two have worked consistantly for me.
Either:
or
-- MarkusQ
Do you WANT to only do one thing, day and night? Few people do. When I had a non-programming job I programmed at night for fun on my own projects. Then I got a programming job and like it a lot, but I can't do the same thing day and night, so I try to do stand-up things when I get home: running, stretching, juggling, gardening, playing the saxophone. I spend a little time surfing the net, as I'm doing now, but nothing should totally dominate your life, so don't be upset that you can't be one-sided. If your personal projects are SO great that you can't leave them, maybe you can interest your boss in it so that you can work on it at work, or start your own company and develop it.
They work on personal projects while at work.
I'm almost getting to the point, though, where I come home and just don't want to look at a keyboard or monitor, regardless of whether it's just email & games or personal programming. Then it really doesn't matter.
DT
Is this thing on? Hello?
I am a C#/Windows programmer in my current job, but have taken up Linux as a serious hobby on the side. I would recommend doing something similar. Start programming your side projects in a different language or environment. If you are like me, you enjoy learning new things and this change of pace might just be the ticket.
Great ideas often receive violent opposition from mediocre minds. - Albert Einstein
I had the opposite experience.
When I'm woking as a coder, I find that it's easy to constantly turn the problem over in my mind so that I have no problem getting up in the middle of the night and finishing something. Most of my most productive sessions have happened outside the office.
Whereas when I had a sys admin job early on in university, there was so much running around and fighting with other people's bugs that I didn't want to look at a computer by the time I got home.
It also completely drained me by the end of the day. For things with very few moving parts, computers fail a lot. It goes in cycles but at times, there's so much to do that your constantly running around and actively prioritizing several tasks as they come up. My admin job was probably more difficult than most however. I was supporting a mishmash of unix/linux systems and the users were very technical. I usually only had to deal with weird problems that they had given up on.
The few Windows systems we did have for the office people required constant babying but it wasn't really high impact. I could see how it would be more relaxing. Due to the occasional virus scramble and the inability to easily ssh into a Windows machine or whip up few scripts, you get a lot of time to reflect on just badly NT5.x handles its dumb self while watching progress bars crawl across the screen.
I was in the same boat: love programming, got a job, program all day, personal projects weren't as fun. I decided it was my computing environment being the same old thing I see at work every day. So I downloaded Mandrake a year ago. I started shell scripting, then Tcl/Tk, read The C Programming Language (it's better with a *nix box), started learning assembly (which I've always wanted to learn to do well), and am currently enjoying learning my new favorite editor - vi.
My advice is to make your computing experience at home as different as possible from work. Don't use the language you'd normally use at work. Learn a new one. It's the thrill of discovery, mastering something new that you enjoy, and accomplishment that drew you to programming in the first place. You need to get all that back in the mix. The experience won't hurt your career either.
Like many posts, I recommend you find a way to alter your career path. Many many jobs out there need someone who understands programming but does not do much of it. One person mentioned management. You could consider this path: learn project management. My ideal job (because I'm such a ADHD scatter-brain) is one that has a lot of variety. My current job is close to it, too.
I work in a lab with people who are building a system. There are scientists, engineers, business people, clients, etc. Each has needs, and I try to be available to interface with many as I design and write the software. Well, the software is a little behind schedule. So? The other people have gotten help from me, so the overall project is doing better than it would. And everyone comes to me when they need to brainstorm a solution to their problem, whether it's related to science, engineering, marketing, logistics. I get a lot of breaks from the code, and have a nice bit of variety in my day.
Pick a direction of interest for you other than computers. Look for (or work to create) a position that allows you to do more of the new interest and less programming. Ultimately, some hot shot will come along with more and up-to-date skills than you have in computers. But competition will be scarce for someone with both of your specialties. Perhaps, down the road, you'll grow tired of this one. So, pick a related third. Specialize and diversify. You may find that this leads you into projects at work that are so stimulating to you that you have a hard time leaving the office! With a little focus and determination, you can get there.
That's my 2 cents.
There's no time to stop for gas, we're already late.
Like the old aphorism says: find a job that you love, and you'll never work a day in your life.
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
I totally understand what you mean. Once you have to start using UML diagrams and have to work out other people's design the work can get.........dull. Especially when all you're doing is coding the Nth update for some dull application that you can't brag to your friends about as cool.
;)
My advice : Become a network administrator. This way you get get to fiddle around with networks at work & still have enough enthousiasm to code something cool at night. Also, if you pick the right job and have got your network running efficiently you can squeeze in a few hours of coding our projects each day at work.
Another option is to become a freelance web developer. Pick the right projects and you too can have a 4 day weekend to code in
Just my $0,02
Really, how much time can you spend on working on your own projects when you are already spending 40-50hrs a week on someone else's projects?
I would say not too much more! Besides I find that at the end of the day I can continue with a stream of thought and keep pushing it through, but find it difficult to start new things.
For me at least, I find there are 2 options:
1. Align what you love doing and your work. This can be difficult when working on someone else's project. What you want is to get paid for working on your own project.
2. Work part time. This could be done with a part time job 2-3 days a week or by working 3-6mth stints and taking the rest of the year off. Then spend your own time doing what you love.
You might want to consider other life activities (friends, partner, TV, movies, fishing etc) outside of the significant amount of time you are already putting into work (be it what you love or what you do to put food in your mouth).
I try to start my workday and finish my workday with some personal projects. Sometimes I have had employers who encouraged working on a fun project at work, sometimes I needed to work on something 'work-related', but generally it had to be fun. I would use these projects as a warm up and a cool down from the brunt of my work programming. I found that it would get my head into 'programming space' with something enjoyable, and at the end of the day, let me leave thinking about my fun work and not the hard slog of the day. Keeps your brain healthy!
Try magic mushrooms, that will get you in a creative mood again. See the world from a differnt point of view but keeping focus. You'll find that the worlds best minds see things from a 'mushroom' type point of view.
in my case, as well as many of my of my fellow English Lit majors, we were the kids who HAD to read 24/7...until courses required us to cram Shakespeare, Tolstoy, Joyce, etc. like they were forgettable movies-of-the-week and many of us couldn't even stand to read mindless summertime fiction anymore...the hard choice may be deciding do you want to enjoy coding because it puts food on your table or do you want to enjoy it because it remained a hobby...myself and many of my peers chose to find new careers rather than lose the love of reading (coding in your case...)
When all of your wishes have been granted, many of your dreams will be destroyed - Marilyn Manson
I've found myself in a similar situation. I had tons of pet projects when I was in school, even when I co-op'd, but as my development jobs got more intense and difficult I didn't have the same urge to go do more of the same at home. What I found works for me and still scratches the somewhat the same itch is to read GOOD computer books, the classics in the field. This excersizes your brain in a slightly different way, and will give you food for thought as you reflect on all the development you've been doing during the day.
I'll leave you with this thought. While some of the greatest hackers spend nearly all of their time hacking, this might not be the path that leads you to be the best hacker you can be. Myself (not the greatest hacker in the world, but I'm no slouch), I find that I program better when I've come back refreshed from other activities, such as playing musical instruments, excersizing, reading a book about a whole new field, etc.
Just some thoughts, don't feel guilty about not programming all the time, give yourself some space from it so you can enjoy it!
I am not sure what it is that I am supposed to be doing at work.
All day I read Slashdot and wish I had time for my personal projects.
Seriously, though, I have a desire to see our company adopt real development processes. Direct attack didn't work. So I took the project assigned to me and completed it using new tools and techniques. Therefore it is fun.
I went through the same thing you're going through. What finally did it for me was scheduling a specific time during the week where I work on code at home. I take it easy at work that/those day(s) and make sure my family is prepared. During the other parts of the week when I'm at work and not programming, like when I'm in a meeting, I'll put some thought into what I want to accomplish on my programming day(s). Because I have a family I can't use the same time every week, but I always try to schedule at least a couple of hours.
I find that this works for several reasons.
1. If everyone is prepared to leave me along I have a better chance of getting some work done.
2. I know what I'm going to do before I sit down, so I'm not just tooling around, I'm trying to accomplish something.
3. I'm not doing it every night, so I'm not burnt out.
I'm confident that you'll eventually find something that works for you. If you really desire it you'll find a way.
10: PRINT "Everything old is new again."
20: GOTO 10
First thing you should consider is working less hours. Yes that may not be easy (switching jobs, or quit working overtime - they don't appreciate it anyway), but after 9 hours in front of a computer, going back home to sit again in front of another computer isn't good for your health. You should consider exercise instead, so you would get healthier and that will give you longer concentration capabilities and attention span, then dedicate your projects some hours in the weekend.
You must also sleep well, and quit caffeine completely. From your nick I infer you're into caffeine and that simply shortens your productive hours.
In short: try to keep fit and quit consuming caffeine. 12 hours a day in front of your computer are bad for you. Extra weight and back problems affect your programming performance negatively. Trust me.
OP: Doom III comes out this week.
... I can justify to myself the day to day regular job I attend 40-50 hours each week, loving every minute of it (but I'm still new there so give me some time.)
If that doesn't fix your 'I don't wanna do computer stuff no more' blues, then it is time to start a new path in life, one without computers.
I have found that by occasionally buying myself new things like computers, cars, motorcycles, toys, lap-dances, clothes, healthy food, paying my rent and bills, and the like
I'm not developing real time guidance systems for rockets, nor count-down or proximity devices for nuclear weapons, nor re-entry modules for NASA - I'm doing IT for an insurance company. Hardly exciting, unless I want to look for reasons to get excited. I got a new AIX box last week, a nice quad CPU toy. Got another new AIX box (quad CPU) the week before that. Got a new laptop this week, with VPN access from the house. So basically they gave me two quad CPU AIX boxes to play with at work / from the house.
And if that wasn't enough, they pay me enough to go out and buy a copy of Doom III this week. Makes it all worth while, when I think about it.
Glonoinha the MebiByte Slayer
The simple answer is in the subject line. If you do something that's too much like work, it will seem like work. Even if what you do is explore ideas that occurred to you in the context of work (e.g. infrastructures/algorithms that were deferred until a future release) it's probably going to seem like work. What you need to do is something completely different. For example, my work involves the confluence of kernel programming, distributed systems, and storage. The important parts are all written in C/C++. So what do I do on my own time? I hack on the code that runs my website (in PHP) or a backup/synchronization tool (in Python) or play around with automatic code rewriting (Python again, though it's manipulating C parse trees). Sometimes there's a bit of overlap, but for the most part the programming I do on my own time has a completely different "flavor" than what I do at work. That, plus a recognition that my personal projects will need to be suspended and resumed as higher priorities (work, family life, etc.) intervene, helps keep me happy with programming both at work and at home.
Slashdot - News for Herds. Stuff that Splatters.
After work, I spend my time on non-computer hobbies and other things I enjoy (skiing, mountain biking, off-roading, movies, music,home theather, cars, friends, dating, travel, etc). It's important to have a life outside of the biz, IMHO. I do read some each week and experiment with personal programming projects to stay current. Currently, I do design/architecture and some Java coding at work (50-60 hr work weeks) in a corporate setting. I'm not sure what I'm going to do long-term in the industry--I've been doing Java since '96 and C/C++ in grad school before that--maybe get back into contracting. I don't really desire to go into management, but I do enjoy the six-figure salary I've got now and wouldn't want to give that up.
Teach a kid or two to program. Especially a disadvantaged kid. There are a lot of 10-15 year olds without anything good going on in their lives who need something to grab onto.
I noticed this too and I adapted. I've been writing code for a living and for fun for a while now.
Actually, I still enjoy doing the stuff I get paid for, so I guess I'm ahead in the game.
My thoughts:
Good luck.