A lot do. A quick look at my "projects" folder shows 12 different projects. My snippets and quickies and tests folders have hundreds of files. Various accounts at github, googlecode, etc contain more projects publicly available. The src folders of various machines contain projects for work, or OSS projects with code I've modified for experimenting. This is the result of many years of coding, prolly the last 15 or so. It should be noted that almost all of them are in some state of abandonment. All of them are incomplete. Most don't even work to their intended purpose, they just exist as attempts to understand various concepts.
I do not consider myself atypical in this. Most coders I know, at least those who are passionate about their work, are similar. No matter where you stand on the "hackers and painters" thing, it should be acknowledged that in this respect both are similar. Most painters have hundreds of test canvasses lying around, with stuff that will never be seen by the world -- it is how they hone thier skills.
I think "nerd-dom" in general has lots of people like this. The arduino crowd all have lots of toys. The steampunk kids are the same. Looking over to the nerdier bits of shop class is not much different -- seems like everyone makes a paintball tank these days (and to get to that level usually is by route of a shop full of failed experiments, potato cannons, a home-made scooter, and so on)
I understand the mentality that draws people to try new things, experiment with new technologies, and learn different ways of doing things they've previously struggled with. Personally, I don't have any side projects anymore. All of my effort goes into my job, simply because the challenges that I face at work are more complex, more demanding, and more interesting than anything I can reasonably hope to accomplish at home. If a problem is truly hard, I don't think I can solve it in 2 hrs/week, and if it is interesting enough that I think it is valuable to solve, I will try to find a way to integrate it into my work.
My tone here is probably harsher than it needs to be, but it's in reaction to the tone of the title and the self-congratulatory responses I expected to find ("at least those who are passionate ... are similar"). A certain type of techie has a huge list of pet projects, but there are people at the other end of the spectrum. Call them researchers, as opposed to builders, and they want to solve abstract problems with no immediate use or UI. Their interesting problems, like data mining, hardware scaling, and distributing programming, are a lot harder to do on the side than creating a Rails/Google Earth/Yelp mashup, but not necessarily because of the absolute difficulty of the problem. The former problems only exist when you have a lot of resources already invested in a project, and trying to investigate them on the weekends is much less rewarding than learning Haskell. Ultimately, I find that these at-scale problems are the ones I'm interested in, so I don't come home and code in my free time. I just stay at work for 12 hours a day.
It's certainly an artifact of being engaged in your job, but I think that should make it even more clear that all techies do not have a huge list of pet projects. Having one is certainly not a necessary condition of talent or passion.
I have no problems with working 12 hours a day for a short time, but I would never do it over a longer time period. A work day should not exceed 8 hours (lunch not included) in my opinion. I actually find my work interesting and enjoy working there, but I need to keep my work life and personal life separate.
Life is short enough as it is, so I don't want to spend 50% of it at work (more if you count the hours you spend sleeping). After a week of working "overtime", I feel mentally exhausted. It completely ruins my Saturday, so that's more of my life that is wasted.
I do have some pet projects that I work on sometimes. Even if I could integrate it into my work, I won't do it unless it directly affects my work. My work ethic is strong, and I always look for ways to improve the systems during work hours. But there is a limit to what I will do.
If my ideas does not interest my work place enough to include them in my work schedule, I will use them in my side projects. Giving away free overtime to solve problems that my work doesn't think is worth paying me for is not an option.
I'm on board with this. When I had less interesting jobs, I had side projects to keep myself interested. But with a job that is truly interesting, I find I spend all my time on it. My only hang up is that I want to do the cool/challenging stuff first, and I end up working some overtime doing the productization stuff.
Personally, I keep a running list of ideas (I have about 50), but I try to stay focused on one project only, or two depending on how many cofounders and my level of involvement with each. Trying to actually push to market and think you will hav success by managing 100 working concepts is just crazy. Don't do it.
Hmm, to me, pet projects aren't usually meant to make money. I consider them more just things for fun, though I suppose they might at some point become profitable.
Agreed, often it's the pet projects that provide a playground for ideas that may help the main job/project/goal/company but they are also valuable for clearing the mind and helping you have fun and relax.
I have close to 40 pet projects and businesses that I oscillate between throughout the year. Most of it is on my TODO for learning purposes, others as a gift to friends, but a good chunk of them as support projects that I use in my other projects. I do A LOT of niche software: Arabic applications written in Common Lisp. I am pretty much my own tool vendor :-/
My running list is at twenty-nine, of the ones I thought were good enough to write down. I'm working on one at the moment and really want to get working on two or three more. The rest are just "might be nice" to work on someday.
I suppose I should clarify: I don't maintain a list of mostly abandoned or "prototype" code. It'd get something new every few days. I also don't publish a lot of blog posts or open-source software. Instead, I try to find interesting clients, take on interesting projects at work, or experiment with new methodology there.. and maintain my "trophy case" on my resume. Does ~/scratchpad contain a crap-ton of half-baked or throw-away code? Sure, but I'm not about to spend time making a list or putting it on the internet.
You seem to be opposing open source software to "interesting work" -- which in some feilds such an opposition holds truth. In others all the interesting work is open source.
As for the post -- the question asked if everyone had a such a large list of pet projects. Your answer seems to be yes too. Sure you dont publish it, but you try to do new projects and methods at work -- pet projects are pet projects, whether at work or home.
Also, keeping around "throwaway" code has helped me more than not -- I can find some half remembered example and be using the concept way quicker than trying to come up with it again.
In my individual case, working on open-source software would be opposed to paid work (with interesting as an orthogonal concern,) but I am trying to remedy that aspect.
Interesting. I would say that the tools, concepts, techniques, solutions, etc that I learnt whilst working on my side projects improved the quality of my "work" by orders of magnitude and have been invaluable to my career.
In fact with some teams I have worked with, if we interviewed a tech person who did not have any side projects we often viewed them with suspicion.
I have seen a similar pattern where learning new ancillary skills have increased the quality of my core competency.
I think side-projects are a decent proxy for curiosity and industriousness, which I try very hard to evaluate when interviewing candidates. However, my line of questioning for this has to do with what complaints people have with their tools and what they have done to overcome them -- this shows a similar desire to have internally-motivated programming tasks and a desire for understanding more than simple project requirements.
This, and I don't consider exploratory throw-away code a "pet project" (probably because most of those explorations are evaluating techniques for work.)
Further, if I am interested in doing X then I find a way to do that professionally.
I do not consider myself atypical in this. Most coders I know, at least those who are passionate about their work, are similar. No matter where you stand on the "hackers and painters" thing, it should be acknowledged that in this respect both are similar. Most painters have hundreds of test canvasses lying around, with stuff that will never be seen by the world -- it is how they hone thier skills.
I think "nerd-dom" in general has lots of people like this. The arduino crowd all have lots of toys. The steampunk kids are the same. Looking over to the nerdier bits of shop class is not much different -- seems like everyone makes a paintball tank these days (and to get to that level usually is by route of a shop full of failed experiments, potato cannons, a home-made scooter, and so on)